From f339950dba0f05f3ab456e7198247eb6d84f7971 Mon Sep 17 00:00:00 2001 From: Devendran Date: Tue, 15 Apr 2025 23:42:38 +0530 Subject: [PATCH 01/97] Added "FAQ" page (CD-67) --- config/theme.navbar.config.js | 7 ++ faq/condor.sidebar.js | 32 +++++++ faq/faq.md | 167 ++++++++++++++++++++++++++++++++++ 3 files changed, 206 insertions(+) create mode 100644 faq/condor.sidebar.js create mode 100644 faq/faq.md diff --git a/config/theme.navbar.config.js b/config/theme.navbar.config.js index 38e5b794c..3c7fddbcf 100644 --- a/config/theme.navbar.config.js +++ b/config/theme.navbar.config.js @@ -61,6 +61,13 @@ module.exports = { label: "Casper 2.0", position: "right", }, + { + type: "docSidebar", + sidebarId: "faqSidebar", + docsPluginId: 'faq', + label: "FAQ", + position: "right", + }, // { // to: 'blog', // label: 'Blog Articles', diff --git a/faq/condor.sidebar.js b/faq/condor.sidebar.js new file mode 100644 index 000000000..3f9508fa1 --- /dev/null +++ b/faq/condor.sidebar.js @@ -0,0 +1,32 @@ +/** + * Creating a sidebar enables you to: + - create an ordered group of docs + - render a sidebar for each doc of that group + - provide next/previous navigation + + The sidebars can be generated from the filesystem, or explicitly defined here. + + Create as many sidebars as you want. + */ + +// @ts-check + +/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ +const sidebars = { + // By default, Docusaurus generates a sidebar from the docs folder structure + //condorSidebar: [{type: 'autogenerated', dirName: '.'}], + // But you can create a sidebar manually + faqSidebar: [ + 'faq', + ], + // + // { + // type: 'category', + // label: 'Tutorial', + // items: ['tutorial-basics/create-a-document'], + // }, + // ], + +}; + +export default sidebars; \ No newline at end of file diff --git a/faq/faq.md b/faq/faq.md new file mode 100644 index 000000000..4237449bd --- /dev/null +++ b/faq/faq.md @@ -0,0 +1,167 @@ +--- +title: "Casper Network - Frequently Asked Questions" +description: "Comprehensive FAQ covering Casper Network for smart contract developers, validators, operators, and users." +tags: ["Casper", "FAQ", "Validators", "Smart Contracts", "dApps", "Casper Wallet", "Node Operators"] +--- + +# ❓ Casper Network FAQ + +This FAQ addresses common questions from smart contract developers, dApp builders, node operators, validators, and retail users within the Casper Network ecosystem. The answers aim to provide both clarity and guidance for newcomers and experienced participants in the network. + +--- + +## πŸ§‘β€πŸ’» Developer & dApp FAQs + +### 1. How do I install `casper-sidecar` on Ubuntu/Debian? + +`casper-sidecar` is a service that allows developers to interact with the Casper network more efficiently. To install it on a Debian-based system, follow these steps: + +```bash +sudo mkdir -m 0755 -p /etc/apt/keyrings/ + +sudo curl https://repo.casper.network/casper-repo-pubkey.gpg --output /etc/apt/keyrings/casper-repo-pubkey.gpg + +echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/casper-repo-pubkey.gpg] https://repo.casper.network/releases focal main" | sudo tee -a /etc/apt/sources.list.d/casper.list + +sudo apt update + +sudo apt install casper-sidecar +``` + +This sets up the public key, adds the Casper repository to your system, updates the package list, and installs the software. + +--- + +### 2. Where can I learn about serialization of transaction payloads? + +Serialization is the process of converting complex data into a format that can be transmitted or stored and reconstructed later. Casper uses specific serialization methods for deploys and payloads. + +You can explore serialization concepts in the official documentation: +πŸ”— [Serialization – Casper Docs](https://docs.casper.network/concepts/serialization) + +You can also refer to the JavaScript SDK for practical examples: +πŸ”— [casper-js-sdk](https://www.npmjs.com/package/casper-js-sdk) + +--- + +### 3. What causes an "invalid deploy" when using Casper Wallet? + +An "invalid deploy" error typically occurs when your system time is not synchronized with the standard internet time. + +Casper's deploys include timestamps, and if the timestamp on your deploy is too far from the network's time, it will be rejected. + +βœ… Make sure your system clock is set to automatically sync with an NTP (Network Time Protocol) server. + +--- + +### 4. How do I check if a transaction was successful? + +Once a deploy is submitted, you can check its status via the node RPC or via explorer tools. + +Look for the following field in the JSON response: + +```json +result.execution_info.execution_result.Version2.error_message +``` + +If `error_message` is `null` or empty, it means the transaction executed successfully. If it's populated, it will provide the reason for failure. + +--- + +### 5. Where can I find Casper 2.0 RPC schema? + +The Casper 2.0 RPC schema outlines the expected structure of requests and responses when interacting with the node through JSON-RPC. + +You can find it here on GitHub: +πŸ”— [Casper RPC Schema](https://github.com/casper-network/casper-sidecar/blob/dev/resources/test/rpc_schema.json) + +This is particularly useful for tool builders and integration developers. + +--- + +### 6. How do I migrate from Signer to Casper Wallet? + +The Casper Signer is deprecated and replaced by the Casper Wallet. To migrate: + +1. Export your keys from Signer. +2. Import them into the Casper Wallet. +3. Follow the guide below to complete the process: +πŸ”— [Migration Guide – Casper Wallet](https://www.casperwallet.io/user-guide/signer-user-start-here) + +--- + +### 7. What are the integration endpoints for `cspr.cloud`? + +These endpoints are used for developers building integrations or apps that require RPC access to the network. + +πŸ”— [https://node.integration.cspr.cloud/](https://node.integration.cspr.cloud/) + +It is recommended to use these for staging and test environments rather than production deployments. + +--- + +## πŸ“Š Node Operator & Validator FAQs + +### 9. When is a node considered fully synced? + +A node transitions through states such as `CatchUp` and `KeepUp`. When a node's `reactor_state` becomes `KeepUp`, it means it has caught up with the latest state of the blockchain and is now participating in consensus. + +You can check this in the node logs or via diagnostic endpoints. + +--- + +### 10. Where can I check staking rewards? + +Use [cspr.live](https://cspr.live) to check staking rewards: + +1. Navigate to your account page. +2. Click the "Staking Rewards" tab. +3. You can view detailed reward history per Era. + +Example: +πŸ”— [Staking Rewards Example](https://cspr.live/account/02038baa714f1f45aaacb4443df31bf27a8990369c2f9d585f904ec5c5b85aeb231f) + +--- + +## πŸ‘€ General User FAQs + +### 11. What is delegation? + +Delegation lets you participate in network security by staking your tokens with a validator. You don’t need to run a node. Validators share a portion of the staking rewards with their delegators, keeping a small fee (commission). + +This contributes to network decentralization and rewards you with passive income. + +--- + +### 12. How frequently are staking rewards paid? + +Staking rewards are distributed every **Era** (approximately every 2 hours). It may take up to 4 hours (2 Eras) for the first rewards to show after delegation. + +--- + +### 13. I’ve delegated my tokens but don’t see rewards? + +Staking rewards are added to your current stake and may not appear immediately as spendable balance. To view them: + +- Go to [cspr.live](https://cspr.live) +- Look under your validator in the β€œRewards” tab + +--- + +### 14. Is there a lock period after delegation? + +There is no lock period when delegating. However, **undelegation** incurs a 7 Era (~14 hour) unbonding period. After this, the tokens are available in your account for transfer or re-delegation. + +--- + +### 15. Is there slashing? Can I lose tokens? + +Currently, Casper does **not** have slashing enabled. If a validator is evicted from the active set, you won’t receive rewards while they’re inactive. In future, when slashing is enabled, delegators may lose a portion of their stake if their validator misbehaves. + +--- + +### 16. What is the cost of delegation and undelegation? + +Each delegation transaction costs approximately **3 CSPR**. +πŸ’‘ Always keep extra tokens in your account to cover fees for transactions like delegation, undelegation, and transfers. + From 1ec6774ac1831a40172aa35166e2fc1e74da5745 Mon Sep 17 00:00:00 2001 From: Jiu-hong Date: Wed, 23 Apr 2025 11:57:21 +0800 Subject: [PATCH 02/97] fix local-setup.md and devnet-info.md --- condor/devnet-info.md | 36 +++---- condor/local-setup.md | 239 +++++++++++++++++++++++++++++------------- 2 files changed, 183 insertions(+), 92 deletions(-) diff --git a/condor/devnet-info.md b/condor/devnet-info.md index ae2a534e4..d5a6568b9 100644 --- a/condor/devnet-info.md +++ b/condor/devnet-info.md @@ -17,43 +17,43 @@ Once your request has been processed, you will be notified and provided with a l ## What is the latest commit/release candidate deployed on to the Devnet? -- Release Candidate: Condor/2.0.0 - RC6 -- Commit Hash: `2178ad3aad9488076b38d8de467e6d1123f4b66b` -- Latest Devnet Release Date: 08-Jan-2025 +- Release Candidate: Casper 2.0 - RC10 +- Commit Hash: `a7e4ff100549d6b34aa6b800812f29313378663b` +- Latest Devnet Release Date: 04-Apr-2025 -## What are the Condor/2.0.0 Compatible branches/commits of downstream components? +## What are the Casper 2.0 Compatible branches/commits of downstream components? **casper-sidecar:** - - Release Candidate : `release-1.0.0-rc5_node-2.0.0-rc6` - - Branch/Repo : [casper-sidecar-release-1.0.0-rc5_node-2.0.0-rc6](https://github.com/casper-network/casper-sidecar/tree/release-1.0.0-rc5_node-2.0.0-rc6) + - Release Candidate : `v1.0.4` + - Branch/Repo : [casper-sidecar-v1.0.4](https://github.com/casper-network/casper-sidecar/commit/a7b552832aa44390d90b96c3ace67fdefce24670) **casper-client-rs:** - - Release Candidate : `release-3.0.1-rc2_node-2.0.0-rc6` - - Branch/Repo : [casper-client-release-3.0.1-rc2_node-2.0.0-rc6](https://github.com/casper-ecosystem/casper-client-rs/tree/release-3.0.1-rc2_node-2.0.0-rc6) + - Release Candidate : `v3.0.1` + - Branch/Repo : [casper-client-v3.0.1](https://github.com/casper-ecosystegitm/casper-client-rs/commit/305adf13a08d6b0dac016fa30cec77841ca0a8ca) **NCTL:** - - New NCTL image with `v200-rc6` available on Docker Hub: - - `makesoftware/casper-nctl:v200-rc6` + - New NCTL image with `v200-rc10` available on Docker Hub: + - `makesoftware/casper-nctl:v200-rc10` **CEP-18:** - - A version of CEP-18 compatible with Condor RC5/6 is available in the forked repository [here](https://github.com/davidatwhiletrue/cep18-limited/tree/casper-2.0.0-rc5) + - A version of CEP-18 compatible with Casper 2.0 is available in the forked repository [here](https://github.com/casper-ecosystem/cep18/tree/feat-2.0) - - Please note that this is meant for testing SDKs and scripts **CEP-78:** -- Work in progress + - A version of CEP-78 compatible with Casper 2.0 is available in the forked repository [here](https://github.com/casper-ecosystem/cep-78-enhanced-nft/tree/feat-2.0) + **SDKs:** - JavaScript/TypeScript - - Github release : [casper-js-sdk-v5.0.3-beta2](https://github.com/casper-ecosystem/casper-js-sdk/releases/tag/5.0.3-beta2) - - npm : [casper-js-sdk-v5.0.3-beta2](https://www.npmjs.com/package/casper-js-sdk/v/5.0.3-beta2) + - Github release : [casper-js-sdk-5.0.4](https://github.com/casper-ecosystem/casper-js-sdk/releases/tag/5.0.4) + - npm : [casper-js-sdk-5.0.4](https://www.npmjs.com/package/casper-js-sdk/v/5.0.4) - .NET - - Github release : [casper-net-sdk-v3.0.0-beta2](https://github.com/make-software/casper-net-sdk/releases/tag/v3.0.0-beta2) - - Nuget package : [Casper.Network.SDK 3.0.0-beta2](https://www.nuget.org/packages/Casper.Network.SDK/3.0.0-beta2) + - Github release : [casper-net-sdk-v3.0.0](https://github.com/make-software/casper-net-sdk/releases/tag/v3.0.0) + - Nuget package : [Casper.Network.SDK 3.0.0](https://www.nuget.org/packages/Casper.Network.SDK/3.0.0) - Go - - Github release : [casper-go-sdk-v2.0.0-beta2](https://github.com/make-software/casper-go-sdk/releases/tag/v2.0.0-beta2) + - Github release : [casper-go-sdk-2.0.3-beta1](https://github.com/make-software/casper-go-sdk/releases/tag/v2.0.3-beta1) - Java (WIP) - Python (WIP) - Rust (WIP) diff --git a/condor/local-setup.md b/condor/local-setup.md index a57039f50..78f9d638f 100644 --- a/condor/local-setup.md +++ b/condor/local-setup.md @@ -32,40 +32,99 @@ NCTL is your tool for managing the Casper network. We'll use a Dockerized versio ```bash git checkout feat-2.0 ``` + + Modify the casper-node's branch to dev: + ```bash + sed -i 's/-b feat-2.0*/-b dev/' casper-nctl-condor.Dockerfile + ``` + 3. **Clone the `casper-node` Repository:** ```bash git clone https://github.com/casper-network/casper-node.git cd casper-node - git checkout release-2.0.0-rc3 + git checkout dev ``` Ensure you're in the `casper-nctl-docker` directory when running this command 4. **Build the Docker Image:** ```bash - docker build -f casper-nctl-condor.Dockerfile -t casper-nctl:rc3 . + docker build -f casper-nctl-condor.Dockerfile -t casper-nctl:dev . ``` - This may take a while + This may take a while. 5. **Verify the Image:** ```bash docker image ls ``` - Look for the `casper-nctl:rc3` image in the output + Look for the `casper-nctl:dev` image in the output ``` - REPOSITORY TAG IMAGE ID CREATED SIZE - casper-nctl rc3 9fd1e7b25d42 40 hours ago 433MB + REPOSITORY TAG IMAGE ID CREATED SIZE + casper-nctl dev 0e3e3cd50a5a 11 hours ago 442MB ``` 6. **Start the NCTL Docker Container:** - * **Docker Compose (Recommended):** If you're using the `docker-compose.yml` file, make sure that the `image` under the `mynctl` service points to `casper-nctl:rc3`. Then run `docker-compose up`. + + There are two ways to start the NCTL Docker containers. + Docker Compose brings up an additional NCTL Explorer container, while the manual command does not. + * **Docker Compose (Recommended):** + + If you're using the `docker-compose.yml` file, make sure that the `image` under the `casper-nctl` service points to the image you just built (`casper-nctl:dev`) from the previous step, like this: + + docker-compose.yml + + ```yaml + ... + services: + casper-nctl: + image: casper-nctl:dev + container_name: casper-nctl + ... + ``` + + Start the containers. This will start an NCTL container and an NCTL Explorer container. + + ```bash + docker-compose up + ``` + "Ensure you're in the `casper-nctl-docker` directory when running this command. + + * **Manual Docker Command:** + + Below is the command to start an NCTL container named `mynctl`. + ```bash - docker run -d --name mynctl -p 11101:11101 casper-nctl:rc3 + docker run -d --name mynctl -p 11101:11101 casper-nctl:dev ``` - Once it is up and running you should see that there are 5 nodes and 5 sidecars running and another 5 nodes and 5 sidecars that are inactive: - ``` + +7. **Activate nctl-\* commands:** + + In a Linux or macOS terminal, run: + ```bash + source nctl-activate.sh + ``` + In a Powershell terminal, run: + ``` + . .\nctl-activate.ps1 + ``` + Ensure you're in the `casper-nctl-docker` directory when running this command. + + + +7. **Confirm the nctl status** + + ```bash + nctl-status + ``` + + Once it is up and running issue the command `nctl-status` then you should see that there are 5 nodes and 5 sidecars running and another 5 nodes and 5 sidecars that are inactive: + +
+ Click me + + ```json casper-nctl | validators-1:casper-net-1-node-1 RUNNING pid 996, uptime 0:00:03 casper-nctl | validators-1:casper-net-1-node-2 RUNNING pid 998, uptime 0:00:03 casper-nctl | validators-1:casper-net-1-node-3 RUNNING pid 1002, uptime 0:00:03 @@ -86,8 +145,9 @@ NCTL is your tool for managing the Casper network. We'll use a Dockerized versio casper-nctl | validators-3:casper-net-1-sidecar-7 STOPPED Not started casper-nctl | validators-3:casper-net-1-sidecar-8 STOPPED Not started casper-nctl | validators-3:casper-net-1-sidecar-9 STOPPED Not started - ``` + ``` +
## Part 2: Casper Client (Rust) @@ -95,7 +155,7 @@ To interact with your local Casper 2.0 network, we'll use the Casper Client. You **Option 1: Using the Casper Client from the Docker Image** -* The `casper-nctl:rc3` Docker image already includes the `casper-client`. +* The `casper-nctl:dev` Docker image already includes the `casper-client`. * You can skip the next two steps if you want to use the pre-installed client. **Option 2: Using Your Local Casper Client** @@ -108,73 +168,102 @@ To interact with your local Casper 2.0 network, we'll use the Casper Client. You 2. **Switch to the Casper 2.0-Compatible Branch (Optional):** ```bash - git checkout feat-track-node-2.0 + git checkout dev + ``` + +3. **Build casper-client:** + + Prerequisite: Install rustup + + ```bash + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ``` -3. **Activate NCTL scripts:** + Build the Casper Client: + ```bash - source nctl-activate.sh casper-nctl + cargo build --release ``` -4 **Test Your Setup:** +4. **Test Your Setup:** ```bash - nctl-view-node-status + casper-client get-block -n http://localhost:11101 ``` + This command should return the status of all the nodes running in your local network, indicating a successful setup. The output should look similar to this: - ``` - ------------------------------------------------------------------------------------------------------------------------------------ - 2024-07-10T15:31:42.181535 [INFO] [2043] NCTL :: node #1 :: status: + +
+ Click me + + + ```json { - "api_version": "2.0.0", - "peers": [ - { - "node_id": "tls:05b5..7b39", - "address": "127.0.0.1:22103" - }, - { - "node_id": "tls:527e..37d2", - "address": "127.0.0.1:22105" - }, - { - "node_id": "tls:b1d0..870f", - "address": "127.0.0.1:22102" - }, - { - "node_id": "tls:dcdf..e348", - "address": "127.0.0.1:22104" + "jsonrpc": "2.0", + "id": -2049464589362040719, + "result": { + "api_version": "2.0.0", + "block_with_signatures": { + "block": { + "Version2": { + "hash": "9e7c32760b6fefcd4e1a579a9dce0835e1d564e5a5aedaf06911d76f64af9e0c", + "header": { + "parent_hash": "ecd94fd34417032d4e7b77b0dce3c48164398d1946d95a57b50c73eaee59cf90", + "state_root_hash": "ad53786aed35ef7e5a608552329ff0ab33055c4e4bf6764124a3603fce49990a", + "body_hash": "18937e8cf4338b5f5fdc2581f8d7d6a47de736d2799e3f3bc9b0ff9f1e7cf106", + "random_bit": false, + "accumulated_seed": "1ce9cae18eccdea58c1a6b22474c6f98e4a4bf17d53a306390f528a18d264f59", + "era_end": null, + "timestamp": "2025-04-23T03:41:03.130Z", + "era_id": 94, + "height": 1028, + "protocol_version": "2.0.0", + "proposer": "0190664e16a17594ed2d0e3c279c4cf5894e8db0da15e3b91c938562a1caae32ab", + "current_gas_price": 1, + "last_switch_block_hash": "db222beace01c5c624cbd84a62c92feb0a23f3e0c3372dd5cba9e7ce51db63cf" + }, + "body": { + "transactions": {}, + "rewarded_signatures": [ + [ + 248 + ], + [ + 0 + ], + [ + 0 + ] + ] + } + } + }, + "proofs": [ + { + "public_key": "01509254f22690fbe7fb6134be574c4fbdb060dfa699964653b99753485e518ea6", + "signature": "01fbe5ca7584cd517b51cc2ee1c79c055eaccb523470b5f460f23c365d476dabf40d62d753b0f1c1003568dd555b64848cda2029d3f31bf9ee548ea6aefca72506" + }, + { + "public_key": "0190664e16a17594ed2d0e3c279c4cf5894e8db0da15e3b91c938562a1caae32ab", + "signature": "014ebd115e50169c79dd469f6118df18869232839bc07c3cff079837657ba9d31d913d367da886442f1532fbef66e86985d693346037b4863ef0ec90c1476e3403" + }, + { + "public_key": "01c867ff3cf1d4e4e68fc00922fdcb740304def196e223091dee62012f444b9eba", + "signature": "01d183f46c1a0af713c2f0629ea0436cb37c04ef300f8c25f84384607a91817e869956ccf47a4902f9d51c173cb8c3f6949391c792e343bc93968274b4c692e50c" + }, + { + "public_key": "01f58b94526d280881f79744effebc555426190950d5dfdd2f8aaf10ceaec010c6", + "signature": "01308ad12b69bc92497ad3b9d169d685a436ee4194a0e291a14e022bc0e70e5ee881a2f0be5301752ad9888a790bd9c4a7cbff1481df472166f3dce29df9ec9d00" + }, + { + "public_key": "01fed662dc7f1f7af43ad785ba07a8cc05b7a96f9ee69613cfde43bc56bec1140b", + "signature": "01bac3f6529816492daaa019a4ecf5bd3ef68757a266e4b4a0382a56268fdbc86a65ec037feb87cda554e244f25c3c9e525961a1a660b39ebd6f1aee2e64ce0006" + } + ] + } } - ], - "build_version": "2.0.0-d5c0d238f", - "chainspec_name": "casper-net-1", - "starting_state_root_hash": "2d92cf9f3ff3eb70f40be598b61cbf747c1b5ea67df9596d84a88c5458028a80", - "last_added_block_info": { - "hash": "c1056e0e5978e725777f48e4488462d7794e6547f25b1fbcc4ba261ca2864395", - "timestamp": "2024-07-10T15:31:38.601Z", - "era_id": 19, - "height": 205, - "state_root_hash": "6c5502c3443f526e943fa5a5421349e938464c063c8dd0ada616c997e3805612", - "creator": "0190664e16a17594ed2d0e3c279c4cf5894e8db0da15e3b91c938562a1caae32ab" - }, - "our_public_signing_key": "01fed662dc7f1f7af43ad785ba07a8cc05b7a96f9ee69613cfde43bc56bec1140b", - "round_length": "4s 96ms", - "next_upgrade": null, - "uptime": "13m 15s", - "reactor_state": "Validate", - "last_progress": "2024-07-10T15:18:26.354Z", - "available_block_range": { - "low": 0, - "high": 205 - }, - "block_sync": { - "historical": null, - "forward": null - }, - "latest_switch_block_hash": "5192198c783ed8b66e206c37b34c5e268c84be2f4b78dd9899eecf5f37fb9f68" } - . - . - . ``` +
## Troubleshooting @@ -182,18 +271,18 @@ To interact with your local Casper 2.0 network, we'll use the Casper Client. You **Solution:** 1. Go to the `casper-node/ci/ci.json` file. -2. Change the `casper-sidecar` branch under `external_deps` from: +2. Change the `casper-sidecar` branch under `external_deps` to the casper-node's compatible branch: ```json - "branch": "feat-2.0" + "branch": "xxx" ``` to: ```json - "branch": "release-1.0.0rc2_node-2.0.0rc3" + "branch": "dev" ``` - This is because the `casper-node` we are using is `release-2.0.0-rc3`. The required combination of versions of `casper-sidecar` and `casper-node` may change in the future (rc4 etc.). + Make sure that `casper-node` and `casper-sidecar` are compatible. -3. Rebuild the NCTL image: `docker build -f casper-nctl-condor.Dockerfile -t casper-nctl:rc3 .` +3. Rebuild the NCTL image: `docker build -f casper-nctl-condor.Dockerfile -t casper-nctl:dev .` ## Using the Casper Client @@ -202,7 +291,9 @@ To interact with your local Casper 2.0 network, we'll use the Casper Client. You ## Accessing the NCTL Block Web Explorer -The NCTL Docker setup includes a web-based block explorer. You can access it in your browser at: +This is only available if you started the container using `docker compose up`. + +The NCTL Docker setup using docker compose includes a web-based block explorer. You can access it in your browser at: ``` http://127.0.0.1:8080 @@ -216,4 +307,4 @@ This allows you to visually explore blocks, transactions, and other details of y ## Additional Tips -* **Community Resources:** Join the [Casper Telegram](https://t.me/CSPRCondor) for help and discussion. \ No newline at end of file +* **Community Resources:** Join the [Casper Telegram](https://t.me/CSPRCondor) or [Casper Discord](https://discord.gg/caspernetwork) for help and discussion. \ No newline at end of file From f68bde8d7375af1e0c3880c2907bbcea4298b7ef Mon Sep 17 00:00:00 2001 From: Jiu-hong Date: Wed, 23 Apr 2025 18:16:34 +0800 Subject: [PATCH 03/97] modify method of changing branch --- condor/local-setup.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/condor/local-setup.md b/condor/local-setup.md index 78f9d638f..2b16f7936 100644 --- a/condor/local-setup.md +++ b/condor/local-setup.md @@ -33,9 +33,12 @@ NCTL is your tool for managing the Casper network. We'll use a Dockerized versio git checkout feat-2.0 ``` - Modify the casper-node's branch to dev: - ```bash - sed -i 's/-b feat-2.0*/-b dev/' casper-nctl-condor.Dockerfile + Modify the casper-node's branch to dev inside casper-nctl-condor.Dockerfile + + ``` + ... + RUN git clone -b dev https://github.com/casper-network/casper-node.git ~/casper-node + ... ``` From da39cce658c4fe729c039416895cf725e0235cb6 Mon Sep 17 00:00:00 2001 From: KMCreatesWorlds Date: Wed, 23 Apr 2025 12:25:33 +0200 Subject: [PATCH 04/97] Deleting Python SDK from Docs (CD-64) --- config/sidebar.config.js | 3 +-- versioned_sidebars/version-2.0.0-sidebars.json | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/config/sidebar.config.js b/config/sidebar.config.js index 67c133887..3ddd8847f 100644 --- a/config/sidebar.config.js +++ b/config/sidebar.config.js @@ -182,8 +182,7 @@ module.exports = { "developers/dapps/sdk/client-library-usage", "developers/dapps/sdk/script-sdk", "developers/dapps/sdk/csharp-sdk", - "developers/dapps/sdk/go-sdk", - "developers/dapps/sdk/python-sdk", + "developers/dapps/sdk/go-sdk" ], }, "developers/dapps/technology-stack", diff --git a/versioned_sidebars/version-2.0.0-sidebars.json b/versioned_sidebars/version-2.0.0-sidebars.json index 90f7af3e2..b3eb7f112 100644 --- a/versioned_sidebars/version-2.0.0-sidebars.json +++ b/versioned_sidebars/version-2.0.0-sidebars.json @@ -191,8 +191,7 @@ "developers/dapps/sdk/client-library-usage", "developers/dapps/sdk/script-sdk", "developers/dapps/sdk/csharp-sdk", - "developers/dapps/sdk/go-sdk", - "developers/dapps/sdk/python-sdk" + "developers/dapps/sdk/go-sdk" ] }, "developers/dapps/technology-stack", From ce27c4db5628567fe34adb095452aef0b358f9d7 Mon Sep 17 00:00:00 2001 From: Karan Dhareshwar <42871449+darthsiroftardis@users.noreply.github.com> Date: Mon, 28 Apr 2025 08:57:33 -0500 Subject: [PATCH 05/97] Update index.md --- condor/index.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/condor/index.md b/condor/index.md index 401b450f3..aba61b872 100644 --- a/condor/index.md +++ b/condor/index.md @@ -52,9 +52,8 @@ In Casper 1.X, there was no native option for emitting contract-level events in CES works by writing events to global state, and having clients consistently poll for new event data as it is emitted. While this approach *does* provide the full functionality of events, it is far from optimal. CES suffers from the following inherent limitations: -* Higher gas payments: Gas must be spent to store event data in global state. +* Higher gas payments: The current implementation happens as part of Wasm execution and doesn't benefit from the reduced cost of the native implementation. * Reduced security: It is possible in some cases for a malicious actor to overwrite events on the blockchain, leading to uncertainty about an event's reliability when queried off-chain. -* Permanence: Since with CES events are written directly to global state, they are permanently queryable. Even if the data is deleted or overwritten, the data can be read by providing the [state root hash](https://docs.casper.network/concepts/global-state/) at the block of event emission. * Resource intensity: Under the CES, events being written to the blockchain causes the global state to increase in size over time. Additionally, more computation is required to write data to the network than to broadcast it, leading to more expensive transactions. In Casper 2.0, native contract-level events have been implemented under [CEP-88](https://github.com/casper-network/ceps/blob/master/text/0088-contract-level-messages.md). CEP-88 establishes a secure, one-way messaging channel between contracts and entities listening to a node's event stream. This standardized method of emitting contract-level events is built into the existing Casper Event Stream, requiring no additional features to Casper's SDKs. @@ -84,12 +83,12 @@ The existing Deploy model is deprecated as of Casper 2.0, and support will be re > > N.B. This feature is not activated yet. See below for details -Casper 2.0 introduces significant changes in the representation and management of accounts and smart contracts, through the introduction of the `AddressableEntity` type. This new structure replaces the separate `AccountHash` and `ContractHash` used in Casper 1.x, bringing a unified approach to interaction with entities on the network. Contracts can now hold and manage funds directly through associated purses, similar to user accounts. They can also manage their own keys, enabling more sophisticated access control. +Casper 2.0 introduces significant changes in the representation and management of accounts and smart contracts, through the introduction of the `AddressableEntity` type. This new structure merges the `Account` and `Contract` structures into one unified type Casper 1.x, bringing a unified approach to interaction with entities on the network. Contracts can now hold and manage funds directly through associated purses, similar to user accounts. They can also manage their own keys, enabling more sophisticated access control. -There are three fundamental types of Addressable Entity: +There are three types of Addressable Entity: - System Contracts - User Accounts -- Deployed Smart Contracts +- Smart Contracts ##### Account Unification upgrade path This feature is a fundamental change to the way that smart contracts interact with the network and each other. Moving to this feature requires that applications using smart contracts must analyse, rework and retest their code in order to ensure that their applications will work as intended. Therefore, the initial release of Casper 2.0 will not turn this feature on. At some point in the future, once agreed by the people participating in the network, an update to the network will be issued which activates this feature. This step will not be reversible. From 1733b5c43166cc9701941973c1db592945766a53 Mon Sep 17 00:00:00 2001 From: Michael Steuer Date: Mon, 28 Apr 2025 18:04:19 -0700 Subject: [PATCH 06/97] MAJOR SURGERY to Casper 2.0 release notes --- condor/index.md | 185 ++++++++++++++++++++++++++++-------------------- 1 file changed, 107 insertions(+), 78 deletions(-) diff --git a/condor/index.md b/condor/index.md index aba61b872..fe6d67827 100644 --- a/condor/index.md +++ b/condor/index.md @@ -1,56 +1,67 @@ --- title: Casper v2.0 Release Notes -description: Introduction to the Caper v2.0 Release +description: Introduction to the Casper v2.0 Release slug: index -date: 2024-07-16T22:00 -authors: [ melpadden ] +date: 2025-04-28T22:00 +authors: [ core-team ] tags: [v2] hide_table_of_contents: false --- -## Casper v2.0 - Release Notes +# Casper v2.0 - Release Notes -October/November 2024 +##### April/May 2025 We are excited to announce the release of **Casper v2.0 - formerly known as Condor**, which introduces a wide range of new features, improvements, and performance optimizations aimed at enhancing user experience and system efficiency. -**Condor** was the code name given to the pre-release versions of the Casper platform v2.0. Casper 2.0 represents a significant upgrade with a slew of new features as well as optimizations & improvements to existing features. +Casper 2.0 represents a significant upgrade with a slew of new features as well as optimizations & improvements to existing features. --- +# Major Changes at a glance -## Major Changes at a glance +## New Features -### Architectural Changes +| Feature | CEP | +|-------------------------------------------------------------------|----------------| +| [Zug Consensus Protocol](#zug-consensus-protocol) | [Whitepaper]() | +| [Multi-VM Support](#multi-virtual-machine-architecture) | | +| [CSPR Burning ](#cspr-burn-function) | [CEP-92]() | +| [Native Events](#native-events) | [CEP-88]() | +| [FFI Enhancements](#ffi-enhancements) | | +| [Expanded API Options](#expanded-api-integration-options) | | +| [New Transaction Model](#new-transaction-model) | | +| [Configurable Delegation Limits](#configurable-delegation-limits) | [CEP-90]() | +| [Reserved Slots and Custom Fees](#reserved-slots-and-custom-fees) | | +| [Factory Contract Pattern](#factory-contract-pattern) | [CEP-86]() | +| [Contract Access to Auction](#contract-access-to-auction) | | -Casper v2.0 introduces a number of improvements aimed at removing some limitations of the Casper platform and dealing with technical debt. Some of the limitations in Casper 1.X were due to architectural decisions that impeded efforts to introduce new features without breaking existing systems. -#### Casper Sidecar -In Casper 2.0, the existing RPC service has been moved outside of the node software itself. In Casper 1.X, the RPC service existed as an HTTP server which was built into the node software itself. This meant that the RPC server was tightly coupled to the node software, could not be updated without updating the node software, and executed in the same process space as the node. The result of this was that any extension of the RPC surface necessitated a full network upgrade to deliver. -In Casper 2.0, the JSON RPC has been moved to a separate process, known as the [Sidecar](https://docs.casper.network/operators/setup/casper-sidecar/). This step brings a few improvements: - - It allows for better process isolation and makes it easier to run and debug node processes. - - The Sidecar provides a way to surface Contract Level Events, which opens up some interesting possibilities for node interactions. - - The separation of the Sidecar into a new codebase means that enhancements to the RPC API can now be accomplished without changing the node binary, necessitating a network upgrade. +### Zug Consensus Protocol +Casper 2.0 introduces a new consensus model known as Zug ([Whitepaper](https://arxiv.org/abs/2205.06314)). The Highway protocol is effective and secure, but resource-heavy. Zug is simpler and leaner than the Highway protocol upon which Casper was originally conceived, and as such allows for improvements in network efficiency and cohesion. This in turn facilitates eventual extension of the validator list, and finer-grained control over block times. -#### Expanded API Integration Options -Casper 2.0 introduces some extensions to the ways in which you can interact with the Casper Network. +#### Zug in brief +In every round, the designated leader can sign a proposal message to suggest a block. The proposal also points to an earlier round in which the parent block was proposed. -#### Binary Port -We have added a brand new RPC option at the binary level, the [Binary Port API](https://github.com/casper-network/condor-info/blob/main/articles/062-binary-port.md). This allows you to communicate with the node without the need for JSON serialization, with improvements in performance. The adoption of a binary RPC protocol brings several benefits to the Casper network: +Each validator then signs an echo message with the proposal's hash. Correct validators only sign one echo per round, so at most one proposal can get echo messages signed by a quorum. A quorum is a set of validators whose total weight is greater than (n + f) / 2, where n is the total weight of all validators and f is the maximum allowed total weight of faulty validators. Thus, any two quorums always have a correct validator in common. As long as n > 3f, the correct validators will constitute a quorum since (n + f) / 2 < n - f. -- Reduced Network Congestion: The compact nature of binary encoding leads to smaller message sizes, decreasing bandwidth consumption and network strain. This is particularly valuable in scenarios with high transaction volumes or limited bandwidth. -- Improved Node Responsiveness: While the node still needs to process requests, binary data is often faster to handle than JSON. This can lead to quicker response times from the node, enhancing overall network performance -- Scalability: The efficiency gains from binary communication contribute to the network ability to scale and handle increased transaction loads without sacrificing performance. -- Efficient Data Retrieval: The binary port allows querying raw data directly from the database. This means the node can provide raw bytes from storage without the overhead of deserialization, further contributing to performance improvements, especially for large data requests. +In cases where the network cannot reach consensus, for example, during a partition or failure, the round is skipped without penalizing the network’s performance. In other words, skippable rounds prevent the network from stalling. -Interacting with the Casper Node using the Binary Port option is not the same as using the RPC. The Binary Port allows you to interact with the node on a much lower level, which allows for performance improvements and greater scalability. To avail of these advantages, a smaller, more focused API is exposed. To ease adoption of this interface, the [Casper Binary Port Client](https://github.com/casper-ecosystem/casper-binary-port-client) has been created. This library contains code which serves both as a repository of examples and demonstrations of how to connect to the Binary Port, and also serves as a client library to allow downstream applications to connect to the Binary Port and build functionality on top of it. - -#### Native Events -In Casper 1.X, there was no native option for emitting contract-level events in the node software. The best option available to developers looking to use this kind of functionality was the [Casper Event Standard (CES)](https://github.com/make-software/casper-event-standard) created by Make Software. In Casper 2.0, We have added contract level events as a native citizen of the Casper node infrastructure. This brings some improvements and provides an alternative to the existing Casper Event Standard, which will remain available in the ecosystem. +A detailed discussion of the Zug consensus may be found in the [Casper documentation](http://docs.casper.network/). For a detailed description of the protocol, please refer to the [Zug Whitepaper](https://arxiv.org/abs/2205.06314) + +### Multi-Virtual Machine Architecture -CES works by writing events to global state, and having clients consistently poll for new event data as it is emitted. While this approach *does* provide the full functionality of events, it is far from optimal. CES suffers from the following inherent limitations: +In Casper 2.0, we are introducing a change to the execution engine which allows transactors to specify which of many possible VMs they wish to target with their transaction. + +### CSPR Burn function +In Casper 2.0 users can burn CSPR token ([CEP-92](https://github.com/casper-network/ceps/blob/master/text/0092-cspr-burn.md). This function is exposed as a `burn` function in the mint contract. + +### Native Events +In Casper 1.X, there was no native option for emitting contract-level events in the node software. The best option available to developers looking to use this kind of functionality was the [Casper Event Standard (CES)](https://github.com/make-software/casper-event-standard) created by MAKE and Odra. In Casper 2.0, We have added contract level events as a native citizen of the Casper node infrastructure. This brings some improvements and provides an alternative to the existing Casper Event Standard, which will remain available in the ecosystem. + +CES suffers from the following inherent limitations: * Higher gas payments: The current implementation happens as part of Wasm execution and doesn't benefit from the reduced cost of the native implementation. * Reduced security: It is possible in some cases for a malicious actor to overwrite events on the blockchain, leading to uncertainty about an event's reliability when queried off-chain. @@ -60,106 +71,124 @@ In Casper 2.0, native contract-level events have been implemented under [CEP-88] Messages are passed by the execution engine to the node that sends them out on the event stream after execution is complete and committed. The messages sent out on the event stream contain the identity of the entity that emitted the message, the topic on which the message was emitted, the index of the message within the topic and the actual message payload. The contents of the event itself are *not* stored on-chain, but proofs are stored to allow for verification of events. -Events can be consumed client-side by listening to the event stream of an active node. Casper's SDKs include functions that make it easy to subscribe to an event stream and consume its inbound data. - -### Zug Consensus Protocol -Casper 2.0 introduces a new consensus model known as Zug ([Whitepaper](https://arxiv.org/abs/2205.06314)). The Highway protocol is effective and secure, but resource-heavy. Zug is simpler and leaner than the Highway protocol upon which Casper was originally conceived, and as such allows for improvements in network efficiency and cohesion. This in turn facilitates eventual extension of the validator list, and finer-grained control over block times. - -#### Zug in brief -In every round, the designated leader can sign a proposal message to suggest a block. The proposal also points to an earlier round in which the parent block was proposed. - -Each validator then signs an echo message with the proposal's hash. Correct validators only sign one echo per round, so at most one proposal can get echo messages signed by a quorum. A quorum is a set of validators whose total weight is greater than (n + f) / 2, where n is the total weight of all validators and f is the maximum allowed total weight of faulty validators. Thus, any two quorums always have a correct validator in common. As long as n > 3f, the correct validators will constitute a quorum since (n + f) / 2 < n - f. +Events can be consumed client-side by listening to the event stream of an active node. Casper's SDKs include functions that make it easy to subscribe to an event stream and consume its inbound data. -In cases where the network cannot reach consensus, for example, during a partition or failure, the round is skipped without penalizing the network’s performance. In other words, skippable rounds prevent the network from stalling. +### FFI Enhancements +Casper 2.0 FFI introduces access to some additional hashing algorithms, as well as providing access to information about the block info, including hash and parent block hash. This also enables increased entropy for the `casper_random_bytes` function, improving the unpredictability of random outputs. -A detailed discussion of the Zug consensus may be found in the [Casper documentation](http://docs.casper.network/). For a detailed description of the protocol, please refer to the [Zug Whitepaper](https://arxiv.org/abs/2205.06314) +### Expanded API Integration Options +Casper 2.0 introduces some extensions to the ways in which you can interact with the Casper Network. ### New Transaction Model Casper 2.0 introduces the concept of a [Transaction](https://docs.casper.network/transactions-and-transaction-lifecycle/#execution-semantics-transactions), which replaces the existing Deploy concept. Transactions are a new structure that allows several ways for users to make changes to global state. They allow for a variety of Wasm-less interactions with the blockchain. These new interactions are more efficient than Deploys and provide a level of convenience that was not previously available. More more details, see the list of available [Transaction Types](https://docs.casper.network/transactions/#transaction-types). The existing Deploy model is deprecated as of Casper 2.0, and support will be removed entirely in a future major release. However, Casper 2.0 will continue to accept valid Deploys and will attempt to execute them. Most existing deploys that function today will continue to do so. However, deploys that depend on a data type or FFI function that has been altered or removed will fail to execute. -#### Account/Contract unification -> -> N.B. This feature is not activated yet. See below for details +### Configurable Delegation Limits +Casper 2.0 enables validators to set optional minimum and maximum delegation limit, in accordance with [CEP-90](https://github.com/casper-network/ceps/blob/master/text/0090-configurable-delegation-limits.md). -Casper 2.0 introduces significant changes in the representation and management of accounts and smart contracts, through the introduction of the `AddressableEntity` type. This new structure merges the `Account` and `Contract` structures into one unified type Casper 1.x, bringing a unified approach to interaction with entities on the network. Contracts can now hold and manage funds directly through associated purses, similar to user accounts. They can also manage their own keys, enabling more sophisticated access control. +### Reserved Slots and Custom Fees -There are three types of Addressable Entity: -- System Contracts -- User Accounts -- Smart Contracts +Casper 2.0 allows validators to reserve slots on their node for specific delegators, and configure custom fee percentages for those reserved slots. This feature allows a validator to provide bespoke service to contracted parties. -##### Account Unification upgrade path -This feature is a fundamental change to the way that smart contracts interact with the network and each other. Moving to this feature requires that applications using smart contracts must analyse, rework and retest their code in order to ensure that their applications will work as intended. Therefore, the initial release of Casper 2.0 will not turn this feature on. At some point in the future, once agreed by the people participating in the network, an update to the network will be issued which activates this feature. This step will not be reversible. +### Factory Contract Pattern -### Fee Elimination +Casper 2.0 introduces the [CEP-86](https://github.com/casper-network/ceps/blob/master/text/0086-factory-pattern.md) Factory Contract Pattern, allowing smart contract developers to more optimally configure the installation and invocation of their smart contracts. -Scheduled along with the release of Casper 2.0 is a change in the configuration of the Casper Network to use a model known as **Fee Elimination** for gas payments. +### Contract Access to Auction -> __Fee Elimination is the strategy of placing temporary holds on transactor balances corresponding to their incurred gas costs, instead of taking those costs from their on-chain balances__. +In Casper 2.0, smart contracts can now interact directly with the system auction, enabling on-chain applications to stake CSPR, earn rewards, and integrate staking yields into their native economic models. -Under 1.x, transactors must pay for gas directly from their purse balances. With Fee Elimination on Casper 2.0, a hold is placed on the calculated **Gas Cost** for a configurable period of time known as the **Hold Period**. Fees are therefore not forfeited by transactors, and funds are not spent to execute transactions. The scheduled release of funds placed under a hold in this way is governed by the configuration of the chainspec. There are two options: +## Architectural Changes -#### Accrued -100% of the hold is held until the hold expires. At any given point in the duration of the hold, the effective amount of the hold is 100%. At expiry, all of the funds are again made available to the transactor. +Casper v2.0 introduces a number of improvements aimed at removing some limitations of the Casper platform and dealing with technical debt. Some of the limitations in Casper 1.X were due to architectural decisions that impeded efforts to introduce new features without breaking existing systems. -#### Amortized -The effective amount of the hold is reduced linearly over the course of the hold duration. At any point in the duration of the hold, the effective hold *amount* is proportional to the percentage of the hold *duration* that remains before expiry. +### Casper Sidecar +In Casper 2.0, the existing RPC service has been moved outside of the node software itself. In Casper 1.X, the RPC service existed as an HTTP server which was built into the node software itself. This meant that the RPC server was tightly coupled to the node software, could not be updated without updating the node software, and executed in the same process space as the node. The result of this was that any extension of the RPC surface necessitated a full network upgrade to deliver. + +In Casper 2.0, the JSON RPC has been moved to a separate process, known as the [Sidecar](https://docs.casper.network/operators/setup/casper-sidecar/). This step brings a few improvements: + - It allows for better process isolation and makes it easier to run and debug node processes. + - The Sidecar provides a way to surface Contract Level Events, which opens up some interesting possibilities for node interactions. + - The separation of the Sidecar into a new codebase means that enhancements to the RPC API can now be accomplished without changing the node binary, necessitating a network upgrade. + +### Binary Port +We have added a brand new RPC option at the binary level, the [Binary Port API](https://github.com/casper-network/condor-info/blob/main/articles/062-binary-port.md). This allows you to communicate with the node without the need for JSON serialization, with improvements in performance. The adoption of a binary RPC protocol brings several benefits to the Casper network: + +- Reduced Network Congestion: The compact nature of binary encoding leads to smaller message sizes, decreasing bandwidth consumption and network strain. This is particularly valuable in scenarios with high transaction volumes or limited bandwidth. +- Improved Node Responsiveness: While the node still needs to process requests, binary data is often faster to handle than JSON. This can lead to quicker response times from the node, enhancing overall network performance +- Scalability: The efficiency gains from binary communication contribute to the network ability to scale and handle increased transaction loads without sacrificing performance. +- Efficient Data Retrieval: The binary port allows querying raw data directly from the database. This means the node can provide raw bytes from storage without the overhead of deserialization, further contributing to performance improvements, especially for large data requests. + +Interacting with the Casper Node using the Binary Port option is not the same as using the RPC. The Binary Port allows you to interact with the node on a much lower level, which allows for performance improvements and greater scalability. To avail of these advantages, a smaller, more focused API is exposed. To ease adoption of this interface, the [Casper Binary Port Client](https://github.com/casper-ecosystem/casper-binary-port-client) has been created. This library contains code which serves both as a repository of examples and demonstrations of how to connect to the Binary Port, and also serves as a client library to allow downstream applications to connect to the Binary Port and build functionality on top of it. + +### SSE Streams Combined +In Casper 2.0, the 3 event streams that exist in Casper 1.x (`main`, `deploys` and `sigs`) have been merged into a single event stream for more convenient consumption of events + +### Validator Rewards +In Casper 2.0, validator rewards are calculated differently than they were in 1.5.x. They are based on a combination of Block proposal +Signature creation and Signature publication. A detailed explanation of the new methodology is [available here](/condor/validator-rewards.md). + +## Upcoming Features/Updates + +Following the release of Casper 2.0 to mainnet, the following features will be activated for testing and subsequent release to mainnet in minor-version releases of the Casper protocol and node: ### Virtual Machine 2.0 -In Casper 2.0, we are introducing a change to the execution engine which allows transactors to specify which of many possible VMs they wish to target with their transaction. The current Casper VM will remain, and for the initial 2.0 release the new VM will not be enabled. We expect to enable VM 2.0 in a subsequent release cycle. +Building on Casper 2.0's new Multi-VM Architecture, Casper 2.1 will see the activation of the first additional virtual machine on Casper Network, "VM 2.0". -Among the improvements in VM 2.0 are: +Among the improvements in VM 2.0 are: - Removal of URefs. URefs are complicated, hard to track, and ultimately unnecessary for most contracts. - An improved Smart Contract programming model with an emphasis on high-level logic in place of low-level implementation details, leading to improved maintainability and more concise code. -- Backwards compatibility: VM2.0 contracts can call VM 1.X contracts, allowing the two systems to coexist during the transition period. +- Backwards compatibility: VM2.0 contracts can call VM 1.X contracts, allowing the two systems to coexist during the transition period. - Transferable entry points, which allow sending tokens directly to contract entry points without needing a custom session code. - VM2.0 code will all be valid Rust code, which allows it to execute without a complex system of test infrastructure and improves testability. - Implementation of some features which are familiar from other chains such as the `payable` keyword - Schema generation from smart contracts, paving the way for improvements in tooling, discoverability and maintainability. - Improved Smart Contract upgrade process. -### FFI Enhancements -Casper 2.0 FFI introduces access to some additional hashing algorithms, as well as providing access to information about the block info, including hash and parent block hash. +### Fee Elimination -### CSPR Burn function -In Casper 2.0 users can burn CSPR token. This function is exposed as a `burn` function in the mint contract. +Subject to a governance vote by the Casper Network validators on behalf of their delegators, configuration changes in a future minor release of Casper 2.0 will activate a gas fee model known as **Fee Elimination**. + +[Fee Elimination](/condor/fee-elimination.md) is the strategy of placing temporary holds on transactor balances corresponding to their incurred gas costs, instead of taking those costs from their on-chain balances. + +Under 1.x, transactors must pay for gas directly from their purse balances. With Fee Elimination on Casper 2.0, a hold is placed on the calculated **Gas Cost** for a configurable period of time known as the **Hold Period**. Fees are therefore not forfeited by transactors, and funds are not spent to execute transactions. The scheduled release of funds placed under a hold in this way is governed by the configuration of the chainspec. There are two options: + +#### Accrued +100% of the hold is held until the hold expires. At any given point in the duration of the hold, the effective amount of the hold is 100%. At expiry, all of the funds are again made available to the transactor. + +#### Amortized +The effective amount of the hold is reduced linearly over the course of the hold duration. At any point in the duration of the hold, the effective hold *amount* is proportional to the percentage of the hold *duration* that remains before expiry. --- -### Deprecations +--- + +## Deprecations The `get_state_item` RPC endpoint, while not yet deprecated, will be deprecated in a future release cycle uin favour of the more flexible get_global_state endpoint. This endpoint was initially deprecated, but was left in to the v2.0 release to maintain backwards compatibility while downstream development teams upgrade their code to reflect this change. For more details please see [here](https://github.com/casper-network/condor-info/discussions/2). --- -### Comprehensive List of Casper 2.0 Updates +## Comprehensive List of Casper 2.0 Updates A detailed list of all changes, updates, and deprecations introduced in Casper 2.0 is available on this [page](./all-prs.md). --- -### Upcoming Features/updates -- Activation of the Contract/Account unification feature. -- Activation of Virtual Machine 2.0. -- Deprecation of `the get_state_item` endpoint. ---- - -### Official Documentation +## Official Documentation For reference documentation on Casper including Casper v2.0, please refer to the complete documentation available [here](http://docs.casper.network). Worth noting is that we have implemented documentation versioning, i.e. you may select the version of the documentation you wish to view from a drop-down in the top right of the navigation bar. This allows you to compare some topics with their former version to see what has changed. -#### Support Channels +## Support Channels To raise a request for an article or blog post, or to notify us of errata or omissions, use the Issues feature in the Casper Documentation site. [https://github.com/casper-network/docs-redux/issues](https://github.com/casper-network/docs-redux/issues) You can use any of our official channels to ask for more information or raise an issue. -| Description | Type | Link | -| ----- | ----- | ------ | -| Official Casper Support | Telegram | https://t.me/casperblockchainsupport | -| | | | +| Description | Type | Link | +|--------------------------|----------|--------------------------------------| +| Official Casper Support | Telegram | https://t.me/casperblockchainsupport | + Thank you for using Casper v2.0! We hope these new features and improvements enhance your experience. Please feel free to share feedback or report issues through our support channels. From 1b07598c297c4ebae6e86d8c23a9d888654a7109 Mon Sep 17 00:00:00 2001 From: Karan Dhareshwar <42871449+darthsiroftardis@users.noreply.github.com> Date: Mon, 28 Apr 2025 20:26:15 -0500 Subject: [PATCH 07/97] Additional review of release notes --- condor/index.md | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/condor/index.md b/condor/index.md index fe6d67827..8b160acde 100644 --- a/condor/index.md +++ b/condor/index.md @@ -59,15 +59,8 @@ In Casper 2.0, we are introducing a change to the execution engine which allows In Casper 2.0 users can burn CSPR token ([CEP-92](https://github.com/casper-network/ceps/blob/master/text/0092-cspr-burn.md). This function is exposed as a `burn` function in the mint contract. ### Native Events -In Casper 1.X, there was no native option for emitting contract-level events in the node software. The best option available to developers looking to use this kind of functionality was the [Casper Event Standard (CES)](https://github.com/make-software/casper-event-standard) created by MAKE and Odra. In Casper 2.0, We have added contract level events as a native citizen of the Casper node infrastructure. This brings some improvements and provides an alternative to the existing Casper Event Standard, which will remain available in the ecosystem. - -CES suffers from the following inherent limitations: - -* Higher gas payments: The current implementation happens as part of Wasm execution and doesn't benefit from the reduced cost of the native implementation. -* Reduced security: It is possible in some cases for a malicious actor to overwrite events on the blockchain, leading to uncertainty about an event's reliability when queried off-chain. -* Resource intensity: Under the CES, events being written to the blockchain causes the global state to increase in size over time. Additionally, more computation is required to write data to the network than to broadcast it, leading to more expensive transactions. - -In Casper 2.0, native contract-level events have been implemented under [CEP-88](https://github.com/casper-network/ceps/blob/master/text/0088-contract-level-messages.md). CEP-88 establishes a secure, one-way messaging channel between contracts and entities listening to a node's event stream. This standardized method of emitting contract-level events is built into the existing Casper Event Stream, requiring no additional features to Casper's SDKs. +In Casper 1.X, there was no native option for emitting contract-level events in the node software. The best option available to developers looking to use this kind of functionality was the [Casper Event Standard (CES)](https://github.com/make-software/casper-event-standard) created by MAKE and Odra. In Casper 2.0, We have provided host side support for the emission of events. Smart contract developers may still opt to use the CES standard, however, the native implementation is recommneded as the go-forward for the contract level events +The CEP-88 refernce implementation provides the template for contract level events [CEP-88](https://github.com/casper-network/ceps/blob/master/text/0088-contract-level-messages.md). CEP-88 establishes a secure, one-way messaging channel between contracts and entities listening to a node's event stream. This standardized method of emitting contract-level events is built into the existing Casper Event Stream, requiring no additional features to Casper's SDKs. Messages are passed by the execution engine to the node that sends them out on the event stream after execution is complete and committed. The messages sent out on the event stream contain the identity of the entity that emitted the message, the topic on which the message was emitted, the index of the message within the topic and the actual message payload. The contents of the event itself are *not* stored on-chain, but proofs are stored to allow for verification of events. From b5c0b6f8bde419ef371f942a2887105e8b0a0d6d Mon Sep 17 00:00:00 2001 From: Michael Steuer Date: Mon, 28 Apr 2025 18:33:22 -0700 Subject: [PATCH 08/97] Removing confusing section about "expanded API integration options" --- condor/index.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/condor/index.md b/condor/index.md index fe6d67827..0f28c7106 100644 --- a/condor/index.md +++ b/condor/index.md @@ -30,7 +30,6 @@ Casper 2.0 represents a significant upgrade with a slew of new features as well | [CSPR Burning ](#cspr-burn-function) | [CEP-92]() | | [Native Events](#native-events) | [CEP-88]() | | [FFI Enhancements](#ffi-enhancements) | | -| [Expanded API Options](#expanded-api-integration-options) | | | [New Transaction Model](#new-transaction-model) | | | [Configurable Delegation Limits](#configurable-delegation-limits) | [CEP-90]() | | [Reserved Slots and Custom Fees](#reserved-slots-and-custom-fees) | | @@ -76,9 +75,6 @@ Events can be consumed client-side by listening to the event stream of an active ### FFI Enhancements Casper 2.0 FFI introduces access to some additional hashing algorithms, as well as providing access to information about the block info, including hash and parent block hash. This also enables increased entropy for the `casper_random_bytes` function, improving the unpredictability of random outputs. -### Expanded API Integration Options -Casper 2.0 introduces some extensions to the ways in which you can interact with the Casper Network. - ### New Transaction Model Casper 2.0 introduces the concept of a [Transaction](https://docs.casper.network/transactions-and-transaction-lifecycle/#execution-semantics-transactions), which replaces the existing Deploy concept. Transactions are a new structure that allows several ways for users to make changes to global state. They allow for a variety of Wasm-less interactions with the blockchain. These new interactions are more efficient than Deploys and provide a level of convenience that was not previously available. More more details, see the list of available [Transaction Types](https://docs.casper.network/transactions/#transaction-types). From 76a408584a303027445fa1087669f96899598c9b Mon Sep 17 00:00:00 2001 From: Michael Steuer Date: Mon, 28 Apr 2025 18:36:35 -0700 Subject: [PATCH 09/97] Updating links in feature table on top --- condor/index.md | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/condor/index.md b/condor/index.md index d4d17b371..725c48525 100644 --- a/condor/index.md +++ b/condor/index.md @@ -23,20 +23,18 @@ Casper 2.0 represents a significant upgrade with a slew of new features as well ## New Features -| Feature | CEP | -|-------------------------------------------------------------------|----------------| -| [Zug Consensus Protocol](#zug-consensus-protocol) | [Whitepaper]() | -| [Multi-VM Support](#multi-virtual-machine-architecture) | | -| [CSPR Burning ](#cspr-burn-function) | [CEP-92]() | -| [Native Events](#native-events) | [CEP-88]() | -| [FFI Enhancements](#ffi-enhancements) | | -| [New Transaction Model](#new-transaction-model) | | -| [Configurable Delegation Limits](#configurable-delegation-limits) | [CEP-90]() | -| [Reserved Slots and Custom Fees](#reserved-slots-and-custom-fees) | | -| [Factory Contract Pattern](#factory-contract-pattern) | [CEP-86]() | -| [Contract Access to Auction](#contract-access-to-auction) | | - - +| Feature | CEP | +|-------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------| +| [Zug Consensus Protocol](#zug-consensus-protocol) | [Whitepaper](https://arxiv.org/abs/2205.06314) | +| [Multi-VM Support](#multi-virtual-machine-architecture) | | +| [CSPR Burning ](#cspr-burn-function) | [CEP-92](https://github.com/casper-network/ceps/blob/master/text/0092-cspr-burn.md) | +| [Native Events](#native-events) | [CEP-88](https://github.com/casper-network/ceps/blob/master/text/0088-contract-level-messages.md) | +| [FFI Enhancements](#ffi-enhancements) | | +| [New Transaction Model](#new-transaction-model) | | +| [Configurable Delegation Limits](#configurable-delegation-limits) | [CEP-90](https://github.com/casper-network/ceps/blob/master/text/0090-configurable-delegation-limits.md) | +| [Reserved Slots and Custom Fees](#reserved-slots-and-custom-fees) | | +| [Factory Contract Pattern](#factory-contract-pattern) | [CEP-86](https://github.com/casper-network/ceps/blob/master/text/0086-factory-pattern.md) | +| [Contract Access to Auction](#contract-access-to-auction) | | ### Zug Consensus Protocol Casper 2.0 introduces a new consensus model known as Zug ([Whitepaper](https://arxiv.org/abs/2205.06314)). The Highway protocol is effective and secure, but resource-heavy. Zug is simpler and leaner than the Highway protocol upon which Casper was originally conceived, and as such allows for improvements in network efficiency and cohesion. This in turn facilitates eventual extension of the validator list, and finer-grained control over block times. From eee350a7b2ddd1d924decc8d132ab5d006197b77 Mon Sep 17 00:00:00 2001 From: Michael Steuer Date: Mon, 28 Apr 2025 18:44:47 -0700 Subject: [PATCH 10/97] Updating Native Events top Contract Level Events --- condor/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/condor/index.md b/condor/index.md index 725c48525..b27eff1b0 100644 --- a/condor/index.md +++ b/condor/index.md @@ -28,7 +28,7 @@ Casper 2.0 represents a significant upgrade with a slew of new features as well | [Zug Consensus Protocol](#zug-consensus-protocol) | [Whitepaper](https://arxiv.org/abs/2205.06314) | | [Multi-VM Support](#multi-virtual-machine-architecture) | | | [CSPR Burning ](#cspr-burn-function) | [CEP-92](https://github.com/casper-network/ceps/blob/master/text/0092-cspr-burn.md) | -| [Native Events](#native-events) | [CEP-88](https://github.com/casper-network/ceps/blob/master/text/0088-contract-level-messages.md) | +| [Native Events](#contract-level-events) | [CEP-88](https://github.com/casper-network/ceps/blob/master/text/0088-contract-level-messages.md) | | [FFI Enhancements](#ffi-enhancements) | | | [New Transaction Model](#new-transaction-model) | | | [Configurable Delegation Limits](#configurable-delegation-limits) | [CEP-90](https://github.com/casper-network/ceps/blob/master/text/0090-configurable-delegation-limits.md) | @@ -55,7 +55,7 @@ In Casper 2.0, we are introducing a change to the execution engine which allows ### CSPR Burn function In Casper 2.0 users can burn CSPR token ([CEP-92](https://github.com/casper-network/ceps/blob/master/text/0092-cspr-burn.md). This function is exposed as a `burn` function in the mint contract. -### Native Events +### Contract Level Events In Casper 1.X, there was no native option for emitting contract-level events in the node software. The best option available to developers looking to use this kind of functionality was the [Casper Event Standard (CES)](https://github.com/make-software/casper-event-standard) created by MAKE and Odra. In Casper 2.0, We have provided host side support for the emission of events. Smart contract developers may still opt to use the CES standard, however, the native implementation is recommneded as the go-forward for the contract level events The CEP-88 refernce implementation provides the template for contract level events [CEP-88](https://github.com/casper-network/ceps/blob/master/text/0088-contract-level-messages.md). CEP-88 establishes a secure, one-way messaging channel between contracts and entities listening to a node's event stream. This standardized method of emitting contract-level events is built into the existing Casper Event Stream, requiring no additional features to Casper's SDKs. From 2e11201192518c29df8af84e633e669e5cf4bf1d Mon Sep 17 00:00:00 2001 From: Jiu-hong Date: Tue, 29 Apr 2025 10:52:33 +0800 Subject: [PATCH 11/97] change to the current 2.0.0 version --- condor/devnet-info.md | 4 +- condor/local-setup.md | 26 +- package-lock.json | 18093 ---------------------------------------- yarn.lock | 4119 +++++---- 4 files changed, 2029 insertions(+), 20213 deletions(-) delete mode 100644 package-lock.json diff --git a/condor/devnet-info.md b/condor/devnet-info.md index d5a6568b9..47431e245 100644 --- a/condor/devnet-info.md +++ b/condor/devnet-info.md @@ -45,8 +45,8 @@ Once your request has been processed, you will be notified and provided with a l **SDKs:** - JavaScript/TypeScript - - Github release : [casper-js-sdk-5.0.4](https://github.com/casper-ecosystem/casper-js-sdk/releases/tag/5.0.4) - - npm : [casper-js-sdk-5.0.4](https://www.npmjs.com/package/casper-js-sdk/v/5.0.4) + - Github release : [casper-js-sdk-5.0.5](https://github.com/casper-ecosystem/casper-js-sdk/releases/tag/5.0.5) + - npm : [casper-js-sdk-5.0.5](https://www.npmjs.com/package/casper-js-sdk/v/5.0.5) - .NET - Github release : [casper-net-sdk-v3.0.0](https://github.com/make-software/casper-net-sdk/releases/tag/v3.0.0) diff --git a/condor/local-setup.md b/condor/local-setup.md index 2b16f7936..5d0d99298 100644 --- a/condor/local-setup.md +++ b/condor/local-setup.md @@ -37,7 +37,7 @@ NCTL is your tool for managing the Casper network. We'll use a Dockerized versio ``` ... - RUN git clone -b dev https://github.com/casper-network/casper-node.git ~/casper-node + RUN git clone -b v2.0.0 https://github.com/casper-network/casper-node.git ~/casper-node ... ``` @@ -46,24 +46,26 @@ NCTL is your tool for managing the Casper network. We'll use a Dockerized versio ```bash git clone https://github.com/casper-network/casper-node.git cd casper-node - git checkout dev + git checkout v2.0.0 ``` Ensure you're in the `casper-nctl-docker` directory when running this command 4. **Build the Docker Image:** ```bash - docker build -f casper-nctl-condor.Dockerfile -t casper-nctl:dev . + docker build -f casper-nctl-condor.Dockerfile -t casper-nctl:v2.0.0 . ``` + Ensure you're in the `casper-nctl-docker` directory when running this command + This may take a while. 5. **Verify the Image:** ```bash docker image ls ``` - Look for the `casper-nctl:dev` image in the output + Look for the `casper-nctl:v2.0.0` image in the output ``` REPOSITORY TAG IMAGE ID CREATED SIZE - casper-nctl dev 0e3e3cd50a5a 11 hours ago 442MB + casper-nctl v2.0.0 decdc9495181 3 minutes ago 442MB ``` 6. **Start the NCTL Docker Container:** @@ -72,7 +74,7 @@ NCTL is your tool for managing the Casper network. We'll use a Dockerized versio Docker Compose brings up an additional NCTL Explorer container, while the manual command does not. * **Docker Compose (Recommended):** - If you're using the `docker-compose.yml` file, make sure that the `image` under the `casper-nctl` service points to the image you just built (`casper-nctl:dev`) from the previous step, like this: + If you're using the `docker-compose.yml` file, make sure that the `image` under the `casper-nctl` service points to the image you just built (`casper-nctl:v2.0.0`) from the previous step, like this: docker-compose.yml @@ -80,7 +82,7 @@ NCTL is your tool for managing the Casper network. We'll use a Dockerized versio ... services: casper-nctl: - image: casper-nctl:dev + image: casper-nctl:v2.0.0 container_name: casper-nctl ... ``` @@ -98,7 +100,7 @@ NCTL is your tool for managing the Casper network. We'll use a Dockerized versio Below is the command to start an NCTL container named `mynctl`. ```bash - docker run -d --name mynctl -p 11101:11101 casper-nctl:dev + docker run -d --name mynctl -p 11101:11101 casper-nctl:v2.0.0 ``` @@ -158,7 +160,7 @@ To interact with your local Casper 2.0 network, we'll use the Casper Client. You **Option 1: Using the Casper Client from the Docker Image** -* The `casper-nctl:dev` Docker image already includes the `casper-client`. +* The `casper-nctl:v2.0.0` Docker image already includes the `casper-client`. * You can skip the next two steps if you want to use the pre-installed client. **Option 2: Using Your Local Casper Client** @@ -171,7 +173,7 @@ To interact with your local Casper 2.0 network, we'll use the Casper Client. You 2. **Switch to the Casper 2.0-Compatible Branch (Optional):** ```bash - git checkout dev + git checkout v3.0.1 ``` 3. **Build casper-client:** @@ -280,12 +282,12 @@ To interact with your local Casper 2.0 network, we'll use the Casper Client. You ``` to: ```json - "branch": "dev" + "branch": "v1.0.4" ``` Make sure that `casper-node` and `casper-sidecar` are compatible. -3. Rebuild the NCTL image: `docker build -f casper-nctl-condor.Dockerfile -t casper-nctl:dev .` +3. Rebuild the NCTL image: `docker build -f casper-nctl-condor.Dockerfile -t casper-nctl:v2.0.0 .` ## Using the Casper Client diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index ae1cf9ced..000000000 --- a/package-lock.json +++ /dev/null @@ -1,18093 +0,0 @@ -{ - "name": "cspr-docs-redux", - "version": "2.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "cspr-docs-redux", - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "@actions/core": "^1.10.1", - "@docusaurus/core": "^3.6.0", - "@docusaurus/plugin-content-docs": "^3.7.0", - "@docusaurus/plugin-sitemap": "^3.6.0", - "@docusaurus/preset-classic": "^3.6.0", - "@mdx-js/react": "^3.0.0", - "ansi-styles": "^6.2.1", - "clsx": "^2.0.0", - "docusaurus-plugin-dotenv": "^1.0.1", - "dotenv": "^16.4.5", - "glob": "^11.0.0", - "prism-react-renderer": "^2.3.0", - "puppeteer": "^23.3.0", - "react": "^18.0.0", - "react-dom": "^18.0.0" - }, - "devDependencies": { - "@docusaurus/module-type-aliases": "^3.6.0", - "@docusaurus/types": "^3.6.0", - "gh-pages": "^6.1.1" - }, - "engines": { - "node": ">=23.0" - } - }, - "node_modules/@actions/core": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.11.1.tgz", - "integrity": "sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==", - "license": "MIT", - "dependencies": { - "@actions/exec": "^1.1.1", - "@actions/http-client": "^2.0.1" - } - }, - "node_modules/@actions/exec": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz", - "integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==", - "license": "MIT", - "dependencies": { - "@actions/io": "^1.0.1" - } - }, - "node_modules/@actions/http-client": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.3.tgz", - "integrity": "sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA==", - "license": "MIT", - "dependencies": { - "tunnel": "^0.0.6", - "undici": "^5.25.4" - } - }, - "node_modules/@actions/io": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.3.tgz", - "integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==", - "license": "MIT" - }, - "node_modules/@algolia/autocomplete-core": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.7.tgz", - "integrity": "sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==", - "license": "MIT", - "dependencies": { - "@algolia/autocomplete-plugin-algolia-insights": "1.17.7", - "@algolia/autocomplete-shared": "1.17.7" - } - }, - "node_modules/@algolia/autocomplete-plugin-algolia-insights": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.7.tgz", - "integrity": "sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==", - "license": "MIT", - "dependencies": { - "@algolia/autocomplete-shared": "1.17.7" - }, - "peerDependencies": { - "search-insights": ">= 1 < 3" - } - }, - "node_modules/@algolia/autocomplete-preset-algolia": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.7.tgz", - "integrity": "sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==", - "license": "MIT", - "dependencies": { - "@algolia/autocomplete-shared": "1.17.7" - }, - "peerDependencies": { - "@algolia/client-search": ">= 4.9.1 < 6", - "algoliasearch": ">= 4.9.1 < 6" - } - }, - "node_modules/@algolia/autocomplete-shared": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.7.tgz", - "integrity": "sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==", - "license": "MIT", - "peerDependencies": { - "@algolia/client-search": ">= 4.9.1 < 6", - "algoliasearch": ">= 4.9.1 < 6" - } - }, - "node_modules/@algolia/client-abtesting": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.19.0.tgz", - "integrity": "sha512-dMHwy2+nBL0SnIsC1iHvkBao64h4z+roGelOz11cxrDBrAdASxLxmfVMop8gmodQ2yZSacX0Rzevtxa+9SqxCw==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.19.0", - "@algolia/requester-browser-xhr": "5.19.0", - "@algolia/requester-fetch": "5.19.0", - "@algolia/requester-node-http": "5.19.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-analytics": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.19.0.tgz", - "integrity": "sha512-CDW4RwnCHzU10upPJqS6N6YwDpDHno7w6/qXT9KPbPbt8szIIzCHrva4O9KIfx1OhdsHzfGSI5hMAiOOYl4DEQ==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.19.0", - "@algolia/requester-browser-xhr": "5.19.0", - "@algolia/requester-fetch": "5.19.0", - "@algolia/requester-node-http": "5.19.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-common": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.19.0.tgz", - "integrity": "sha512-2ERRbICHXvtj5kfFpY5r8qu9pJII/NAHsdgUXnUitQFwPdPL7wXiupcvZJC7DSntOnE8AE0lM7oDsPhrJfj5nQ==", - "license": "MIT", - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-insights": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.19.0.tgz", - "integrity": "sha512-xPOiGjo6I9mfjdJO7Y+p035aWePcbsItizIp+qVyfkfZiGgD+TbNxM12g7QhFAHIkx/mlYaocxPY/TmwPzTe+A==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.19.0", - "@algolia/requester-browser-xhr": "5.19.0", - "@algolia/requester-fetch": "5.19.0", - "@algolia/requester-node-http": "5.19.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-personalization": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.19.0.tgz", - "integrity": "sha512-B9eoce/fk8NLboGje+pMr72pw+PV7c5Z01On477heTZ7jkxoZ4X92dobeGuEQop61cJ93Gaevd1of4mBr4hu2A==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.19.0", - "@algolia/requester-browser-xhr": "5.19.0", - "@algolia/requester-fetch": "5.19.0", - "@algolia/requester-node-http": "5.19.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-query-suggestions": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.19.0.tgz", - "integrity": "sha512-6fcP8d4S8XRDtVogrDvmSM6g5g6DndLc0pEm1GCKe9/ZkAzCmM3ZmW1wFYYPxdjMeifWy1vVEDMJK7sbE4W7MA==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.19.0", - "@algolia/requester-browser-xhr": "5.19.0", - "@algolia/requester-fetch": "5.19.0", - "@algolia/requester-node-http": "5.19.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/client-search": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.19.0.tgz", - "integrity": "sha512-Ctg3xXD/1VtcwmkulR5+cKGOMj4r0wC49Y/KZdGQcqpydKn+e86F6l3tb3utLJQVq4lpEJud6kdRykFgcNsp8Q==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.19.0", - "@algolia/requester-browser-xhr": "5.19.0", - "@algolia/requester-fetch": "5.19.0", - "@algolia/requester-node-http": "5.19.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/events": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz", - "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==", - "license": "MIT" - }, - "node_modules/@algolia/ingestion": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.19.0.tgz", - "integrity": "sha512-LO7w1MDV+ZLESwfPmXkp+KLeYeFrYEgtbCZG6buWjddhYraPQ9MuQWLhLLiaMlKxZ/sZvFTcZYuyI6Jx4WBhcg==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.19.0", - "@algolia/requester-browser-xhr": "5.19.0", - "@algolia/requester-fetch": "5.19.0", - "@algolia/requester-node-http": "5.19.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/monitoring": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.19.0.tgz", - "integrity": "sha512-Mg4uoS0aIKeTpu6iv6O0Hj81s8UHagi5TLm9k2mLIib4vmMtX7WgIAHAcFIaqIZp5D6s5EVy1BaDOoZ7buuJHA==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.19.0", - "@algolia/requester-browser-xhr": "5.19.0", - "@algolia/requester-fetch": "5.19.0", - "@algolia/requester-node-http": "5.19.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/recommend": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.19.0.tgz", - "integrity": "sha512-PbgrMTbUPlmwfJsxjFhal4XqZO2kpBNRjemLVTkUiti4w/+kzcYO4Hg5zaBgVqPwvFDNQ8JS4SS3TBBem88u+g==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.19.0", - "@algolia/requester-browser-xhr": "5.19.0", - "@algolia/requester-fetch": "5.19.0", - "@algolia/requester-node-http": "5.19.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/requester-browser-xhr": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.19.0.tgz", - "integrity": "sha512-GfnhnQBT23mW/VMNs7m1qyEyZzhZz093aY2x8p0era96MMyNv8+FxGek5pjVX0b57tmSCZPf4EqNCpkGcGsmbw==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.19.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/requester-fetch": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.19.0.tgz", - "integrity": "sha512-oyTt8ZJ4T4fYvW5avAnuEc6Laedcme9fAFryMD9ndUTIUe/P0kn3BuGcCLFjN3FDmdrETHSFkgPPf1hGy3sLCw==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.19.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@algolia/requester-node-http": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.19.0.tgz", - "integrity": "sha512-p6t8ue0XZNjcRiqNkb5QAM0qQRAKsCiebZ6n9JjWA+p8fWf8BvnhO55y2fO28g3GW0Imj7PrAuyBuxq8aDVQwQ==", - "license": "MIT", - "dependencies": { - "@algolia/client-common": "5.19.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz", - "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", - "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.0", - "@babel/generator": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.0", - "@babel/parser": "^7.26.0", - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.26.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz", - "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.26.5", - "@babel/types": "^7.26.5", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", - "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.26.5", - "@babel/helper-validator-option": "^7.25.9", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", - "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/traverse": "^7.25.9", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz", - "integrity": "sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "regexpu-core": "^6.2.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", - "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", - "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", - "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", - "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", - "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-wrap-function": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", - "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", - "license": "MIT", - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/traverse": "^7.26.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", - "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", - "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", - "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz", - "integrity": "sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.26.5" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", - "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", - "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", - "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", - "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", - "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", - "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", - "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", - "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", - "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", - "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-remap-async-to-generator": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", - "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-remap-async-to-generator": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz", - "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", - "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", - "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", - "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", - "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/traverse": "^7.25.9", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", - "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/template": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", - "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", - "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", - "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", - "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz", - "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", - "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", - "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", - "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", - "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", - "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", - "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", - "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", - "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", - "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", - "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", - "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", - "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.26.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz", - "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", - "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", - "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", - "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", - "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", - "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", - "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", - "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", - "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.9.tgz", - "integrity": "sha512-Ncw2JFsJVuvfRsa2lSHiC55kETQVLSnsYGQ1JDDwkUeWGTL/8Tom8aLTnlqgoeuopWrbbGndrc9AlLYrIosrow==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", - "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", - "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", - "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", - "license": "MIT", - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", - "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", - "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regexp-modifiers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", - "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", - "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz", - "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", - "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", - "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", - "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", - "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", - "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.5.tgz", - "integrity": "sha512-GJhPO0y8SD5EYVCy2Zr+9dSZcEgaSmq5BLR0Oc25TOEhC+ba49vUAGZFjy8v79z9E1mdldq4x9d1xgh4L1d5dQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.26.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-syntax-typescript": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", - "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", - "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", - "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", - "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", - "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.26.0", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-import-assertions": "^7.26.0", - "@babel/plugin-syntax-import-attributes": "^7.26.0", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.25.9", - "@babel/plugin-transform-async-generator-functions": "^7.25.9", - "@babel/plugin-transform-async-to-generator": "^7.25.9", - "@babel/plugin-transform-block-scoped-functions": "^7.25.9", - "@babel/plugin-transform-block-scoping": "^7.25.9", - "@babel/plugin-transform-class-properties": "^7.25.9", - "@babel/plugin-transform-class-static-block": "^7.26.0", - "@babel/plugin-transform-classes": "^7.25.9", - "@babel/plugin-transform-computed-properties": "^7.25.9", - "@babel/plugin-transform-destructuring": "^7.25.9", - "@babel/plugin-transform-dotall-regex": "^7.25.9", - "@babel/plugin-transform-duplicate-keys": "^7.25.9", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", - "@babel/plugin-transform-dynamic-import": "^7.25.9", - "@babel/plugin-transform-exponentiation-operator": "^7.25.9", - "@babel/plugin-transform-export-namespace-from": "^7.25.9", - "@babel/plugin-transform-for-of": "^7.25.9", - "@babel/plugin-transform-function-name": "^7.25.9", - "@babel/plugin-transform-json-strings": "^7.25.9", - "@babel/plugin-transform-literals": "^7.25.9", - "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", - "@babel/plugin-transform-member-expression-literals": "^7.25.9", - "@babel/plugin-transform-modules-amd": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.25.9", - "@babel/plugin-transform-modules-systemjs": "^7.25.9", - "@babel/plugin-transform-modules-umd": "^7.25.9", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", - "@babel/plugin-transform-new-target": "^7.25.9", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", - "@babel/plugin-transform-numeric-separator": "^7.25.9", - "@babel/plugin-transform-object-rest-spread": "^7.25.9", - "@babel/plugin-transform-object-super": "^7.25.9", - "@babel/plugin-transform-optional-catch-binding": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9", - "@babel/plugin-transform-private-methods": "^7.25.9", - "@babel/plugin-transform-private-property-in-object": "^7.25.9", - "@babel/plugin-transform-property-literals": "^7.25.9", - "@babel/plugin-transform-regenerator": "^7.25.9", - "@babel/plugin-transform-regexp-modifiers": "^7.26.0", - "@babel/plugin-transform-reserved-words": "^7.25.9", - "@babel/plugin-transform-shorthand-properties": "^7.25.9", - "@babel/plugin-transform-spread": "^7.25.9", - "@babel/plugin-transform-sticky-regex": "^7.25.9", - "@babel/plugin-transform-template-literals": "^7.25.9", - "@babel/plugin-transform-typeof-symbol": "^7.25.9", - "@babel/plugin-transform-unicode-escapes": "^7.25.9", - "@babel/plugin-transform-unicode-property-regex": "^7.25.9", - "@babel/plugin-transform-unicode-regex": "^7.25.9", - "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.6", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.38.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.26.3.tgz", - "integrity": "sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-transform-react-display-name": "^7.25.9", - "@babel/plugin-transform-react-jsx": "^7.25.9", - "@babel/plugin-transform-react-jsx-development": "^7.25.9", - "@babel/plugin-transform-react-pure-annotations": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", - "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.25.9", - "@babel/plugin-transform-typescript": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", - "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.26.0.tgz", - "integrity": "sha512-YXHu5lN8kJCb1LOb9PgV6pvak43X2h4HvRApcN5SdWeaItQOzfn1hgP6jasD6KWQyJDBxrVmA9o9OivlnNJK/w==", - "license": "MIT", - "dependencies": { - "core-js-pure": "^3.30.2", - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", - "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/parser": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.5.tgz", - "integrity": "sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.5", - "@babel/parser": "^7.26.5", - "@babel/template": "^7.25.9", - "@babel/types": "^7.26.5", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz", - "integrity": "sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==", - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/@csstools/cascade-layer-name-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.4.tgz", - "integrity": "sha512-7DFHlPuIxviKYZrOiwVU/PiHLm3lLUR23OMuEEtfEOQTOp9hzQ2JjdY6X5H18RVuUPJqSCI+qNnD5iOLMVE0bA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - } - }, - "node_modules/@csstools/color-helpers": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.1.tgz", - "integrity": "sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - } - }, - "node_modules/@csstools/css-calc": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.1.tgz", - "integrity": "sha512-rL7kaUnTkL9K+Cvo2pnCieqNpTKgQzy5f+N+5Iuko9HAoasP+xgprVh7KN/MaJVvVL1l0EzQq2MoqBHKSrDrag==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - } - }, - "node_modules/@csstools/css-color-parser": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.7.tgz", - "integrity": "sha512-nkMp2mTICw32uE5NN+EsJ4f5N+IGFeCFu4bGpiKgb2Pq/7J/MpyLBeQ5ry4KKtRFZaYs6sTmcMYrSRIyj5DFKA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/color-helpers": "^5.0.1", - "@csstools/css-calc": "^2.1.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - } - }, - "node_modules/@csstools/css-parser-algorithms": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz", - "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-tokenizer": "^3.0.3" - } - }, - "node_modules/@csstools/css-tokenizer": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz", - "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@csstools/media-query-list-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz", - "integrity": "sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - } - }, - "node_modules/@csstools/postcss-cascade-layers": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.1.tgz", - "integrity": "sha512-XOfhI7GShVcKiKwmPAnWSqd2tBR0uxt+runAxttbSp/LY2U16yAVPmAf7e9q4JJ0d+xMNmpwNDLBXnmRCl3HMQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/selector-specificity": "^5.0.0", - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-color-function": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.7.tgz", - "integrity": "sha512-aDHYmhNIHR6iLw4ElWhf+tRqqaXwKnMl0YsQ/X105Zc4dQwe6yJpMrTN6BwOoESrkDjOYMOfORviSSLeDTJkdQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.7", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-color-mix-function": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.7.tgz", - "integrity": "sha512-e68Nev4CxZYCLcrfWhHH4u/N1YocOfTmw67/kVX5Rb7rnguqqLyxPjhHWjSBX8o4bmyuukmNf3wrUSU3//kT7g==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.7", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-content-alt-text": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.4.tgz", - "integrity": "sha512-YItlZUOuZJCBlRaCf8Aucc1lgN41qYGALMly0qQllrxYJhiyzlI6RxOTMUvtWk+KhS8GphMDsDhKQ7KTPfEMSw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-exponential-functions": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.6.tgz", - "integrity": "sha512-IgJA5DQsQLu/upA3HcdvC6xEMR051ufebBTIXZ5E9/9iiaA7juXWz1ceYj814lnDYP/7eWjZnw0grRJlX4eI6g==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-calc": "^2.1.1", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-font-format-keywords": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-4.0.0.tgz", - "integrity": "sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-gamut-mapping": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.7.tgz", - "integrity": "sha512-gzFEZPoOkY0HqGdyeBXR3JP218Owr683u7KOZazTK7tQZBE8s2yhg06W1tshOqk7R7SWvw9gkw2TQogKpIW8Xw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.7", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-gradients-interpolation-method": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.7.tgz", - "integrity": "sha512-WgEyBeg6glUeTdS2XT7qeTFBthTJuXlS9GFro/DVomj7W7WMTamAwpoP4oQCq/0Ki2gvfRYFi/uZtmRE14/DFA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.7", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-hwb-function": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.7.tgz", - "integrity": "sha512-LKYqjO+wGwDCfNIEllessCBWfR4MS/sS1WXO+j00KKyOjm7jDW2L6jzUmqASEiv/kkJO39GcoIOvTTfB3yeBUA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.7", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-ic-unit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.0.tgz", - "integrity": "sha512-9QT5TDGgx7wD3EEMN3BSUG6ckb6Eh5gSPT5kZoVtUuAonfPmLDJyPhqR4ntPpMYhUKAMVKAg3I/AgzqHMSeLhA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-initial": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-initial/-/postcss-initial-2.0.0.tgz", - "integrity": "sha512-dv2lNUKR+JV+OOhZm9paWzYBXOCi+rJPqJ2cJuhh9xd8USVrd0cBEPczla81HNOyThMQWeCcdln3gZkQV2kYxA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-is-pseudo-class": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.1.tgz", - "integrity": "sha512-JLp3POui4S1auhDR0n8wHd/zTOWmMsmK3nQd3hhL6FhWPaox5W7j1se6zXOG/aP07wV2ww0lxbKYGwbBszOtfQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/selector-specificity": "^5.0.0", - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-light-dark-function": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.7.tgz", - "integrity": "sha512-ZZ0rwlanYKOHekyIPaU+sVm3BEHCe+Ha0/px+bmHe62n0Uc1lL34vbwrLYn6ote8PHlsqzKeTQdIejQCJ05tfw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-logical-float-and-clear": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-float-and-clear/-/postcss-logical-float-and-clear-3.0.0.tgz", - "integrity": "sha512-SEmaHMszwakI2rqKRJgE+8rpotFfne1ZS6bZqBoQIicFyV+xT1UF42eORPxJkVJVrH9C0ctUgwMSn3BLOIZldQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-logical-overflow": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overflow/-/postcss-logical-overflow-2.0.0.tgz", - "integrity": "sha512-spzR1MInxPuXKEX2csMamshR4LRaSZ3UXVaRGjeQxl70ySxOhMpP2252RAFsg8QyyBXBzuVOOdx1+bVO5bPIzA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-logical-overscroll-behavior": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overscroll-behavior/-/postcss-logical-overscroll-behavior-2.0.0.tgz", - "integrity": "sha512-e/webMjoGOSYfqLunyzByZj5KKe5oyVg/YSbie99VEaSDE2kimFm0q1f6t/6Jo+VVCQ/jbe2Xy+uX+C4xzWs4w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-logical-resize": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-resize/-/postcss-logical-resize-3.0.0.tgz", - "integrity": "sha512-DFbHQOFW/+I+MY4Ycd/QN6Dg4Hcbb50elIJCfnwkRTCX05G11SwViI5BbBlg9iHRl4ytB7pmY5ieAFk3ws7yyg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-logical-viewport-units": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.3.tgz", - "integrity": "sha512-OC1IlG/yoGJdi0Y+7duz/kU/beCwO+Gua01sD6GtOtLi7ByQUpcIqs7UE/xuRPay4cHgOMatWdnDdsIDjnWpPw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-media-minmax": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.6.tgz", - "integrity": "sha512-J1+4Fr2W3pLZsfxkFazK+9kr96LhEYqoeBszLmFjb6AjYs+g9oDAw3J5oQignLKk3rC9XHW+ebPTZ9FaW5u5pg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/css-calc": "^2.1.1", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/media-query-list-parser": "^4.0.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.4.tgz", - "integrity": "sha512-AnGjVslHMm5xw9keusQYvjVWvuS7KWK+OJagaG0+m9QnIjZsrysD2kJP/tr/UJIyYtMCtu8OkUd+Rajb4DqtIQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/media-query-list-parser": "^4.0.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-nested-calc": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-4.0.0.tgz", - "integrity": "sha512-jMYDdqrQQxE7k9+KjstC3NbsmC063n1FTPLCgCRS2/qHUbHM0mNy9pIn4QIiQGs9I/Bg98vMqw7mJXBxa0N88A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-normalize-display-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz", - "integrity": "sha512-HlEoG0IDRoHXzXnkV4in47dzsxdsjdz6+j7MLjaACABX2NfvjFS6XVAnpaDyGesz9gK2SC7MbNwdCHusObKJ9Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-oklab-function": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.7.tgz", - "integrity": "sha512-I6WFQIbEKG2IO3vhaMGZDkucbCaUSXMxvHNzDdnfsTCF5tc0UlV3Oe2AhamatQoKFjBi75dSEMrgWq3+RegsOQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.7", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.0.0.tgz", - "integrity": "sha512-XQPtROaQjomnvLUSy/bALTR5VCtTVUFwYs1SblvYgLSeTo2a/bMNwUwo2piXw5rTv/FEYiy5yPSXBqg9OKUx7Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-random-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-1.0.2.tgz", - "integrity": "sha512-vBCT6JvgdEkvRc91NFoNrLjgGtkLWt47GKT6E2UDn3nd8ZkMBiziQ1Md1OiKoSsgzxsSnGKG3RVdhlbdZEkHjA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-calc": "^2.1.1", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-relative-color-syntax": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.7.tgz", - "integrity": "sha512-apbT31vsJVd18MabfPOnE977xgct5B1I+Jpf+Munw3n6kKb1MMuUmGGH+PT9Hm/fFs6fe61Q/EWnkrb4bNoNQw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.7", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-scope-pseudo-class": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-4.0.1.tgz", - "integrity": "sha512-IMi9FwtH6LMNuLea1bjVMQAsUhFxJnyLSgOp/cpv5hrzWmrUYU5fm0EguNDIIOHUqzXode8F/1qkC/tEo/qN8Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-sign-functions": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.1.tgz", - "integrity": "sha512-MslYkZCeMQDxetNkfmmQYgKCy4c+w9pPDfgOBCJOo/RI1RveEUdZQYtOfrC6cIZB7sD7/PHr2VGOcMXlZawrnA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-calc": "^2.1.1", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-stepped-value-functions": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.6.tgz", - "integrity": "sha512-/dwlO9w8vfKgiADxpxUbZOWlL5zKoRIsCymYoh1IPuBsXODKanKnfuZRr32DEqT0//3Av1VjfNZU9yhxtEfIeA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-calc": "^2.1.1", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-text-decoration-shorthand": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.1.tgz", - "integrity": "sha512-xPZIikbx6jyzWvhms27uugIc0I4ykH4keRvoa3rxX5K7lEhkbd54rjj/dv60qOCTisoS+3bmwJTeyV1VNBrXaw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/color-helpers": "^5.0.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-trigonometric-functions": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.6.tgz", - "integrity": "sha512-c4Y1D2Why/PeccaSouXnTt6WcNHJkoJRidV2VW9s5gJ97cNxnLgQ4Qj8qOqkIR9VmTQKJyNcbF4hy79ZQnWD7A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-calc": "^2.1.1", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-unset-value": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-4.0.0.tgz", - "integrity": "sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/selector-resolve-nested": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.0.0.tgz", - "integrity": "sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss-selector-parser": "^7.0.0" - } - }, - "node_modules/@csstools/selector-specificity": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", - "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss-selector-parser": "^7.0.0" - } - }, - "node_modules/@csstools/utilities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@csstools/utilities/-/utilities-2.0.0.tgz", - "integrity": "sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@docsearch/css": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.8.2.tgz", - "integrity": "sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ==", - "license": "MIT" - }, - "node_modules/@docsearch/react": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.8.2.tgz", - "integrity": "sha512-xCRrJQlTt8N9GU0DG4ptwHRkfnSnD/YpdeaXe02iKfqs97TkZJv60yE+1eq/tjPcVnTW8dP5qLP7itifFVV5eg==", - "license": "MIT", - "dependencies": { - "@algolia/autocomplete-core": "1.17.7", - "@algolia/autocomplete-preset-algolia": "1.17.7", - "@docsearch/css": "3.8.2", - "algoliasearch": "^5.14.2" - }, - "peerDependencies": { - "@types/react": ">= 16.8.0 < 19.0.0", - "react": ">= 16.8.0 < 19.0.0", - "react-dom": ">= 16.8.0 < 19.0.0", - "search-insights": ">= 1 < 3" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "search-insights": { - "optional": true - } - } - }, - "node_modules/@docusaurus/babel": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.7.0.tgz", - "integrity": "sha512-0H5uoJLm14S/oKV3Keihxvh8RV+vrid+6Gv+2qhuzbqHanawga8tYnsdpjEyt36ucJjqlby2/Md2ObWjA02UXQ==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.25.9", - "@babel/preset-env": "^7.25.9", - "@babel/preset-react": "^7.25.9", - "@babel/preset-typescript": "^7.25.9", - "@babel/runtime": "^7.25.9", - "@babel/runtime-corejs3": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@docusaurus/logger": "3.7.0", - "@docusaurus/utils": "3.7.0", - "babel-plugin-dynamic-import-node": "^2.3.3", - "fs-extra": "^11.1.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/bundler": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.7.0.tgz", - "integrity": "sha512-CUUT9VlSGukrCU5ctZucykvgCISivct+cby28wJwCC/fkQFgAHRp/GKv2tx38ZmXb7nacrKzFTcp++f9txUYGg==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.25.9", - "@docusaurus/babel": "3.7.0", - "@docusaurus/cssnano-preset": "3.7.0", - "@docusaurus/logger": "3.7.0", - "@docusaurus/types": "3.7.0", - "@docusaurus/utils": "3.7.0", - "babel-loader": "^9.2.1", - "clean-css": "^5.3.2", - "copy-webpack-plugin": "^11.0.0", - "css-loader": "^6.8.1", - "css-minimizer-webpack-plugin": "^5.0.1", - "cssnano": "^6.1.2", - "file-loader": "^6.2.0", - "html-minifier-terser": "^7.2.0", - "mini-css-extract-plugin": "^2.9.1", - "null-loader": "^4.0.1", - "postcss": "^8.4.26", - "postcss-loader": "^7.3.3", - "postcss-preset-env": "^10.1.0", - "react-dev-utils": "^12.0.1", - "terser-webpack-plugin": "^5.3.9", - "tslib": "^2.6.0", - "url-loader": "^4.1.1", - "webpack": "^5.95.0", - "webpackbar": "^6.0.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/faster": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/faster": { - "optional": true - } - } - }, - "node_modules/@docusaurus/bundler/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "license": "MIT", - "engines": { - "node": ">=14" - } - }, - "node_modules/@docusaurus/bundler/node_modules/html-minifier-terser": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", - "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", - "license": "MIT", - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "~5.3.2", - "commander": "^10.0.0", - "entities": "^4.4.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.15.1" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": "^14.13.1 || >=16.0.0" - } - }, - "node_modules/@docusaurus/core": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.7.0.tgz", - "integrity": "sha512-b0fUmaL+JbzDIQaamzpAFpTviiaU4cX3Qz8cuo14+HGBCwa0evEK0UYCBFY3n4cLzL8Op1BueeroUD2LYAIHbQ==", - "license": "MIT", - "dependencies": { - "@docusaurus/babel": "3.7.0", - "@docusaurus/bundler": "3.7.0", - "@docusaurus/logger": "3.7.0", - "@docusaurus/mdx-loader": "3.7.0", - "@docusaurus/utils": "3.7.0", - "@docusaurus/utils-common": "3.7.0", - "@docusaurus/utils-validation": "3.7.0", - "boxen": "^6.2.1", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "cli-table3": "^0.6.3", - "combine-promises": "^1.1.0", - "commander": "^5.1.0", - "core-js": "^3.31.1", - "del": "^6.1.1", - "detect-port": "^1.5.1", - "escape-html": "^1.0.3", - "eta": "^2.2.0", - "eval": "^0.1.8", - "fs-extra": "^11.1.1", - "html-tags": "^3.3.1", - "html-webpack-plugin": "^5.6.0", - "leven": "^3.1.0", - "lodash": "^4.17.21", - "p-map": "^4.0.0", - "prompts": "^2.4.2", - "react-dev-utils": "^12.0.1", - "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", - "react-loadable": "npm:@docusaurus/react-loadable@6.0.0", - "react-loadable-ssr-addon-v5-slorber": "^1.0.1", - "react-router": "^5.3.4", - "react-router-config": "^5.1.1", - "react-router-dom": "^5.3.4", - "semver": "^7.5.4", - "serve-handler": "^6.1.6", - "shelljs": "^0.8.5", - "tslib": "^2.6.0", - "update-notifier": "^6.0.2", - "webpack": "^5.95.0", - "webpack-bundle-analyzer": "^4.10.2", - "webpack-dev-server": "^4.15.2", - "webpack-merge": "^6.0.1" - }, - "bin": { - "docusaurus": "bin/docusaurus.mjs" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@mdx-js/react": "^3.0.0", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/core/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@docusaurus/core/node_modules/webpack-merge": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", - "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", - "license": "MIT", - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.1" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@docusaurus/cssnano-preset": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.7.0.tgz", - "integrity": "sha512-X9GYgruZBSOozg4w4dzv9uOz8oK/EpPVQXkp0MM6Tsgp/nRIU9hJzJ0Pxg1aRa3xCeEQTOimZHcocQFlLwYajQ==", - "license": "MIT", - "dependencies": { - "cssnano-preset-advanced": "^6.1.2", - "postcss": "^8.4.38", - "postcss-sort-media-queries": "^5.2.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/logger": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.7.0.tgz", - "integrity": "sha512-z7g62X7bYxCYmeNNuO9jmzxLQG95q9QxINCwpboVcNff3SJiHJbGrarxxOVMVmAh1MsrSfxWkVGv4P41ktnFsA==", - "license": "MIT", - "dependencies": { - "chalk": "^4.1.2", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/mdx-loader": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.7.0.tgz", - "integrity": "sha512-OFBG6oMjZzc78/U3WNPSHs2W9ZJ723ewAcvVJaqS0VgyeUfmzUV8f1sv+iUHA0DtwiR5T5FjOxj6nzEE8LY6VA==", - "license": "MIT", - "dependencies": { - "@docusaurus/logger": "3.7.0", - "@docusaurus/utils": "3.7.0", - "@docusaurus/utils-validation": "3.7.0", - "@mdx-js/mdx": "^3.0.0", - "@slorber/remark-comment": "^1.0.0", - "escape-html": "^1.0.3", - "estree-util-value-to-estree": "^3.0.1", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "image-size": "^1.0.2", - "mdast-util-mdx": "^3.0.0", - "mdast-util-to-string": "^4.0.0", - "rehype-raw": "^7.0.0", - "remark-directive": "^3.0.0", - "remark-emoji": "^4.0.0", - "remark-frontmatter": "^5.0.0", - "remark-gfm": "^4.0.0", - "stringify-object": "^3.3.0", - "tslib": "^2.6.0", - "unified": "^11.0.3", - "unist-util-visit": "^5.0.0", - "url-loader": "^4.1.1", - "vfile": "^6.0.1", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/module-type-aliases": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.7.0.tgz", - "integrity": "sha512-g7WdPqDNaqA60CmBrr0cORTrsOit77hbsTj7xE2l71YhBn79sxdm7WMK7wfhcaafkbpIh7jv5ef5TOpf1Xv9Lg==", - "license": "MIT", - "dependencies": { - "@docusaurus/types": "3.7.0", - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router-config": "*", - "@types/react-router-dom": "*", - "react-helmet-async": "npm:@slorber/react-helmet-async@*", - "react-loadable": "npm:@docusaurus/react-loadable@6.0.0" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/@docusaurus/plugin-content-blog": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.7.0.tgz", - "integrity": "sha512-EFLgEz6tGHYWdPU0rK8tSscZwx+AsyuBW/r+tNig2kbccHYGUJmZtYN38GjAa3Fda4NU+6wqUO5kTXQSRBQD3g==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.7.0", - "@docusaurus/logger": "3.7.0", - "@docusaurus/mdx-loader": "3.7.0", - "@docusaurus/theme-common": "3.7.0", - "@docusaurus/types": "3.7.0", - "@docusaurus/utils": "3.7.0", - "@docusaurus/utils-common": "3.7.0", - "@docusaurus/utils-validation": "3.7.0", - "cheerio": "1.0.0-rc.12", - "feed": "^4.2.2", - "fs-extra": "^11.1.1", - "lodash": "^4.17.21", - "reading-time": "^1.5.0", - "srcset": "^4.0.0", - "tslib": "^2.6.0", - "unist-util-visit": "^5.0.0", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/plugin-content-docs": "*", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/plugin-content-docs": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.7.0.tgz", - "integrity": "sha512-GXg5V7kC9FZE4FkUZA8oo/NrlRb06UwuICzI6tcbzj0+TVgjq/mpUXXzSgKzMS82YByi4dY2Q808njcBCyy6tQ==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.7.0", - "@docusaurus/logger": "3.7.0", - "@docusaurus/mdx-loader": "3.7.0", - "@docusaurus/module-type-aliases": "3.7.0", - "@docusaurus/theme-common": "3.7.0", - "@docusaurus/types": "3.7.0", - "@docusaurus/utils": "3.7.0", - "@docusaurus/utils-common": "3.7.0", - "@docusaurus/utils-validation": "3.7.0", - "@types/react-router-config": "^5.0.7", - "combine-promises": "^1.1.0", - "fs-extra": "^11.1.1", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "tslib": "^2.6.0", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/plugin-content-pages": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.7.0.tgz", - "integrity": "sha512-YJSU3tjIJf032/Aeao8SZjFOrXJbz/FACMveSMjLyMH4itQyZ2XgUIzt4y+1ISvvk5zrW4DABVT2awTCqBkx0Q==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.7.0", - "@docusaurus/mdx-loader": "3.7.0", - "@docusaurus/types": "3.7.0", - "@docusaurus/utils": "3.7.0", - "@docusaurus/utils-validation": "3.7.0", - "fs-extra": "^11.1.1", - "tslib": "^2.6.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/plugin-debug": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.7.0.tgz", - "integrity": "sha512-Qgg+IjG/z4svtbCNyTocjIwvNTNEwgRjSXXSJkKVG0oWoH0eX/HAPiu+TS1HBwRPQV+tTYPWLrUypYFepfujZA==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.7.0", - "@docusaurus/types": "3.7.0", - "@docusaurus/utils": "3.7.0", - "fs-extra": "^11.1.1", - "react-json-view-lite": "^1.2.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-analytics": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.7.0.tgz", - "integrity": "sha512-otIqiRV/jka6Snjf+AqB360XCeSv7lQC+DKYW+EUZf6XbuE8utz5PeUQ8VuOcD8Bk5zvT1MC4JKcd5zPfDuMWA==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.7.0", - "@docusaurus/types": "3.7.0", - "@docusaurus/utils-validation": "3.7.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-gtag": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.7.0.tgz", - "integrity": "sha512-M3vrMct1tY65ModbyeDaMoA+fNJTSPe5qmchhAbtqhDD/iALri0g9LrEpIOwNaoLmm6lO88sfBUADQrSRSGSWA==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.7.0", - "@docusaurus/types": "3.7.0", - "@docusaurus/utils-validation": "3.7.0", - "@types/gtag.js": "^0.0.12", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-tag-manager": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.7.0.tgz", - "integrity": "sha512-X8U78nb8eiMiPNg3jb9zDIVuuo/rE1LjGDGu+5m5CX4UBZzjMy+klOY2fNya6x8ACyE/L3K2erO1ErheP55W/w==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.7.0", - "@docusaurus/types": "3.7.0", - "@docusaurus/utils-validation": "3.7.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/plugin-sitemap": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.7.0.tgz", - "integrity": "sha512-bTRT9YLZ/8I/wYWKMQke18+PF9MV8Qub34Sku6aw/vlZ/U+kuEuRpQ8bTcNOjaTSfYsWkK4tTwDMHK2p5S86cA==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.7.0", - "@docusaurus/logger": "3.7.0", - "@docusaurus/types": "3.7.0", - "@docusaurus/utils": "3.7.0", - "@docusaurus/utils-common": "3.7.0", - "@docusaurus/utils-validation": "3.7.0", - "fs-extra": "^11.1.1", - "sitemap": "^7.1.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/plugin-svgr": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-svgr/-/plugin-svgr-3.7.0.tgz", - "integrity": "sha512-HByXIZTbc4GV5VAUkZ2DXtXv1Qdlnpk3IpuImwSnEzCDBkUMYcec5282hPjn6skZqB25M1TYCmWS91UbhBGxQg==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.7.0", - "@docusaurus/types": "3.7.0", - "@docusaurus/utils": "3.7.0", - "@docusaurus/utils-validation": "3.7.0", - "@svgr/core": "8.1.0", - "@svgr/webpack": "^8.1.0", - "tslib": "^2.6.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/preset-classic": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.7.0.tgz", - "integrity": "sha512-nPHj8AxDLAaQXs+O6+BwILFuhiWbjfQWrdw2tifOClQoNfuXDjfjogee6zfx6NGHWqshR23LrcN115DmkHC91Q==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.7.0", - "@docusaurus/plugin-content-blog": "3.7.0", - "@docusaurus/plugin-content-docs": "3.7.0", - "@docusaurus/plugin-content-pages": "3.7.0", - "@docusaurus/plugin-debug": "3.7.0", - "@docusaurus/plugin-google-analytics": "3.7.0", - "@docusaurus/plugin-google-gtag": "3.7.0", - "@docusaurus/plugin-google-tag-manager": "3.7.0", - "@docusaurus/plugin-sitemap": "3.7.0", - "@docusaurus/plugin-svgr": "3.7.0", - "@docusaurus/theme-classic": "3.7.0", - "@docusaurus/theme-common": "3.7.0", - "@docusaurus/theme-search-algolia": "3.7.0", - "@docusaurus/types": "3.7.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/theme-classic": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.7.0.tgz", - "integrity": "sha512-MnLxG39WcvLCl4eUzHr0gNcpHQfWoGqzADCly54aqCofQX6UozOS9Th4RK3ARbM9m7zIRv3qbhggI53dQtx/hQ==", - "license": "MIT", - "dependencies": { - "@docusaurus/core": "3.7.0", - "@docusaurus/logger": "3.7.0", - "@docusaurus/mdx-loader": "3.7.0", - "@docusaurus/module-type-aliases": "3.7.0", - "@docusaurus/plugin-content-blog": "3.7.0", - "@docusaurus/plugin-content-docs": "3.7.0", - "@docusaurus/plugin-content-pages": "3.7.0", - "@docusaurus/theme-common": "3.7.0", - "@docusaurus/theme-translations": "3.7.0", - "@docusaurus/types": "3.7.0", - "@docusaurus/utils": "3.7.0", - "@docusaurus/utils-common": "3.7.0", - "@docusaurus/utils-validation": "3.7.0", - "@mdx-js/react": "^3.0.0", - "clsx": "^2.0.0", - "copy-text-to-clipboard": "^3.2.0", - "infima": "0.2.0-alpha.45", - "lodash": "^4.17.21", - "nprogress": "^0.2.0", - "postcss": "^8.4.26", - "prism-react-renderer": "^2.3.0", - "prismjs": "^1.29.0", - "react-router-dom": "^5.3.4", - "rtlcss": "^4.1.0", - "tslib": "^2.6.0", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/theme-common": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.7.0.tgz", - "integrity": "sha512-8eJ5X0y+gWDsURZnBfH0WabdNm8XMCXHv8ENy/3Z/oQKwaB/EHt5lP9VsTDTf36lKEp0V6DjzjFyFIB+CetL0A==", - "license": "MIT", - "dependencies": { - "@docusaurus/mdx-loader": "3.7.0", - "@docusaurus/module-type-aliases": "3.7.0", - "@docusaurus/utils": "3.7.0", - "@docusaurus/utils-common": "3.7.0", - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router-config": "*", - "clsx": "^2.0.0", - "parse-numeric-range": "^1.3.0", - "prism-react-renderer": "^2.3.0", - "tslib": "^2.6.0", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/plugin-content-docs": "*", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/theme-search-algolia": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.7.0.tgz", - "integrity": "sha512-Al/j5OdzwRU1m3falm+sYy9AaB93S1XF1Lgk9Yc6amp80dNxJVplQdQTR4cYdzkGtuQqbzUA8+kaoYYO0RbK6g==", - "license": "MIT", - "dependencies": { - "@docsearch/react": "^3.8.1", - "@docusaurus/core": "3.7.0", - "@docusaurus/logger": "3.7.0", - "@docusaurus/plugin-content-docs": "3.7.0", - "@docusaurus/theme-common": "3.7.0", - "@docusaurus/theme-translations": "3.7.0", - "@docusaurus/utils": "3.7.0", - "@docusaurus/utils-validation": "3.7.0", - "algoliasearch": "^5.17.1", - "algoliasearch-helper": "^3.22.6", - "clsx": "^2.0.0", - "eta": "^2.2.0", - "fs-extra": "^11.1.1", - "lodash": "^4.17.21", - "tslib": "^2.6.0", - "utility-types": "^3.10.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/theme-translations": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.7.0.tgz", - "integrity": "sha512-Ewq3bEraWDmienM6eaNK7fx+/lHMtGDHQyd1O+4+3EsDxxUmrzPkV7Ct3nBWTuE0MsoZr3yNwQVKjllzCMuU3g==", - "license": "MIT", - "dependencies": { - "fs-extra": "^11.1.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/types": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.7.0.tgz", - "integrity": "sha512-kOmZg5RRqJfH31m+6ZpnwVbkqMJrPOG5t0IOl4i/+3ruXyNfWzZ0lVtVrD0u4ONc/0NOsS9sWYaxxWNkH1LdLQ==", - "license": "MIT", - "dependencies": { - "@mdx-js/mdx": "^3.0.0", - "@types/history": "^4.7.11", - "@types/react": "*", - "commander": "^5.1.0", - "joi": "^17.9.2", - "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", - "utility-types": "^3.10.0", - "webpack": "^5.95.0", - "webpack-merge": "^5.9.0" - }, - "peerDependencies": { - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - } - }, - "node_modules/@docusaurus/utils": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.7.0.tgz", - "integrity": "sha512-e7zcB6TPnVzyUaHMJyLSArKa2AG3h9+4CfvKXKKWNx6hRs+p0a+u7HHTJBgo6KW2m+vqDnuIHK4X+bhmoghAFA==", - "license": "MIT", - "dependencies": { - "@docusaurus/logger": "3.7.0", - "@docusaurus/types": "3.7.0", - "@docusaurus/utils-common": "3.7.0", - "escape-string-regexp": "^4.0.0", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "github-slugger": "^1.5.0", - "globby": "^11.1.0", - "gray-matter": "^4.0.3", - "jiti": "^1.20.0", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "micromatch": "^4.0.5", - "prompts": "^2.4.2", - "resolve-pathname": "^3.0.0", - "shelljs": "^0.8.5", - "tslib": "^2.6.0", - "url-loader": "^4.1.1", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/utils-common": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.7.0.tgz", - "integrity": "sha512-IZeyIfCfXy0Mevj6bWNg7DG7B8G+S6o6JVpddikZtWyxJguiQ7JYr0SIZ0qWd8pGNuMyVwriWmbWqMnK7Y5PwA==", - "license": "MIT", - "dependencies": { - "@docusaurus/types": "3.7.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/utils-validation": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.7.0.tgz", - "integrity": "sha512-w8eiKk8mRdN+bNfeZqC4nyFoxNyI1/VExMKAzD9tqpJfLLbsa46Wfn5wcKH761g9WkKh36RtFV49iL9lh1DYBA==", - "license": "MIT", - "dependencies": { - "@docusaurus/logger": "3.7.0", - "@docusaurus/utils": "3.7.0", - "@docusaurus/utils-common": "3.7.0", - "fs-extra": "^11.2.0", - "joi": "^17.9.2", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/utils/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@fastify/busboy": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", - "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", - "license": "MIT", - "engines": { - "node": ">=14" - } - }, - "node_modules/@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "license": "BSD-3-Clause", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "license": "MIT" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", - "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", - "license": "MIT" - }, - "node_modules/@mdx-js/mdx": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz", - "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdx": "^2.0.0", - "collapse-white-space": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "estree-util-scope": "^1.0.0", - "estree-walker": "^3.0.0", - "hast-util-to-jsx-runtime": "^2.0.0", - "markdown-extensions": "^2.0.0", - "recma-build-jsx": "^1.0.0", - "recma-jsx": "^1.0.0", - "recma-stringify": "^1.0.0", - "rehype-recma": "^1.0.0", - "remark-mdx": "^3.0.0", - "remark-parse": "^11.0.0", - "remark-rehype": "^11.0.0", - "source-map": "^0.7.0", - "unified": "^11.0.0", - "unist-util-position-from-estree": "^2.0.0", - "unist-util-stringify-position": "^4.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/mdx/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@mdx-js/react": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.0.tgz", - "integrity": "sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==", - "license": "MIT", - "dependencies": { - "@types/mdx": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "@types/react": ">=16", - "react": ">=16" - } - }, - "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==", - "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==", - "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==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pnpm/config.env-replace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", - "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", - "license": "MIT", - "engines": { - "node": ">=12.22.0" - } - }, - "node_modules/@pnpm/network.ca-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", - "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", - "license": "MIT", - "dependencies": { - "graceful-fs": "4.2.10" - }, - "engines": { - "node": ">=12.22.0" - } - }, - "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "license": "ISC" - }, - "node_modules/@pnpm/npm-conf": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz", - "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==", - "license": "MIT", - "dependencies": { - "@pnpm/config.env-replace": "^1.1.0", - "@pnpm/network.ca-file": "^1.0.1", - "config-chain": "^1.1.11" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@polka/url": { - "version": "1.0.0-next.28", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", - "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==", - "license": "MIT" - }, - "node_modules/@puppeteer/browsers": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.6.1.tgz", - "integrity": "sha512-aBSREisdsGH890S2rQqK82qmQYU3uFpSH8wcZWHgHzl3LfzsxAKbLNiAG9mO8v1Y0UICBeClICxPJvyr0rcuxg==", - "license": "Apache-2.0", - "dependencies": { - "debug": "^4.4.0", - "extract-zip": "^2.0.1", - "progress": "^2.0.3", - "proxy-agent": "^6.5.0", - "semver": "^7.6.3", - "tar-fs": "^3.0.6", - "unbzip2-stream": "^1.4.3", - "yargs": "^17.7.2" - }, - "bin": { - "browsers": "lib/cjs/main-cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@puppeteer/browsers/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@sideway/address": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", - "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", - "license": "BSD-3-Clause", - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", - "license": "BSD-3-Clause" - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "license": "MIT" - }, - "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@slorber/remark-comment": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@slorber/remark-comment/-/remark-comment-1.0.0.tgz", - "integrity": "sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==", - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.1.0", - "micromark-util-symbol": "^1.0.1" - } - }, - "node_modules/@slorber/remark-comment/node_modules/micromark-factory-space": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", - "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/@slorber/remark-comment/node_modules/micromark-util-character": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", - "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/@slorber/remark-comment/node_modules/micromark-util-symbol": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", - "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/@slorber/remark-comment/node_modules/micromark-util-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", - "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", - "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", - "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", - "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", - "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", - "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", - "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", - "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", - "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-preset": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", - "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", - "license": "MIT", - "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", - "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", - "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", - "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", - "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", - "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", - "@svgr/babel-plugin-transform-svg-component": "8.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/core": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", - "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.21.3", - "@svgr/babel-preset": "8.1.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^8.1.3", - "snake-case": "^3.0.4" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", - "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.21.3", - "entities": "^4.4.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/plugin-jsx": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", - "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.21.3", - "@svgr/babel-preset": "8.1.0", - "@svgr/hast-util-to-babel-ast": "8.0.0", - "svg-parser": "^2.0.4" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "*" - } - }, - "node_modules/@svgr/plugin-svgo": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", - "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", - "license": "MIT", - "dependencies": { - "cosmiconfig": "^8.1.3", - "deepmerge": "^4.3.1", - "svgo": "^3.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "*" - } - }, - "node_modules/@svgr/webpack": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", - "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", - "license": "MIT", - "dependencies": { - "@babel/core": "^7.21.3", - "@babel/plugin-transform-react-constant-elements": "^7.21.3", - "@babel/preset-env": "^7.20.2", - "@babel/preset-react": "^7.18.6", - "@babel/preset-typescript": "^7.21.0", - "@svgr/core": "8.1.0", - "@svgr/plugin-jsx": "8.1.0", - "@svgr/plugin-svgo": "8.1.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", - "license": "MIT", - "dependencies": { - "defer-to-connect": "^2.0.1" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/@tootallnate/quickjs-emscripten": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", - "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", - "license": "MIT" - }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "license": "ISC", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@types/acorn": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz", - "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", - "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", - "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", - "license": "MIT", - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", - "license": "MIT", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/eslint": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", - "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", - "license": "MIT", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "license": "MIT", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "license": "MIT" - }, - "node_modules/@types/estree-jsx": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", - "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", - "license": "MIT", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.5.tgz", - "integrity": "sha512-GLZPrd9ckqEBFMcVM/qRFAP0Hg3qiVEojgEFsx/N/zKXsBzbGF6z5FBDpZ0+Xhp1xr+qRZYjfGr1cWHB9oFHSA==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/express/node_modules/@types/express-serve-static-core": { - "version": "4.19.6", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", - "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/gtag.js": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.12.tgz", - "integrity": "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==", - "license": "MIT" - }, - "node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/history": { - "version": "4.7.11", - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", - "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", - "license": "MIT" - }, - "node_modules/@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", - "license": "MIT" - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", - "license": "MIT" - }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", - "license": "MIT" - }, - "node_modules/@types/http-proxy": { - "version": "1.17.15", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz", - "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "license": "MIT" - }, - "node_modules/@types/mdast": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", - "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/mdx": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", - "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", - "license": "MIT" - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "license": "MIT" - }, - "node_modules/@types/ms": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.10.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.6.tgz", - "integrity": "sha512-qNiuwC4ZDAUNcY47xgaSuS92cjf8JbSUoaKS77bmLG1rU7MlATVSiw/IlrjtIyyskXBZ8KkNfjK/P5na7rgXbQ==", - "license": "MIT", - "dependencies": { - "undici-types": "~6.20.0" - } - }, - "node_modules/@types/node-forge": { - "version": "1.3.11", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", - "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/parse-json": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", - "license": "MIT" - }, - "node_modules/@types/prismjs": { - "version": "1.26.5", - "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz", - "integrity": "sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==", - "license": "MIT" - }, - "node_modules/@types/prop-types": { - "version": "15.7.14", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", - "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", - "license": "MIT" - }, - "node_modules/@types/qs": { - "version": "6.9.18", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", - "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==", - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "license": "MIT" - }, - "node_modules/@types/react": { - "version": "18.3.18", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", - "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", - "license": "MIT", - "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-router": { - "version": "5.1.20", - "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", - "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", - "license": "MIT", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*" - } - }, - "node_modules/@types/react-router-config": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.11.tgz", - "integrity": "sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==", - "license": "MIT", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "^5.1.0" - } - }, - "node_modules/@types/react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", - "license": "MIT", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*" - } - }, - "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "license": "MIT" - }, - "node_modules/@types/sax": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", - "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", - "license": "MIT", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-index": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", - "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", - "license": "MIT", - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-index/node_modules/@types/express": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.0.tgz", - "integrity": "sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==", - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^5.0.0", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", - "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", - "license": "MIT", - "dependencies": { - "@types/http-errors": "*", - "@types/node": "*", - "@types/send": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.36", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", - "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "license": "MIT" - }, - "node_modules/@types/ws": { - "version": "8.5.13", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz", - "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yargs": { - "version": "17.0.33", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", - "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "license": "MIT" - }, - "node_modules/@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "license": "MIT", - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.1.tgz", - "integrity": "sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==", - "license": "ISC" - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", - "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/helper-numbers": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", - "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", - "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", - "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", - "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.13.2", - "@webassemblyjs/helper-api-error": "1.13.2", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", - "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", - "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/wasm-gen": "1.14.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", - "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", - "license": "MIT", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", - "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", - "license": "Apache-2.0", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", - "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", - "license": "MIT" - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", - "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/helper-wasm-section": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-opt": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1", - "@webassemblyjs/wast-printer": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", - "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", - "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-buffer": "1.14.1", - "@webassemblyjs/wasm-gen": "1.14.1", - "@webassemblyjs/wasm-parser": "1.14.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", - "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@webassemblyjs/helper-api-error": "1.13.2", - "@webassemblyjs/helper-wasm-bytecode": "1.13.2", - "@webassemblyjs/ieee754": "1.13.2", - "@webassemblyjs/leb128": "1.13.2", - "@webassemblyjs/utf8": "1.13.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", - "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.14.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "license": "BSD-3-Clause" - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "license": "Apache-2.0" - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/accepts/node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", - "license": "MIT", - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/address": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", - "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/agent-base": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", - "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "license": "MIT", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/algoliasearch": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.19.0.tgz", - "integrity": "sha512-zrLtGhC63z3sVLDDKGW+SlCRN9eJHFTgdEmoAOpsVh6wgGL1GgTTDou7tpCBjevzgIvi3AIyDAQO3Xjbg5eqZg==", - "license": "MIT", - "dependencies": { - "@algolia/client-abtesting": "5.19.0", - "@algolia/client-analytics": "5.19.0", - "@algolia/client-common": "5.19.0", - "@algolia/client-insights": "5.19.0", - "@algolia/client-personalization": "5.19.0", - "@algolia/client-query-suggestions": "5.19.0", - "@algolia/client-search": "5.19.0", - "@algolia/ingestion": "1.19.0", - "@algolia/monitoring": "1.19.0", - "@algolia/recommend": "5.19.0", - "@algolia/requester-browser-xhr": "5.19.0", - "@algolia/requester-fetch": "5.19.0", - "@algolia/requester-node-http": "5.19.0" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/algoliasearch-helper": { - "version": "3.23.0", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.23.0.tgz", - "integrity": "sha512-8CK4Gb/ju4OesAYcS+mjBpNiVA7ILWpg7D2vhBZohh0YkG8QT1KZ9LG+8+EntQBUGoKtPy06OFhiwP4f5zzAQg==", - "license": "MIT", - "dependencies": { - "@algolia/events": "^4.0.1" - }, - "peerDependencies": { - "algoliasearch": ">= 3.1 < 6" - } - }, - "node_modules/ansi-align": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", - "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", - "license": "ISC", - "dependencies": { - "string-width": "^4.1.0" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "engines": [ - "node >= 0.8.0" - ], - "license": "Apache-2.0", - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "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==", - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "license": "MIT" - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "license": "MIT" - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/astring": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", - "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", - "license": "MIT", - "bin": { - "astring": "bin/astring" - } - }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "dev": true, - "license": "MIT" - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "license": "ISC", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/autoprefixer": { - "version": "10.4.20", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", - "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", - "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.23.3", - "caniuse-lite": "^1.0.30001646", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/b4a": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", - "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", - "license": "Apache-2.0" - }, - "node_modules/babel-loader": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", - "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", - "license": "MIT", - "dependencies": { - "find-cache-dir": "^4.0.0", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0", - "webpack": ">=5" - } - }, - "node_modules/babel-loader/node_modules/find-cache-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", - "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", - "license": "MIT", - "dependencies": { - "common-path-prefix": "^3.0.0", - "pkg-dir": "^7.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/babel-loader/node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "license": "MIT", - "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/babel-loader/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "license": "MIT", - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/babel-loader/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "license": "MIT", - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/babel-loader/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "license": "MIT", - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/babel-loader/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/babel-loader/node_modules/pkg-dir": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", - "license": "MIT", - "dependencies": { - "find-up": "^6.3.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/babel-loader/node_modules/yocto-queue": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", - "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", - "license": "MIT", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "license": "MIT", - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", - "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.3", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", - "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.2", - "core-js-compat": "^3.38.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", - "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.3" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "license": "MIT" - }, - "node_modules/bare-events": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz", - "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==", - "license": "Apache-2.0", - "optional": true - }, - "node_modules/bare-fs": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.0.1.tgz", - "integrity": "sha512-ilQs4fm/l9eMfWY2dY0WCIUplSUp7U0CT1vrqMg1MUdeZl4fypu5UP0XcDBK5WBQPJAKP1b7XEodISmekH/CEg==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "bare-events": "^2.0.0", - "bare-path": "^3.0.0", - "bare-stream": "^2.0.0" - }, - "engines": { - "bare": ">=1.7.0" - } - }, - "node_modules/bare-os": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.4.0.tgz", - "integrity": "sha512-9Ous7UlnKbe3fMi7Y+qh0DwAup6A1JkYgPnjvMDNOlmnxNRQvQ/7Nst+OnUQKzk0iAT0m9BisbDVp9gCv8+ETA==", - "license": "Apache-2.0", - "optional": true, - "engines": { - "bare": ">=1.6.0" - } - }, - "node_modules/bare-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", - "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "bare-os": "^3.0.1" - } - }, - "node_modules/bare-stream": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.4.tgz", - "integrity": "sha512-G6i3A74FjNq4nVrrSTUz5h3vgXzBJnjmWAVlBWaZETkgu+LgKd7AiyOml3EDJY1AHlIbBHKDXE+TUT53Ff8OaA==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "streamx": "^2.21.0" - }, - "peerDependencies": { - "bare-buffer": "*", - "bare-events": "*" - }, - "peerDependenciesMeta": { - "bare-buffer": { - "optional": true - }, - "bare-events": { - "optional": true - } - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "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/basic-ftp": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", - "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "license": "MIT" - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/bonjour-service": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", - "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "license": "ISC" - }, - "node_modules/boxen": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz", - "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==", - "license": "MIT", - "dependencies": { - "ansi-align": "^3.0.1", - "camelcase": "^6.2.0", - "chalk": "^4.1.2", - "cli-boxes": "^3.0.0", - "string-width": "^5.0.1", - "type-fest": "^2.5.0", - "widest-line": "^4.0.1", - "wrap-ansi": "^8.0.1" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/boxen/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "license": "MIT" - }, - "node_modules/boxen/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "license": "MIT", - "dependencies": { - "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==", - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", - "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": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "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": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "license": "MIT" - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacheable-lookup": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", - "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", - "license": "MIT", - "engines": { - "node": ">=14.16" - } - }, - "node_modules/cacheable-request": { - "version": "10.2.14", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", - "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", - "license": "MIT", - "dependencies": { - "@types/http-cache-semantics": "^4.0.2", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.3", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/cacheable-request/node_modules/mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", - "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", - "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "license": "MIT", - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001692", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001692.tgz", - "integrity": "sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chalk/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-html4": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", - "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-legacy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-reference-invalid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", - "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/cheerio": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", - "license": "MIT", - "dependencies": { - "cheerio-select": "^2.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" - }, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" - } - }, - "node_modules/cheerio-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-select": "^5.1.0", - "css-what": "^6.1.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", - "license": "MIT", - "engines": { - "node": ">=6.0" - } - }, - "node_modules/chromium-bidi": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.11.0.tgz", - "integrity": "sha512-6CJWHkNRoyZyjV9Rwv2lYONZf1Xm0IuDyNq97nwSsxxP3wf5Bwy15K5rOvVKMtJ127jJBmxFUanSAOjgFRxgrA==", - "license": "Apache-2.0", - "dependencies": { - "mitt": "3.0.1", - "zod": "3.23.8" - }, - "peerDependencies": { - "devtools-protocol": "*" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/clean-css": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", - "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", - "license": "MIT", - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 10.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-boxes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", - "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-table3": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", - "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", - "license": "MIT", - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "@colors/colors": "1.5.0" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/collapse-white-space": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", - "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "license": "MIT" - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "license": "MIT" - }, - "node_modules/combine-promises": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/combine-promises/-/combine-promises-1.2.0.tgz", - "integrity": "sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", - "license": "ISC" - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true, - "license": "MIT" - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "license": "MIT", - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compressible/node_modules/mime-db": { - "version": "1.53.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", - "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz", - "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "compressible": "~2.0.18", - "debug": "2.6.9", - "negotiator": "~0.6.4", - "on-headers": "~1.0.2", - "safe-buffer": "5.2.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "license": "MIT" - }, - "node_modules/config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "license": "MIT", - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "node_modules/configstore": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", - "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", - "license": "BSD-2-Clause", - "dependencies": { - "dot-prop": "^6.0.1", - "graceful-fs": "^4.2.6", - "unique-string": "^3.0.0", - "write-file-atomic": "^3.0.3", - "xdg-basedir": "^5.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/yeoman/configstore?sponsor=1" - } - }, - "node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/consola": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.0.tgz", - "integrity": "sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==", - "license": "MIT", - "engines": { - "node": "^14.18.0 || >=16.10.0" - } - }, - "node_modules/content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "license": "MIT" - }, - "node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "license": "MIT" - }, - "node_modules/copy-text-to-clipboard": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz", - "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", - "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", - "license": "MIT", - "dependencies": { - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.1", - "globby": "^13.1.1", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", - "license": "MIT", - "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", - "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/core-js": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.40.0.tgz", - "integrity": "sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ==", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.40.0.tgz", - "integrity": "sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.24.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-pure": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.40.0.tgz", - "integrity": "sha512-AtDzVIgRrmRKQai62yuSIN5vNiQjcJakJb4fbhVw3ehxx7Lohphvw9SGNWKhLFqSxC4ilD0g/L1huAYFQU3Q6A==", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "license": "MIT" - }, - "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "license": "MIT", - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-random-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", - "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", - "license": "MIT", - "dependencies": { - "type-fest": "^1.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/crypto-random-string/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/css-blank-pseudo": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-7.0.1.tgz", - "integrity": "sha512-jf+twWGDf6LDoXDUode+nc7ZlrqfaNphrBIBrcmeP3D8yw1uPaix1gCC8LUQUGQ6CycuK2opkbFFWFuq/a94ag==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-declaration-sorter": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", - "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", - "license": "ISC", - "engines": { - "node": "^14 || ^16 || >=18" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-has-pseudo": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.2.tgz", - "integrity": "sha512-nzol/h+E0bId46Kn2dQH5VElaknX2Sr0hFuB/1EomdC7j+OISt2ZzK7EHX9DZDY53WbIVAR7FYKSO2XnSf07MQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/selector-specificity": "^5.0.0", - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-loader": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", - "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", - "license": "MIT", - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.33", - "postcss-modules-extract-imports": "^3.1.0", - "postcss-modules-local-by-default": "^4.0.5", - "postcss-modules-scope": "^3.2.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/css-loader/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/css-minimizer-webpack-plugin": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz", - "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==", - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "cssnano": "^6.0.1", - "jest-worker": "^29.4.3", - "postcss": "^8.4.24", - "schema-utils": "^4.0.1", - "serialize-javascript": "^6.0.1" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@parcel/css": { - "optional": true - }, - "@swc/css": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "lightningcss": { - "optional": true - } - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/css-prefers-color-scheme": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-10.0.0.tgz", - "integrity": "sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssdb": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.2.3.tgz", - "integrity": "sha512-9BDG5XmJrJQQnJ51VFxXCAtpZ5ebDlAREmO8sxMOVU0aSxN/gocbctjIG5LMh3WBUq+xTlb/jw2LoljBEqraTA==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - } - ], - "license": "MIT-0" - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", - "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", - "license": "MIT", - "dependencies": { - "cssnano-preset-default": "^6.1.2", - "lilconfig": "^3.1.1" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/cssnano-preset-advanced": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz", - "integrity": "sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==", - "license": "MIT", - "dependencies": { - "autoprefixer": "^10.4.19", - "browserslist": "^4.23.0", - "cssnano-preset-default": "^6.1.2", - "postcss-discard-unused": "^6.0.5", - "postcss-merge-idents": "^6.0.3", - "postcss-reduce-idents": "^6.0.3", - "postcss-zindex": "^6.0.2" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/cssnano-preset-default": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", - "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "css-declaration-sorter": "^7.2.0", - "cssnano-utils": "^4.0.2", - "postcss-calc": "^9.0.1", - "postcss-colormin": "^6.1.0", - "postcss-convert-values": "^6.1.0", - "postcss-discard-comments": "^6.0.2", - "postcss-discard-duplicates": "^6.0.3", - "postcss-discard-empty": "^6.0.3", - "postcss-discard-overridden": "^6.0.2", - "postcss-merge-longhand": "^6.0.5", - "postcss-merge-rules": "^6.1.1", - "postcss-minify-font-values": "^6.1.0", - "postcss-minify-gradients": "^6.0.3", - "postcss-minify-params": "^6.1.0", - "postcss-minify-selectors": "^6.0.4", - "postcss-normalize-charset": "^6.0.2", - "postcss-normalize-display-values": "^6.0.2", - "postcss-normalize-positions": "^6.0.2", - "postcss-normalize-repeat-style": "^6.0.2", - "postcss-normalize-string": "^6.0.2", - "postcss-normalize-timing-functions": "^6.0.2", - "postcss-normalize-unicode": "^6.1.0", - "postcss-normalize-url": "^6.0.2", - "postcss-normalize-whitespace": "^6.0.2", - "postcss-ordered-values": "^6.0.2", - "postcss-reduce-initial": "^6.1.0", - "postcss-reduce-transforms": "^6.0.2", - "postcss-svgo": "^6.0.3", - "postcss-unique-selectors": "^6.0.4" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/cssnano-utils": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", - "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/csso": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "license": "MIT", - "dependencies": { - "css-tree": "~2.2.0" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.28", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", - "license": "CC0-1.0" - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" - }, - "node_modules/data-uri-to-buffer": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", - "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/debounce": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", - "license": "MIT" - }, - "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", - "license": "MIT", - "dependencies": { - "character-entities": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "license": "MIT", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "license": "BSD-2-Clause", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/degenerator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", - "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", - "license": "MIT", - "dependencies": { - "ast-types": "^0.13.4", - "escodegen": "^2.1.0", - "esprima": "^4.0.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", - "license": "MIT", - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "license": "MIT" - }, - "node_modules/detect-port": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz", - "integrity": "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==", - "license": "MIT", - "dependencies": { - "address": "^1.0.1", - "debug": "4" - }, - "bin": { - "detect": "bin/detect-port.js", - "detect-port": "bin/detect-port.js" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "license": "MIT", - "dependencies": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "bin": { - "detect": "bin/detect-port", - "detect-port": "bin/detect-port" - }, - "engines": { - "node": ">= 4.2.1" - } - }, - "node_modules/detect-port-alt/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/detect-port-alt/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/devlop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", - "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", - "license": "MIT", - "dependencies": { - "dequal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/devtools-protocol": { - "version": "0.0.1367902", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1367902.tgz", - "integrity": "sha512-XxtPuC3PGakY6PD7dG66/o8KwJ/LkH2/EKe19Dcw58w53dv4/vSQEkn/SzuyhHE2q4zPgCkxQBxus3VV4ql+Pg==", - "license": "BSD-3-Clause" - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dns-packet": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", - "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", - "license": "MIT", - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/docusaurus-plugin-dotenv": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/docusaurus-plugin-dotenv/-/docusaurus-plugin-dotenv-1.0.1.tgz", - "integrity": "sha512-qKlWuBd6UoyB0d5ExH9waYGPoy1SnWgV8s8VLg12ydcfxquazXJngV0N5VAX/HuFiZmsPD3L4TYUKxdHWJTeEw==", - "license": "MIT", - "dependencies": { - "dotenv-webpack": "7.0.2" - } - }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "license": "MIT", - "dependencies": { - "utila": "~0.4" - } - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", - "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "license": "MIT", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/dot-prop/node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/dotenv": { - "version": "16.4.7", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", - "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, - "node_modules/dotenv-defaults": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dotenv-defaults/-/dotenv-defaults-2.0.2.tgz", - "integrity": "sha512-iOIzovWfsUHU91L5i8bJce3NYK5JXeAwH50Jh6+ARUdLiiGlYWfGw6UkzsYqaXZH/hjE/eCd/PlfM/qqyK0AMg==", - "license": "MIT", - "dependencies": { - "dotenv": "^8.2.0" - } - }, - "node_modules/dotenv-defaults/node_modules/dotenv": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", - "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=10" - } - }, - "node_modules/dotenv-webpack": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/dotenv-webpack/-/dotenv-webpack-7.0.2.tgz", - "integrity": "sha512-RY+/5uM/XY4bGtih9f9ic8hlrUDxVcZZBPWlnX/aHhaKxcVVX9SH/5VH7CSmvVo9GL6PKvQOA0X1bc552rnatQ==", - "license": "MIT", - "dependencies": { - "dotenv-defaults": "^2.0.1" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "webpack": "^4 || ^5" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", - "license": "MIT" - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "license": "MIT" - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.82", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.82.tgz", - "integrity": "sha512-Zq16uk1hfQhyGx5GpwPAYDwddJuSGhtRhgOA2mCxANYaDT79nAeGnaXogMGng4KqLaJUVnOnuL0+TDop9nLOiA==", - "license": "ISC" - }, - "node_modules/email-addresses": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-5.0.0.tgz", - "integrity": "sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==", - "dev": true, - "license": "MIT" - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/emojilib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz", - "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==", - "license": "MIT" - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/emoticon": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-4.1.0.tgz", - "integrity": "sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz", - "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-module-lexer": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", - "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", - "license": "MIT" - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/esast-util-from-estree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", - "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "devlop": "^1.0.0", - "estree-util-visit": "^2.0.0", - "unist-util-position-from-estree": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/esast-util-from-js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", - "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "acorn": "^8.0.0", - "esast-util-from-estree": "^2.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-goat": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", - "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-util-attach-comments": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", - "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-build-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", - "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "estree-walker": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-is-identifier-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", - "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-scope": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", - "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-to-js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", - "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "astring": "^1.8.0", - "source-map": "^0.7.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-to-js/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/estree-util-value-to-estree": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.2.1.tgz", - "integrity": "sha512-Vt2UOjyPbNQQgT5eJh+K5aATti0OjCIAGc9SgMdOFYbohuifsWclR74l0iZTJwePMgWYdX1hlVS+dedH9XV8kw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/remcohaszing" - } - }, - "node_modules/estree-util-visit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", - "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eta": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/eta/-/eta-2.2.0.tgz", - "integrity": "sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==", - "license": "MIT", - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "url": "https://github.com/eta-dev/eta?sponsor=1" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eval": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz", - "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==", - "dependencies": { - "@types/node": "*", - "require-like": ">= 0.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "license": "MIT" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/express": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express/node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/express/node_modules/path-to-regexp": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", - "license": "MIT" - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "license": "MIT" - }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "license": "MIT", - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "license": "BSD-2-Clause", - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/extract-zip/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "license": "MIT" - }, - "node_modules/fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "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==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "license": "MIT" - }, - "node_modules/fast-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.5.tgz", - "integrity": "sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/fastq": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", - "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fault": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", - "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", - "license": "MIT", - "dependencies": { - "format": "^0.2.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "license": "Apache-2.0", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "license": "MIT", - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/feed": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", - "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==", - "license": "MIT", - "dependencies": { - "xml-js": "^1.6.11" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/file-loader/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/filename-reserved-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", - "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/filenamify": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", - "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "filename-reserved-regex": "^2.0.0", - "strip-outer": "^1.0.1", - "trim-repeated": "^1.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/filesize": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 0.4.0" - } - }, - "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==", - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fork-ts-checker-webpack-plugin": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", - "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=10", - "yarn": ">=1.0.0" - }, - "peerDependencies": { - "eslint": ">= 6", - "typescript": ">= 2.7", - "vue-template-compiler": "*", - "webpack": ">= 4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - } - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "license": "MIT", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "license": "MIT", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/form-data-encoder": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", - "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", - "license": "MIT", - "engines": { - "node": ">= 14.17" - } - }, - "node_modules/format": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", - "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/fs-monkey": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", - "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", - "license": "Unlicense" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "license": "ISC" - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", - "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "function-bind": "^1.1.2", - "get-proto": "^1.0.0", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "license": "ISC" - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-uri": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz", - "integrity": "sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ==", - "license": "MIT", - "dependencies": { - "basic-ftp": "^5.0.2", - "data-uri-to-buffer": "^6.0.2", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/gh-pages": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-6.3.0.tgz", - "integrity": "sha512-Ot5lU6jK0Eb+sszG8pciXdjMXdBJ5wODvgjR+imihTqsUWF2K6dJ9HST55lgqcs8wWcw6o6wAsUzfcYRhJPXbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "async": "^3.2.4", - "commander": "^13.0.0", - "email-addresses": "^5.0.0", - "filenamify": "^4.3.0", - "find-cache-dir": "^3.3.1", - "fs-extra": "^11.1.1", - "globby": "^11.1.0" - }, - "bin": { - "gh-pages": "bin/gh-pages.js", - "gh-pages-clean": "bin/gh-pages-clean.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/gh-pages/node_modules/commander": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-13.0.0.tgz", - "integrity": "sha512-oPYleIY8wmTVzkvQq10AEok6YcTC4sRUBl8F9gVuwchGVUCTbl/vhLTaQqutuuySYOsu8YTgV+OxKc/8Yvx+mQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/github-slugger": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", - "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==", - "license": "ISC" - }, - "node_modules/glob": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz", - "integrity": "sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==", - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^4.0.1", - "minimatch": "^10.0.0", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^2.0.0" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "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==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "license": "BSD-2-Clause" - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", - "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/global-dirs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", - "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", - "license": "MIT", - "dependencies": { - "ini": "2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/global-dirs/node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "license": "MIT", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "license": "MIT", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/got/node_modules/@sindresorhus/is": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", - "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "license": "ISC" - }, - "node_modules/gray-matter": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", - "license": "MIT", - "dependencies": { - "js-yaml": "^3.13.1", - "kind-of": "^6.0.2", - "section-matter": "^1.0.0", - "strip-bom-string": "^1.0.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/gray-matter/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/gray-matter/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "license": "MIT", - "dependencies": { - "duplexer": "^0.1.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "license": "MIT" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-yarn": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", - "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hast-util-from-parse5": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.2.tgz", - "integrity": "sha512-SfMzfdAi/zAoZ1KkFEyyeXBn7u/ShQrfd675ZEE9M3qj+PMFX05xubzRyF76CCSJu8au9jgVxDV1+okFvgZU4A==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "devlop": "^1.0.0", - "hastscript": "^9.0.0", - "property-information": "^6.0.0", - "vfile": "^6.0.0", - "vfile-location": "^5.0.0", - "web-namespaces": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-parse-selector": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", - "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-raw": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", - "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "@ungap/structured-clone": "^1.0.0", - "hast-util-from-parse5": "^8.0.0", - "hast-util-to-parse5": "^8.0.0", - "html-void-elements": "^3.0.0", - "mdast-util-to-hast": "^13.0.0", - "parse5": "^7.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-estree": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.1.tgz", - "integrity": "sha512-IWtwwmPskfSmma9RpzCappDUitC8t5jhAynHhc1m2+5trOgsrp7txscUSavc5Ic8PATyAjfrCK1wgtxh2cICVQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-attach-comments": "^3.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "hast-util-whitespace": "^3.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-object": "^1.0.0", - "unist-util-position": "^5.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-jsx-runtime": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.2.tgz", - "integrity": "sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "hast-util-whitespace": "^3.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-object": "^1.0.0", - "unist-util-position": "^5.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-parse5": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", - "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-whitespace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", - "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hastscript": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.0.tgz", - "integrity": "sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-parse-selector": "^4.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, - "node_modules/history": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", - "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^3.0.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^1.0.1" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "license": "BSD-3-Clause", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT" - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/html-entities": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", - "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ], - "license": "MIT" - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "license": "MIT" - }, - "node_modules/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "license": "MIT", - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/html-minifier-terser/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/html-tags": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", - "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/html-void-elements": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", - "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/html-webpack-plugin": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz", - "integrity": "sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==", - "license": "MIT", - "dependencies": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/html-webpack-plugin" - }, - "peerDependencies": { - "@rspack/core": "0.x || 1.x", - "webpack": "^5.20.0" - }, - "peerDependenciesMeta": { - "@rspack/core": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "node_modules/htmlparser2": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "license": "BSD-2-Clause" - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "license": "MIT" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.9", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.9.tgz", - "integrity": "sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==", - "license": "MIT" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "license": "MIT", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", - "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", - "license": "MIT", - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/http2-wrapper": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", - "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", - "license": "MIT", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.2.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "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": "BSD-3-Clause" - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/image-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.0.tgz", - "integrity": "sha512-4S8fwbO6w3GeCVN6OPtA9I5IGKkcDMPcKndtUlpJuCwu7JLjtj7JZpwqLuyY2nrmQT3AWsCJLSKPsc2mPBSl3w==", - "license": "MIT", - "dependencies": { - "queue": "6.0.2" - }, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=16.x" - } - }, - "node_modules/immer": { - "version": "9.0.21", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", - "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-lazy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", - "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/infima": { - "version": "0.2.0-alpha.45", - "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.45.tgz", - "integrity": "sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw==", - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "license": "ISC" - }, - "node_modules/inline-style-parser": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", - "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", - "license": "MIT" - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "license": "MIT", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/ip-address/node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "license": "BSD-3-Clause" - }, - "node_modules/ipaddr.js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", - "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/is-alphabetical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", - "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-alphanumerical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", - "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", - "license": "MIT", - "dependencies": { - "is-alphabetical": "^2.0.0", - "is-decimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "license": "MIT" - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-ci": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", - "license": "MIT", - "dependencies": { - "ci-info": "^3.2.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-decimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", - "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hexadecimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", - "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-installed-globally": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", - "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", - "license": "MIT", - "dependencies": { - "global-dirs": "^3.0.0", - "is-path-inside": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-npm": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", - "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "license": "MIT" - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-yarn-global": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", - "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "license": "ISC" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jackspeak": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", - "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/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==", - "license": "MIT", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/joi": { - "version": "17.13.3", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", - "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", - "license": "BSD-3-Clause", - "dependencies": { - "@hapi/hoek": "^9.3.0", - "@hapi/topo": "^5.1.0", - "@sideway/address": "^4.1.5", - "@sideway/formula": "^3.0.1", - "@sideway/pinpoint": "^2.0.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "license": "MIT" - }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "license": "MIT" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "license": "MIT", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/latest-version": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", - "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", - "license": "MIT", - "dependencies": { - "package-json": "^8.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/launch-editor": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz", - "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", - "license": "MIT", - "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/lilconfig": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "license": "MIT" - }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "license": "MIT", - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "license": "MIT" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "license": "MIT" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "license": "MIT" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "license": "MIT" - }, - "node_modules/longest-streak": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", - "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lru-cache": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", - "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", - "license": "ISC", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/markdown-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", - "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/markdown-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", - "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", - "license": "MIT", - "dependencies": { - "repeat-string": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/mdast-util-directive": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz", - "integrity": "sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "parse-entities": "^4.0.0", - "stringify-entities": "^4.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-find-and-replace": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", - "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "escape-string-regexp": "^5.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mdast-util-from-markdown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", - "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark": "^4.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-frontmatter": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz", - "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "escape-string-regexp": "^5.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "micromark-extension-frontmatter": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-frontmatter/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mdast-util-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", - "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", - "license": "MIT", - "dependencies": { - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-gfm-autolink-literal": "^2.0.0", - "mdast-util-gfm-footnote": "^2.0.0", - "mdast-util-gfm-strikethrough": "^2.0.0", - "mdast-util-gfm-table": "^2.0.0", - "mdast-util-gfm-task-list-item": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-autolink-literal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", - "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "ccount": "^2.0.0", - "devlop": "^1.0.0", - "mdast-util-find-and-replace": "^3.0.0", - "micromark-util-character": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-footnote": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz", - "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-strikethrough": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", - "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", - "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "markdown-table": "^3.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-table/node_modules/markdown-table": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", - "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/mdast-util-gfm-task-list-item": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", - "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", - "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", - "license": "MIT", - "dependencies": { - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-expression": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", - "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-jsx": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", - "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "parse-entities": "^4.0.0", - "stringify-entities": "^4.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdxjs-esm": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", - "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-phrasing": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", - "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-hast": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", - "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@ungap/structured-clone": "^1.0.0", - "devlop": "^1.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "trim-lines": "^3.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", - "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^4.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "unist-util-visit": "^5.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", - "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "license": "CC0-1.0" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.6.0.tgz", - "integrity": "sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ==", - "license": "Unlicense", - "dependencies": { - "fs-monkey": "^1.0.4" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromark": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.1.tgz", - "integrity": "sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-core-commonmark": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.2.tgz", - "integrity": "sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-destination": "^2.0.0", - "micromark-factory-label": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-factory-title": "^2.0.0", - "micromark-factory-whitespace": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-html-tag-name": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-directive": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.2.tgz", - "integrity": "sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-factory-whitespace": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "parse-entities": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-frontmatter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz", - "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==", - "license": "MIT", - "dependencies": { - "fault": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", - "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", - "license": "MIT", - "dependencies": { - "micromark-extension-gfm-autolink-literal": "^2.0.0", - "micromark-extension-gfm-footnote": "^2.0.0", - "micromark-extension-gfm-strikethrough": "^2.0.0", - "micromark-extension-gfm-table": "^2.0.0", - "micromark-extension-gfm-tagfilter": "^2.0.0", - "micromark-extension-gfm-task-list-item": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", - "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-footnote": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", - "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-strikethrough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", - "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-table": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.0.tgz", - "integrity": "sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-tagfilter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", - "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", - "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-task-list-item": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", - "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdx-expression": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz", - "integrity": "sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-mdx-expression": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-mdx-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.1.tgz", - "integrity": "sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==", - "license": "MIT", - "dependencies": { - "@types/acorn": "^4.0.0", - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "micromark-factory-mdx-expression": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdx-md": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", - "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", - "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdxjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", - "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", - "license": "MIT", - "dependencies": { - "acorn": "^8.0.0", - "acorn-jsx": "^5.0.0", - "micromark-extension-mdx-expression": "^3.0.0", - "micromark-extension-mdx-jsx": "^3.0.0", - "micromark-extension-mdx-md": "^2.0.0", - "micromark-extension-mdxjs-esm": "^3.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdxjs-esm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", - "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-position-from-estree": "^2.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-factory-destination": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", - "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-label": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", - "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-mdx-expression": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.2.tgz", - "integrity": "sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-position-from-estree": "^2.0.0", - "vfile-message": "^4.0.0" - } - }, - "node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-title": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", - "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-whitespace": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", - "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-chunked": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", - "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-classify-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", - "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-combine-extensions": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", - "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-chunked": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", - "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-string": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", - "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-encode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", - "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-events-to-acorn": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz", - "integrity": "sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/acorn": "^4.0.0", - "@types/estree": "^1.0.0", - "@types/unist": "^3.0.0", - "devlop": "^1.0.0", - "estree-util-visit": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "vfile-message": "^4.0.0" - } - }, - "node_modules/micromark-util-html-tag-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", - "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-normalize-identifier": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", - "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-resolve-all": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", - "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-sanitize-uri": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", - "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-subtokenize": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.3.tgz", - "integrity": "sha512-VXJJuNxYWSoYL6AJ6OQECCFGhIU2GGHMw8tahogePBrjkG8aCCas3ibkp7RnVOSTClg2is05/R7maAhF1XyQMg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-types": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz", - "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", - "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", - "license": "MIT", - "dependencies": { - "schema-utils": "^4.0.0", - "tapable": "^2.2.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "license": "ISC" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/mitt": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", - "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", - "license": "MIT" - }, - "node_modules/mrmime": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", - "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "license": "MIT", - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/nanoid": { - "version": "3.3.8", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", - "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/negotiator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", - "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "license": "MIT" - }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "license": "MIT", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-emoji": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.2.0.tgz", - "integrity": "sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==", - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^4.6.0", - "char-regex": "^1.0.2", - "emojilib": "^2.4.0", - "skin-tone": "^2.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "license": "(BSD-3-Clause OR GPL-2.0)", - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "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==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", - "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nprogress": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==", - "license": "MIT" - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/null-loader": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-4.0.1.tgz", - "integrity": "sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==", - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/null-loader/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", - "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", - "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0", - "has-symbols": "^1.1.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "license": "MIT" - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "license": "MIT", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/opener": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "license": "(WTFPL OR MIT)", - "bin": { - "opener": "bin/opener-bin.js" - } - }, - "node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", - "license": "MIT", - "engines": { - "node": ">=12.20" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "license": "MIT", - "dependencies": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/pac-proxy-agent": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.1.0.tgz", - "integrity": "sha512-Z5FnLVVZSnX7WjBg0mhDtydeRZ1xMcATZThjySQUHqr+0ksP8kqaw23fNKkaaN/Z8gwLUs/W7xdl0I75eP2Xyw==", - "license": "MIT", - "dependencies": { - "@tootallnate/quickjs-emscripten": "^0.23.0", - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "get-uri": "^6.0.1", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.6", - "pac-resolver": "^7.0.1", - "socks-proxy-agent": "^8.0.5" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-resolver": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", - "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", - "license": "MIT", - "dependencies": { - "degenerator": "^5.0.0", - "netmask": "^2.0.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/package-json": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", - "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", - "license": "MIT", - "dependencies": { - "got": "^12.1.0", - "registry-auth-token": "^5.0.1", - "registry-url": "^6.0.0", - "semver": "^7.3.7" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "license": "BlueOak-1.0.0" - }, - "node_modules/package-json/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "license": "MIT", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-entities": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", - "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "character-entities-legacy": "^3.0.0", - "character-reference-invalid": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "is-alphanumerical": "^2.0.0", - "is-decimal": "^2.0.0", - "is-hexadecimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/parse-entities/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "license": "MIT" - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-numeric-range": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", - "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==", - "license": "ISC" - }, - "node_modules/parse5": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", - "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", - "license": "MIT", - "dependencies": { - "entities": "^4.5.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", - "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", - "license": "MIT", - "dependencies": { - "domhandler": "^5.0.3", - "parse5": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", - "license": "(WTFPL OR MIT)" - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "license": "MIT" - }, - "node_modules/path-scurry": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", - "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-to-regexp": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.3.0.tgz", - "integrity": "sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==", - "license": "MIT" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "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==", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "license": "MIT", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "license": "MIT", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "license": "MIT", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "license": "MIT", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz", - "integrity": "sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==", - "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.8", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-attribute-case-insensitive": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-7.0.1.tgz", - "integrity": "sha512-Uai+SupNSqzlschRyNx3kbCTWgY/2hcwtHEI/ej2LJWc9JJ77qKgGptd8DHwY1mXtZ7Aoh4z4yxfwMBue9eNgw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-calc": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", - "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.11", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/postcss-calc/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==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-clamp": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", - "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=7.6.0" - }, - "peerDependencies": { - "postcss": "^8.4.6" - } - }, - "node_modules/postcss-color-functional-notation": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.7.tgz", - "integrity": "sha512-EZvAHsvyASX63vXnyXOIynkxhaHRSsdb7z6yiXKIovGXAolW4cMZ3qoh7k3VdTsLBS6VGdksGfIo3r6+waLoOw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.7", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-color-hex-alpha": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-10.0.0.tgz", - "integrity": "sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-color-rebeccapurple": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-10.0.0.tgz", - "integrity": "sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-colormin": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", - "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-api": "^3.0.0", - "colord": "^2.9.3", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-convert-values": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", - "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-custom-media": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.5.tgz", - "integrity": "sha512-SQHhayVNgDvSAdX9NQ/ygcDQGEY+aSF4b/96z7QUX6mqL5yl/JgG/DywcF6fW9XbnCRE+aVYk+9/nqGuzOPWeQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.4", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/media-query-list-parser": "^4.0.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-custom-properties": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.4.tgz", - "integrity": "sha512-QnW8FCCK6q+4ierwjnmXF9Y9KF8q0JkbgVfvQEMa93x1GT8FvOiUevWCN2YLaOWyByeDX8S6VFbZEeWoAoXs2A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.4", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-custom-selectors": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-8.0.4.tgz", - "integrity": "sha512-ASOXqNvDCE0dAJ/5qixxPeL1aOVGHGW2JwSy7HyjWNbnWTQCl+fDc968HY1jCmZI0+BaYT5CxsOiUhavpG/7eg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.4", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-dir-pseudo-class": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-9.0.1.tgz", - "integrity": "sha512-tRBEK0MHYvcMUrAuYMEOa0zg9APqirBcgzi6P21OhxtJyJADo/SWBwY1CAwEohQ/6HDaa9jCjLRG7K3PVQYHEA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-discard-comments": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", - "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", - "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-discard-empty": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", - "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", - "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-discard-unused": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz", - "integrity": "sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-discard-unused/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==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-double-position-gradients": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.0.tgz", - "integrity": "sha512-JkIGah3RVbdSEIrcobqj4Gzq0h53GG4uqDPsho88SgY84WnpkTpI0k50MFK/sX7XqVisZ6OqUfFnoUO6m1WWdg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-focus-visible": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-10.0.1.tgz", - "integrity": "sha512-U58wyjS/I1GZgjRok33aE8juW9qQgQUNwTSdxQGuShHzwuYdcklnvK/+qOWX1Q9kr7ysbraQ6ht6r+udansalA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-focus-within": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-9.0.1.tgz", - "integrity": "sha512-fzNUyS1yOYa7mOjpci/bR+u+ESvdar6hk8XNK/TRR0fiGTp2QT5N+ducP0n3rfH/m9I7H/EQU6lsa2BrgxkEjw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-font-variant": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", - "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "license": "MIT", - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-gap-properties": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-6.0.0.tgz", - "integrity": "sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-image-set-function": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-7.0.0.tgz", - "integrity": "sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-lab-function": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.7.tgz", - "integrity": "sha512-+ONj2bpOQfsCKZE2T9VGMyVVdGcGUpr7u3SVfvkJlvhTRmDCfY25k4Jc8fubB9DclAPR4+w8uVtDZmdRgdAHig==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.7", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-loader": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.4.tgz", - "integrity": "sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==", - "license": "MIT", - "dependencies": { - "cosmiconfig": "^8.3.5", - "jiti": "^1.20.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "postcss": "^7.0.0 || ^8.0.1", - "webpack": "^5.0.0" - } - }, - "node_modules/postcss-loader/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/postcss-logical": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-8.0.0.tgz", - "integrity": "sha512-HpIdsdieClTjXLOyYdUPAX/XQASNIwdKt5hoZW08ZOAiI+tbV0ta1oclkpVkW5ANU+xJvk3KkA0FejkjGLXUkg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-merge-idents": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz", - "integrity": "sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==", - "license": "MIT", - "dependencies": { - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", - "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^6.1.1" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-merge-rules": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", - "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^4.0.2", - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-merge-rules/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==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", - "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", - "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", - "license": "MIT", - "dependencies": { - "colord": "^2.9.3", - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-minify-params": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", - "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", - "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-minify-selectors/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==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", - "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", - "license": "ISC", - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", - "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", - "license": "MIT", - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", - "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", - "license": "ISC", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "license": "ISC", - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-nesting": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.1.tgz", - "integrity": "sha512-VbqqHkOBOt4Uu3G8Dm8n6lU5+9cJFxiuty9+4rcoyRPO9zZS1JIs6td49VIoix3qYqELHlJIn46Oih9SAKo+yQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/selector-resolve-nested": "^3.0.0", - "@csstools/selector-specificity": "^5.0.0", - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", - "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", - "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", - "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", - "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-string": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", - "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", - "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", - "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-url": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", - "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", - "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-opacity-percentage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-3.0.0.tgz", - "integrity": "sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ==", - "funding": [ - { - "type": "kofi", - "url": "https://ko-fi.com/mrcgrtz" - }, - { - "type": "liberapay", - "url": "https://liberapay.com/mrcgrtz" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-ordered-values": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", - "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", - "license": "MIT", - "dependencies": { - "cssnano-utils": "^4.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-overflow-shorthand": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-6.0.0.tgz", - "integrity": "sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-page-break": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", - "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "license": "MIT", - "peerDependencies": { - "postcss": "^8" - } - }, - "node_modules/postcss-place": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-10.0.0.tgz", - "integrity": "sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-preset-env": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.1.3.tgz", - "integrity": "sha512-9qzVhcMFU/MnwYHyYpJz4JhGku/4+xEiPTmhn0hj3IxnUYlEF9vbh7OC1KoLAnenS6Fgg43TKNp9xcuMeAi4Zw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/postcss-cascade-layers": "^5.0.1", - "@csstools/postcss-color-function": "^4.0.7", - "@csstools/postcss-color-mix-function": "^3.0.7", - "@csstools/postcss-content-alt-text": "^2.0.4", - "@csstools/postcss-exponential-functions": "^2.0.6", - "@csstools/postcss-font-format-keywords": "^4.0.0", - "@csstools/postcss-gamut-mapping": "^2.0.7", - "@csstools/postcss-gradients-interpolation-method": "^5.0.7", - "@csstools/postcss-hwb-function": "^4.0.7", - "@csstools/postcss-ic-unit": "^4.0.0", - "@csstools/postcss-initial": "^2.0.0", - "@csstools/postcss-is-pseudo-class": "^5.0.1", - "@csstools/postcss-light-dark-function": "^2.0.7", - "@csstools/postcss-logical-float-and-clear": "^3.0.0", - "@csstools/postcss-logical-overflow": "^2.0.0", - "@csstools/postcss-logical-overscroll-behavior": "^2.0.0", - "@csstools/postcss-logical-resize": "^3.0.0", - "@csstools/postcss-logical-viewport-units": "^3.0.3", - "@csstools/postcss-media-minmax": "^2.0.6", - "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.4", - "@csstools/postcss-nested-calc": "^4.0.0", - "@csstools/postcss-normalize-display-values": "^4.0.0", - "@csstools/postcss-oklab-function": "^4.0.7", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/postcss-random-function": "^1.0.2", - "@csstools/postcss-relative-color-syntax": "^3.0.7", - "@csstools/postcss-scope-pseudo-class": "^4.0.1", - "@csstools/postcss-sign-functions": "^1.1.1", - "@csstools/postcss-stepped-value-functions": "^4.0.6", - "@csstools/postcss-text-decoration-shorthand": "^4.0.1", - "@csstools/postcss-trigonometric-functions": "^4.0.6", - "@csstools/postcss-unset-value": "^4.0.0", - "autoprefixer": "^10.4.19", - "browserslist": "^4.23.1", - "css-blank-pseudo": "^7.0.1", - "css-has-pseudo": "^7.0.2", - "css-prefers-color-scheme": "^10.0.0", - "cssdb": "^8.2.3", - "postcss-attribute-case-insensitive": "^7.0.1", - "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^7.0.7", - "postcss-color-hex-alpha": "^10.0.0", - "postcss-color-rebeccapurple": "^10.0.0", - "postcss-custom-media": "^11.0.5", - "postcss-custom-properties": "^14.0.4", - "postcss-custom-selectors": "^8.0.4", - "postcss-dir-pseudo-class": "^9.0.1", - "postcss-double-position-gradients": "^6.0.0", - "postcss-focus-visible": "^10.0.1", - "postcss-focus-within": "^9.0.1", - "postcss-font-variant": "^5.0.0", - "postcss-gap-properties": "^6.0.0", - "postcss-image-set-function": "^7.0.0", - "postcss-lab-function": "^7.0.7", - "postcss-logical": "^8.0.0", - "postcss-nesting": "^13.0.1", - "postcss-opacity-percentage": "^3.0.0", - "postcss-overflow-shorthand": "^6.0.0", - "postcss-page-break": "^3.0.4", - "postcss-place": "^10.0.0", - "postcss-pseudo-class-any-link": "^10.0.1", - "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^8.0.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-pseudo-class-any-link": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-10.0.1.tgz", - "integrity": "sha512-3el9rXlBOqTFaMFkWDOkHUTQekFIYnaQY55Rsp8As8QQkpiSgIYEcF/6Ond93oHiDsGb4kad8zjt+NPlOC1H0Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-reduce-idents": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz", - "integrity": "sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", - "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", - "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-replace-overflow-wrap": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", - "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "license": "MIT", - "peerDependencies": { - "postcss": "^8.0.3" - } - }, - "node_modules/postcss-selector-not": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-8.0.1.tgz", - "integrity": "sha512-kmVy/5PYVb2UOhy0+LqUYAhKj7DUGDpSWa5LZqlkWJaaAV+dxxsOG3+St0yNLu6vsKD7Dmqx+nWQt0iil89+WA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-selector-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", - "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-sort-media-queries": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz", - "integrity": "sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==", - "license": "MIT", - "dependencies": { - "sort-css-media-queries": "2.2.0" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.4.23" - } - }, - "node_modules/postcss-svgo": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", - "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^3.2.0" - }, - "engines": { - "node": "^14 || ^16 || >= 18" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", - "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-unique-selectors/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==", - "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==", - "license": "MIT" - }, - "node_modules/postcss-zindex": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-6.0.2.tgz", - "integrity": "sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==", - "license": "MIT", - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "license": "MIT", - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, - "node_modules/pretty-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", - "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/prism-react-renderer": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.4.1.tgz", - "integrity": "sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig==", - "license": "MIT", - "dependencies": { - "@types/prismjs": "^1.26.0", - "clsx": "^2.0.0" - }, - "peerDependencies": { - "react": ">=16.0.0" - } - }, - "node_modules/prismjs": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", - "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "license": "MIT" - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "license": "ISC" - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-agent": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", - "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "http-proxy-agent": "^7.0.1", - "https-proxy-agent": "^7.0.6", - "lru-cache": "^7.14.1", - "pac-proxy-agent": "^7.1.0", - "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.5" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-agent/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "license": "MIT" - }, - "node_modules/pump": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", - "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/pupa": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", - "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", - "license": "MIT", - "dependencies": { - "escape-goat": "^4.0.0" - }, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/puppeteer": { - "version": "23.11.1", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-23.11.1.tgz", - "integrity": "sha512-53uIX3KR5en8l7Vd8n5DUv90Ae9QDQsyIthaUFVzwV6yU750RjqRznEtNMBT20VthqAdemnJN+hxVdmMHKt7Zw==", - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@puppeteer/browsers": "2.6.1", - "chromium-bidi": "0.11.0", - "cosmiconfig": "^9.0.0", - "devtools-protocol": "0.0.1367902", - "puppeteer-core": "23.11.1", - "typed-query-selector": "^2.12.0" - }, - "bin": { - "puppeteer": "lib/cjs/puppeteer/node/cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/puppeteer-core": { - "version": "23.11.1", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.11.1.tgz", - "integrity": "sha512-3HZ2/7hdDKZvZQ7dhhITOUg4/wOrDRjyK2ZBllRB0ZCOi9u0cwq1ACHDjBB+nX+7+kltHjQvBRdeY7+W0T+7Gg==", - "license": "Apache-2.0", - "dependencies": { - "@puppeteer/browsers": "2.6.1", - "chromium-bidi": "0.11.0", - "debug": "^4.4.0", - "devtools-protocol": "0.0.1367902", - "typed-query-selector": "^2.12.0", - "ws": "^8.18.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/puppeteer/node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - "license": "MIT", - "dependencies": { - "inherits": "~2.0.3" - } - }, - "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==", - "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/queue-tick": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", - "license": "MIT" - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dev-utils": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", - "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.16.0", - "address": "^1.1.2", - "browserslist": "^4.18.1", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "detect-port-alt": "^1.1.6", - "escape-string-regexp": "^4.0.0", - "filesize": "^8.0.6", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.5.0", - "global-modules": "^2.0.0", - "globby": "^11.0.4", - "gzip-size": "^6.0.0", - "immer": "^9.0.7", - "is-root": "^2.1.0", - "loader-utils": "^3.2.0", - "open": "^8.4.0", - "pkg-up": "^3.1.0", - "prompts": "^2.4.2", - "react-error-overlay": "^6.0.11", - "recursive-readdir": "^2.2.2", - "shell-quote": "^1.7.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/react-dev-utils/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/loader-utils": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", - "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", - "license": "MIT", - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } - }, - "node_modules/react-error-overlay": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", - "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==", - "license": "MIT" - }, - "node_modules/react-fast-compare": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", - "license": "MIT" - }, - "node_modules/react-helmet-async": { - "name": "@slorber/react-helmet-async", - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@slorber/react-helmet-async/-/react-helmet-async-1.3.0.tgz", - "integrity": "sha512-e9/OK8VhwUSc67diWI8Rb3I0YgI9/SBQtnhe9aEuK6MhZm7ntZZimXgwXnd8W96YTmSOb9M4d8LwhRZyhWr/1A==", - "license": "Apache-2.0", - "dependencies": { - "@babel/runtime": "^7.12.5", - "invariant": "^2.2.4", - "prop-types": "^15.7.2", - "react-fast-compare": "^3.2.0", - "shallowequal": "^1.1.0" - }, - "peerDependencies": { - "react": "^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" - }, - "node_modules/react-json-view-lite": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-1.5.0.tgz", - "integrity": "sha512-nWqA1E4jKPklL2jvHWs6s+7Na0qNgw9HCP6xehdQJeg6nPBTFZgGwyko9Q0oj+jQWKTTVRS30u0toM5wiuL3iw==", - "license": "MIT", - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "react": "^16.13.1 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-loadable": { - "name": "@docusaurus/react-loadable", - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", - "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", - "license": "MIT", - "dependencies": { - "@types/react": "*" - }, - "peerDependencies": { - "react": "*" - } - }, - "node_modules/react-loadable-ssr-addon-v5-slorber": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz", - "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.10.3" - }, - "engines": { - "node": ">=10.13.0" - }, - "peerDependencies": { - "react-loadable": "*", - "webpack": ">=4.41.1 || 5.x" - } - }, - "node_modules/react-router": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", - "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "peerDependencies": { - "react": ">=15" - } - }, - "node_modules/react-router-config": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz", - "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.1.2" - }, - "peerDependencies": { - "react": ">=15", - "react-router": ">=5" - } - }, - "node_modules/react-router-dom": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", - "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.3.4", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "peerDependencies": { - "react": ">=15" - } - }, - "node_modules/react-router/node_modules/path-to-regexp": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", - "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", - "license": "MIT", - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/reading-time": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz", - "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==", - "license": "MIT" - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/recma-build-jsx": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", - "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-util-build-jsx": "^3.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/recma-jsx": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz", - "integrity": "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==", - "license": "MIT", - "dependencies": { - "acorn-jsx": "^5.0.0", - "estree-util-to-js": "^2.0.0", - "recma-parse": "^1.0.0", - "recma-stringify": "^1.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/recma-parse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", - "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "esast-util-from-js": "^2.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/recma-stringify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", - "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-util-to-js": "^2.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/recursive-readdir": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", - "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", - "license": "MIT", - "dependencies": { - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "license": "MIT" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", - "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "license": "MIT" - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regexpu-core": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", - "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.0", - "regjsgen": "^0.8.0", - "regjsparser": "^0.12.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/registry-auth-token": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.3.tgz", - "integrity": "sha512-1bpc9IyC+e+CNFRaWyn77tk4xGG4PPUyfakSmA6F6cvUDjrm58dfyJ3II+9yb10EDkHoy1LaPSmHaWLOH3m6HA==", - "license": "MIT", - "dependencies": { - "@pnpm/npm-conf": "^2.1.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/registry-url": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", - "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", - "license": "MIT", - "dependencies": { - "rc": "1.2.8" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", - "license": "MIT" - }, - "node_modules/regjsparser": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", - "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", - "license": "BSD-2-Clause", - "dependencies": { - "jsesc": "~3.0.2" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/rehype-raw": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", - "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "hast-util-raw": "^9.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-recma": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", - "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/hast": "^3.0.0", - "hast-util-to-estree": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/remark-directive": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-3.0.0.tgz", - "integrity": "sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-directive": "^3.0.0", - "micromark-extension-directive": "^3.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-emoji": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-4.0.1.tgz", - "integrity": "sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.2", - "emoticon": "^4.0.1", - "mdast-util-find-and-replace": "^3.0.1", - "node-emoji": "^2.1.0", - "unified": "^11.0.4" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/remark-frontmatter": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz", - "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-frontmatter": "^2.0.0", - "micromark-extension-frontmatter": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-gfm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", - "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-gfm": "^3.0.0", - "micromark-extension-gfm": "^3.0.0", - "remark-parse": "^11.0.0", - "remark-stringify": "^11.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-mdx": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz", - "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==", - "license": "MIT", - "dependencies": { - "mdast-util-mdx": "^3.0.0", - "micromark-extension-mdxjs": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-parse": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", - "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.1.tgz", - "integrity": "sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "mdast-util-to-hast": "^13.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-stringify": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", - "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-to-markdown": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "license": "MIT", - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, - "node_modules/renderkid/node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/renderkid/node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "license": "MIT", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-like": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", - "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==", - "engines": { - "node": "*" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", - "license": "MIT", - "dependencies": { - "is-core-module": "^2.16.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "license": "MIT" - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-pathname": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==", - "license": "MIT" - }, - "node_modules/responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", - "license": "MIT", - "dependencies": { - "lowercase-keys": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rtlcss": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz", - "integrity": "sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig==", - "license": "MIT", - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0", - "postcss": "^8.4.21", - "strip-json-comments": "^3.1.1" - }, - "bin": { - "rtlcss": "bin/rtlcss.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" - }, - "node_modules/sax": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "license": "ISC" - }, - "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/schema-utils": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", - "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/schema-utils/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/schema-utils/node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/schema-utils/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/schema-utils/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" - }, - "node_modules/search-insights": { - "version": "2.17.3", - "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz", - "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==", - "license": "MIT", - "peer": true - }, - "node_modules/section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", - "license": "MIT", - "dependencies": { - "extend-shallow": "^2.0.1", - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "license": "MIT" - }, - "node_modules/selfsigned": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", - "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", - "license": "MIT", - "dependencies": { - "@types/node-forge": "^1.3.0", - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/semver-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", - "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", - "license": "MIT", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/semver-diff/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-handler": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.6.tgz", - "integrity": "sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==", - "license": "MIT", - "dependencies": { - "bytes": "3.0.0", - "content-disposition": "0.5.2", - "mime-types": "2.1.18", - "minimatch": "3.1.2", - "path-is-inside": "1.0.2", - "path-to-regexp": "3.3.0", - "range-parser": "1.2.0" - } - }, - "node_modules/serve-handler/node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/serve-handler/node_modules/mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-handler/node_modules/mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "license": "MIT", - "dependencies": { - "mime-db": "~1.33.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-handler/node_modules/range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "license": "MIT", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "license": "ISC" - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "license": "ISC" - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "license": "MIT", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "license": "MIT", - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", - "license": "MIT" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", - "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "license": "BSD-3-Clause", - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/shelljs/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "license": "ISC" - }, - "node_modules/sirv": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", - "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", - "license": "MIT", - "dependencies": { - "@polka/url": "^1.0.0-next.24", - "mrmime": "^2.0.0", - "totalist": "^3.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "license": "MIT" - }, - "node_modules/sitemap": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.2.tgz", - "integrity": "sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==", - "license": "MIT", - "dependencies": { - "@types/node": "^17.0.5", - "@types/sax": "^1.2.1", - "arg": "^5.0.0", - "sax": "^1.2.4" - }, - "bin": { - "sitemap": "dist/cli.js" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=5.6.0" - } - }, - "node_modules/sitemap/node_modules/@types/node": { - "version": "17.0.45", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", - "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", - "license": "MIT" - }, - "node_modules/skin-tone": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", - "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", - "license": "MIT", - "dependencies": { - "unicode-emoji-modifier-base": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "license": "MIT", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "license": "MIT", - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/socks": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", - "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", - "license": "MIT", - "dependencies": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", - "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "socks": "^2.8.3" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/sort-css-media-queries": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz", - "integrity": "sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==", - "license": "MIT", - "engines": { - "node": ">= 6.3.0" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "license": "BSD-3-Clause" - }, - "node_modules/srcset": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz", - "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/std-env": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz", - "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==", - "license": "MIT" - }, - "node_modules/streamx": { - "version": "2.21.1", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.21.1.tgz", - "integrity": "sha512-PhP9wUnFLa+91CPy3N6tiQsK+gnYyUNuk15S3YG/zjYE7RuPeCjJngqnzpC31ow0lzBHQ+QGO4cNJnd0djYUsw==", - "license": "MIT", - "dependencies": { - "fast-fifo": "^1.3.2", - "queue-tick": "^1.0.1", - "text-decoder": "^1.1.0" - }, - "optionalDependencies": { - "bare-events": "^2.2.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/stringify-entities": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", - "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", - "license": "MIT", - "dependencies": { - "character-entities-html4": "^2.0.0", - "character-entities-legacy": "^3.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "license": "BSD-2-Clause", - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strip-outer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", - "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^1.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/style-to-object": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", - "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", - "license": "MIT", - "dependencies": { - "inline-style-parser": "0.2.4" - } - }, - "node_modules/stylehacks": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", - "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", - "license": "MIT", - "dependencies": { - "browserslist": "^4.23.0", - "postcss-selector-parser": "^6.0.16" - }, - "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/stylehacks/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==", - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/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==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", - "license": "MIT" - }, - "node_modules/svgo": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", - "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", - "license": "MIT", - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^5.1.0", - "css-tree": "^2.3.1", - "css-what": "^6.1.0", - "csso": "^5.0.5", - "picocolors": "^1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/svgo" - } - }, - "node_modules/svgo/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/tar-fs": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.8.tgz", - "integrity": "sha512-ZoROL70jptorGAlgAYiLoBLItEKw/fUxg9BSYK/dF/GAGYFJOJJJMvjPAKDJraCXFwadD456FCuvLWgfhMsPwg==", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0", - "tar-stream": "^3.1.5" - }, - "optionalDependencies": { - "bare-fs": "^4.0.1", - "bare-path": "^3.0.0" - } - }, - "node_modules/tar-stream": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", - "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", - "license": "MIT", - "dependencies": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, - "node_modules/terser": { - "version": "5.37.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.37.0.tgz", - "integrity": "sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==", - "license": "BSD-2-Clause", - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.11", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", - "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "jest-worker": "^27.4.5", - "schema-utils": "^4.3.0", - "serialize-javascript": "^6.0.2", - "terser": "^5.31.1" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "license": "MIT" - }, - "node_modules/text-decoder": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", - "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", - "license": "Apache-2.0", - "dependencies": { - "b4a": "^1.6.4" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "license": "MIT" - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "license": "MIT" - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "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/tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", - "license": "MIT" - }, - "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==", - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/totalist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", - "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/trim-repeated": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", - "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^1.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/trough": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", - "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "license": "MIT", - "engines": { - "node": ">=0.6.11 <=0.7.0 || >=0.7.3" - } - }, - "node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typed-query-selector": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", - "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==", - "license": "MIT" - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", - "license": "Apache-2.0", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/unbzip2-stream": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", - "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", - "license": "MIT", - "dependencies": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "node_modules/undici": { - "version": "5.28.4", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", - "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", - "license": "MIT", - "dependencies": { - "@fastify/busboy": "^2.0.0" - }, - "engines": { - "node": ">=14.0" - } - }, - "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "license": "MIT" - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", - "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-emoji-modifier-base": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", - "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "license": "MIT", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", - "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unified": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", - "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unified/node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/unique-string": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", - "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", - "license": "MIT", - "dependencies": { - "crypto-random-string": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", - "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-position-from-estree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", - "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "license": "MIT", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", - "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/update-notifier": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", - "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", - "license": "BSD-2-Clause", - "dependencies": { - "boxen": "^7.0.0", - "chalk": "^5.0.1", - "configstore": "^6.0.0", - "has-yarn": "^3.0.0", - "import-lazy": "^4.0.0", - "is-ci": "^3.0.1", - "is-installed-globally": "^0.4.0", - "is-npm": "^6.0.0", - "is-yarn-global": "^0.4.0", - "latest-version": "^7.0.0", - "pupa": "^3.1.0", - "semver": "^7.3.7", - "semver-diff": "^4.0.0", - "xdg-basedir": "^5.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/boxen": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", - "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", - "license": "MIT", - "dependencies": { - "ansi-align": "^3.0.1", - "camelcase": "^7.0.1", - "chalk": "^5.2.0", - "cli-boxes": "^3.0.0", - "string-width": "^5.1.2", - "type-fest": "^2.13.0", - "widest-line": "^4.0.1", - "wrap-ansi": "^8.1.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/update-notifier/node_modules/camelcase": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", - "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/update-notifier/node_modules/chalk": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", - "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "license": "MIT" - }, - "node_modules/update-notifier/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/update-notifier/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/update-notifier/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-loader": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", - "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", - "license": "MIT", - "dependencies": { - "loader-utils": "^2.0.0", - "mime-types": "^2.1.27", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "file-loader": "*", - "webpack": "^4.0.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "file-loader": { - "optional": true - } - } - }, - "node_modules/url-loader/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT" - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", - "license": "MIT" - }, - "node_modules/utility-types": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", - "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/value-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==", - "license": "MIT" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-location": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", - "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/watchpack": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", - "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", - "license": "MIT", - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "license": "MIT", - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/web-namespaces": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", - "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/webpack": { - "version": "5.97.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz", - "integrity": "sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==", - "license": "MIT", - "dependencies": { - "@types/eslint-scope": "^3.7.7", - "@types/estree": "^1.0.6", - "@webassemblyjs/ast": "^1.14.1", - "@webassemblyjs/wasm-edit": "^1.14.1", - "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.14.0", - "browserslist": "^4.24.0", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.1", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-bundle-analyzer": { - "version": "4.10.2", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz", - "integrity": "sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==", - "license": "MIT", - "dependencies": { - "@discoveryjs/json-ext": "0.5.7", - "acorn": "^8.0.4", - "acorn-walk": "^8.0.0", - "commander": "^7.2.0", - "debounce": "^1.2.1", - "escape-string-regexp": "^4.0.0", - "gzip-size": "^6.0.0", - "html-escaper": "^2.0.2", - "opener": "^1.5.2", - "picocolors": "^1.0.0", - "sirv": "^2.0.3", - "ws": "^7.3.1" - }, - "bin": { - "webpack-bundle-analyzer": "lib/bin/analyzer.js" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/webpack-bundle-analyzer/node_modules/ws": { - "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/webpack-dev-middleware": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", - "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", - "license": "MIT", - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-server": { - "version": "4.15.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", - "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", - "license": "MIT", - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.4", - "ws": "^8.13.0" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - }, - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", - "license": "MIT", - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpackbar": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-6.0.1.tgz", - "integrity": "sha512-TnErZpmuKdwWBdMoexjio3KKX6ZtoKHRVvLIU0A47R0VVBDtx3ZyOJDktgYixhoJokZTYTt1Z37OkO9pnGJa9Q==", - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.3.2", - "chalk": "^4.1.2", - "consola": "^3.2.3", - "figures": "^3.2.0", - "markdown-table": "^2.0.0", - "pretty-time": "^1.1.0", - "std-env": "^3.7.0", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=14.21.3" - }, - "peerDependencies": { - "webpack": "3 || 4 || 5" - } - }, - "node_modules/webpackbar/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/webpackbar/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "license": "Apache-2.0", - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "license": "Apache-2.0", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/widest-line": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", - "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", - "license": "MIT", - "dependencies": { - "string-width": "^5.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/widest-line/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/widest-line/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "license": "MIT" - }, - "node_modules/widest-line/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/widest-line/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "license": "MIT" - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "license": "MIT" - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "license": "MIT", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xdg-basedir": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", - "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/xml-js": { - "version": "1.6.11", - "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", - "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", - "license": "MIT", - "dependencies": { - "sax": "^1.2.4" - }, - "bin": { - "xml-js": "bin/cli.js" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "license": "ISC" - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "license": "ISC", - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "license": "MIT", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zod": { - "version": "3.23.8", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", - "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, - "node_modules/zwitch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - } - } -} diff --git a/yarn.lock b/yarn.lock index f4daff9ea..64ecaaf73 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4,7 +4,7 @@ "@actions/core@^1.10.1": version "1.11.1" - resolved "https://registry.npmjs.org/@actions/core/-/core-1.11.1.tgz" + resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.11.1.tgz#ae683aac5112438021588030efb53b1adb86f172" integrity sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A== dependencies: "@actions/exec" "^1.1.1" @@ -12,14 +12,14 @@ "@actions/exec@^1.1.1": version "1.1.1" - resolved "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/@actions/exec/-/exec-1.1.1.tgz#2e43f28c54022537172819a7cf886c844221a611" integrity sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w== dependencies: "@actions/io" "^1.0.1" "@actions/http-client@^2.0.1": version "2.2.3" - resolved "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.3.tgz" + resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.2.3.tgz#31fc0b25c0e665754ed39a9f19a8611fc6dab674" integrity sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA== dependencies: tunnel "^0.0.6" @@ -27,255 +27,255 @@ "@actions/io@^1.0.1": version "1.1.3" - resolved "https://registry.npmjs.org/@actions/io/-/io-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/@actions/io/-/io-1.1.3.tgz#4cdb6254da7962b07473ff5c335f3da485d94d71" integrity sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q== -"@algolia/autocomplete-core@1.17.7": - version "1.17.7" - resolved "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.7.tgz" - integrity sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q== - dependencies: - "@algolia/autocomplete-plugin-algolia-insights" "1.17.7" - "@algolia/autocomplete-shared" "1.17.7" - -"@algolia/autocomplete-plugin-algolia-insights@1.17.7": - version "1.17.7" - resolved "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.7.tgz" - integrity sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A== - dependencies: - "@algolia/autocomplete-shared" "1.17.7" - -"@algolia/autocomplete-preset-algolia@1.17.7": - version "1.17.7" - resolved "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.7.tgz" - integrity sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA== - dependencies: - "@algolia/autocomplete-shared" "1.17.7" - -"@algolia/autocomplete-shared@1.17.7": - version "1.17.7" - resolved "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.7.tgz" - integrity sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg== - -"@algolia/client-abtesting@5.19.0": - version "5.19.0" - resolved "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.19.0.tgz" - integrity sha512-dMHwy2+nBL0SnIsC1iHvkBao64h4z+roGelOz11cxrDBrAdASxLxmfVMop8gmodQ2yZSacX0Rzevtxa+9SqxCw== - dependencies: - "@algolia/client-common" "5.19.0" - "@algolia/requester-browser-xhr" "5.19.0" - "@algolia/requester-fetch" "5.19.0" - "@algolia/requester-node-http" "5.19.0" - -"@algolia/client-analytics@5.19.0": - version "5.19.0" - resolved "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.19.0.tgz" - integrity sha512-CDW4RwnCHzU10upPJqS6N6YwDpDHno7w6/qXT9KPbPbt8szIIzCHrva4O9KIfx1OhdsHzfGSI5hMAiOOYl4DEQ== - dependencies: - "@algolia/client-common" "5.19.0" - "@algolia/requester-browser-xhr" "5.19.0" - "@algolia/requester-fetch" "5.19.0" - "@algolia/requester-node-http" "5.19.0" - -"@algolia/client-common@5.19.0": - version "5.19.0" - resolved "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.19.0.tgz" - integrity sha512-2ERRbICHXvtj5kfFpY5r8qu9pJII/NAHsdgUXnUitQFwPdPL7wXiupcvZJC7DSntOnE8AE0lM7oDsPhrJfj5nQ== - -"@algolia/client-insights@5.19.0": - version "5.19.0" - resolved "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.19.0.tgz" - integrity sha512-xPOiGjo6I9mfjdJO7Y+p035aWePcbsItizIp+qVyfkfZiGgD+TbNxM12g7QhFAHIkx/mlYaocxPY/TmwPzTe+A== - dependencies: - "@algolia/client-common" "5.19.0" - "@algolia/requester-browser-xhr" "5.19.0" - "@algolia/requester-fetch" "5.19.0" - "@algolia/requester-node-http" "5.19.0" - -"@algolia/client-personalization@5.19.0": - version "5.19.0" - resolved "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.19.0.tgz" - integrity sha512-B9eoce/fk8NLboGje+pMr72pw+PV7c5Z01On477heTZ7jkxoZ4X92dobeGuEQop61cJ93Gaevd1of4mBr4hu2A== - dependencies: - "@algolia/client-common" "5.19.0" - "@algolia/requester-browser-xhr" "5.19.0" - "@algolia/requester-fetch" "5.19.0" - "@algolia/requester-node-http" "5.19.0" - -"@algolia/client-query-suggestions@5.19.0": - version "5.19.0" - resolved "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.19.0.tgz" - integrity sha512-6fcP8d4S8XRDtVogrDvmSM6g5g6DndLc0pEm1GCKe9/ZkAzCmM3ZmW1wFYYPxdjMeifWy1vVEDMJK7sbE4W7MA== - dependencies: - "@algolia/client-common" "5.19.0" - "@algolia/requester-browser-xhr" "5.19.0" - "@algolia/requester-fetch" "5.19.0" - "@algolia/requester-node-http" "5.19.0" - -"@algolia/client-search@>= 4.9.1 < 6", "@algolia/client-search@5.19.0": - version "5.19.0" - resolved "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.19.0.tgz" - integrity sha512-Ctg3xXD/1VtcwmkulR5+cKGOMj4r0wC49Y/KZdGQcqpydKn+e86F6l3tb3utLJQVq4lpEJud6kdRykFgcNsp8Q== - dependencies: - "@algolia/client-common" "5.19.0" - "@algolia/requester-browser-xhr" "5.19.0" - "@algolia/requester-fetch" "5.19.0" - "@algolia/requester-node-http" "5.19.0" +"@algolia/autocomplete-core@1.17.9": + version "1.17.9" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.17.9.tgz#83374c47dc72482aa45d6b953e89377047f0dcdc" + integrity sha512-O7BxrpLDPJWWHv/DLA9DRFWs+iY1uOJZkqUwjS5HSZAGcl0hIVCQ97LTLewiZmZ402JYUrun+8NqFP+hCknlbQ== + dependencies: + "@algolia/autocomplete-plugin-algolia-insights" "1.17.9" + "@algolia/autocomplete-shared" "1.17.9" + +"@algolia/autocomplete-plugin-algolia-insights@1.17.9": + version "1.17.9" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.9.tgz#74c86024d09d09e8bfa3dd90b844b77d9f9947b6" + integrity sha512-u1fEHkCbWF92DBeB/KHeMacsjsoI0wFhjZtlCq2ddZbAehshbZST6Hs0Avkc0s+4UyBGbMDnSuXHLuvRWK5iDQ== + dependencies: + "@algolia/autocomplete-shared" "1.17.9" + +"@algolia/autocomplete-preset-algolia@1.17.9": + version "1.17.9" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.9.tgz#911f3250544eb8ea4096fcfb268f156b085321b5" + integrity sha512-Na1OuceSJeg8j7ZWn5ssMu/Ax3amtOwk76u4h5J4eK2Nx2KB5qt0Z4cOapCsxot9VcEN11ADV5aUSlQF4RhGjQ== + dependencies: + "@algolia/autocomplete-shared" "1.17.9" + +"@algolia/autocomplete-shared@1.17.9": + version "1.17.9" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.9.tgz#5f38868f7cb1d54b014b17a10fc4f7e79d427fa8" + integrity sha512-iDf05JDQ7I0b7JEA/9IektxN/80a2MZ1ToohfmNS3rfeuQnIKI3IJlIafD0xu4StbtQTghx9T3Maa97ytkXenQ== + +"@algolia/client-abtesting@5.23.4": + version "5.23.4" + resolved "https://registry.yarnpkg.com/@algolia/client-abtesting/-/client-abtesting-5.23.4.tgz#de89e757ca26e003dc4dbd7e7fac35c3071caaa4" + integrity sha512-WIMT2Kxy+FFWXWQxIU8QgbTioL+SGE24zhpj0kipG4uQbzXwONaWt7ffaYLjfge3gcGSgJVv+1VlahVckafluQ== + dependencies: + "@algolia/client-common" "5.23.4" + "@algolia/requester-browser-xhr" "5.23.4" + "@algolia/requester-fetch" "5.23.4" + "@algolia/requester-node-http" "5.23.4" + +"@algolia/client-analytics@5.23.4": + version "5.23.4" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-5.23.4.tgz#4a918a775db1c596773a34414f9d4203a50b4291" + integrity sha512-4B9gChENsQA9kFmFlb+x3YhBz2Gx3vSsm81FHI1yJ3fn2zlxREHmfrjyqYoMunsU7BybT/o5Nb7ccCbm/vfseA== + dependencies: + "@algolia/client-common" "5.23.4" + "@algolia/requester-browser-xhr" "5.23.4" + "@algolia/requester-fetch" "5.23.4" + "@algolia/requester-node-http" "5.23.4" + +"@algolia/client-common@5.23.4": + version "5.23.4" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-5.23.4.tgz#651506d080fd1feda1175c89ffb83fd7a2af20c2" + integrity sha512-bsj0lwU2ytiWLtl7sPunr+oLe+0YJql9FozJln5BnIiqfKOaseSDdV42060vUy+D4373f2XBI009K/rm2IXYMA== + +"@algolia/client-insights@5.23.4": + version "5.23.4" + resolved "https://registry.yarnpkg.com/@algolia/client-insights/-/client-insights-5.23.4.tgz#a901e2dda6a7a8e6d8879b66e5776d22d1e95a04" + integrity sha512-XSCtAYvJ/hnfDHfRVMbBH0dayR+2ofVZy3jf5qyifjguC6rwxDsSdQvXpT0QFVyG+h8UPGtDhMPoUIng4wIcZA== + dependencies: + "@algolia/client-common" "5.23.4" + "@algolia/requester-browser-xhr" "5.23.4" + "@algolia/requester-fetch" "5.23.4" + "@algolia/requester-node-http" "5.23.4" + +"@algolia/client-personalization@5.23.4": + version "5.23.4" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-5.23.4.tgz#d236f3ef648976307ca119899ad1459d40db93a6" + integrity sha512-l/0QvqgRFFOf7BnKSJ3myd1WbDr86ftVaa3PQwlsNh7IpIHmvVcT83Bi5zlORozVGMwaKfyPZo6O48PZELsOeA== + dependencies: + "@algolia/client-common" "5.23.4" + "@algolia/requester-browser-xhr" "5.23.4" + "@algolia/requester-fetch" "5.23.4" + "@algolia/requester-node-http" "5.23.4" + +"@algolia/client-query-suggestions@5.23.4": + version "5.23.4" + resolved "https://registry.yarnpkg.com/@algolia/client-query-suggestions/-/client-query-suggestions-5.23.4.tgz#79579f525510bcc3aacc289040d9c2536e65f945" + integrity sha512-TB0htrDgVacVGtPDyENoM6VIeYqR+pMsDovW94dfi2JoaRxfqu/tYmLpvgWcOknP6wLbr8bA+G7t/NiGksNAwQ== + dependencies: + "@algolia/client-common" "5.23.4" + "@algolia/requester-browser-xhr" "5.23.4" + "@algolia/requester-fetch" "5.23.4" + "@algolia/requester-node-http" "5.23.4" + +"@algolia/client-search@5.23.4": + version "5.23.4" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-5.23.4.tgz#7906ab4b704edd1ba2ac39100bf37e0279b4ebdc" + integrity sha512-uBGo6KwUP6z+u6HZWRui8UJClS7fgUIAiYd1prUqCbkzDiCngTOzxaJbEvrdkK0hGCQtnPDiuNhC5MhtVNN4Eg== + dependencies: + "@algolia/client-common" "5.23.4" + "@algolia/requester-browser-xhr" "5.23.4" + "@algolia/requester-fetch" "5.23.4" + "@algolia/requester-node-http" "5.23.4" "@algolia/events@^4.0.1": version "4.0.1" - resolved "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/@algolia/events/-/events-4.0.1.tgz#fd39e7477e7bc703d7f893b556f676c032af3950" integrity sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ== -"@algolia/ingestion@1.19.0": - version "1.19.0" - resolved "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.19.0.tgz" - integrity sha512-LO7w1MDV+ZLESwfPmXkp+KLeYeFrYEgtbCZG6buWjddhYraPQ9MuQWLhLLiaMlKxZ/sZvFTcZYuyI6Jx4WBhcg== +"@algolia/ingestion@1.23.4": + version "1.23.4" + resolved "https://registry.yarnpkg.com/@algolia/ingestion/-/ingestion-1.23.4.tgz#f542907b13e7bb97dede32101cb86ce7e8482318" + integrity sha512-Si6rFuGnSeEUPU9QchYvbknvEIyCRK7nkeaPVQdZpABU7m4V/tsiWdHmjVodtx3h20VZivJdHeQO9XbHxBOcCw== dependencies: - "@algolia/client-common" "5.19.0" - "@algolia/requester-browser-xhr" "5.19.0" - "@algolia/requester-fetch" "5.19.0" - "@algolia/requester-node-http" "5.19.0" + "@algolia/client-common" "5.23.4" + "@algolia/requester-browser-xhr" "5.23.4" + "@algolia/requester-fetch" "5.23.4" + "@algolia/requester-node-http" "5.23.4" -"@algolia/monitoring@1.19.0": - version "1.19.0" - resolved "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.19.0.tgz" - integrity sha512-Mg4uoS0aIKeTpu6iv6O0Hj81s8UHagi5TLm9k2mLIib4vmMtX7WgIAHAcFIaqIZp5D6s5EVy1BaDOoZ7buuJHA== +"@algolia/monitoring@1.23.4": + version "1.23.4" + resolved "https://registry.yarnpkg.com/@algolia/monitoring/-/monitoring-1.23.4.tgz#be169ebdb56f3636c1428f4f20fb33c79d09160a" + integrity sha512-EXGoVVTshraqPJgr5cMd1fq7Jm71Ew6MpGCEaxI5PErBpJAmKdtjRIzs6JOGKHRaWLi+jdbJPYc2y8RN4qcx5Q== dependencies: - "@algolia/client-common" "5.19.0" - "@algolia/requester-browser-xhr" "5.19.0" - "@algolia/requester-fetch" "5.19.0" - "@algolia/requester-node-http" "5.19.0" + "@algolia/client-common" "5.23.4" + "@algolia/requester-browser-xhr" "5.23.4" + "@algolia/requester-fetch" "5.23.4" + "@algolia/requester-node-http" "5.23.4" -"@algolia/recommend@5.19.0": - version "5.19.0" - resolved "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.19.0.tgz" - integrity sha512-PbgrMTbUPlmwfJsxjFhal4XqZO2kpBNRjemLVTkUiti4w/+kzcYO4Hg5zaBgVqPwvFDNQ8JS4SS3TBBem88u+g== +"@algolia/recommend@5.23.4": + version "5.23.4" + resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-5.23.4.tgz#218ca0457d68045632953648b622047e0c57a338" + integrity sha512-1t6glwKVCkjvBNlng2itTf8fwaLSqkL4JaMENgR3WTGR8mmW2akocUy/ZYSQcG4TcR7qu4zW2UMGAwLoWoflgQ== dependencies: - "@algolia/client-common" "5.19.0" - "@algolia/requester-browser-xhr" "5.19.0" - "@algolia/requester-fetch" "5.19.0" - "@algolia/requester-node-http" "5.19.0" + "@algolia/client-common" "5.23.4" + "@algolia/requester-browser-xhr" "5.23.4" + "@algolia/requester-fetch" "5.23.4" + "@algolia/requester-node-http" "5.23.4" -"@algolia/requester-browser-xhr@5.19.0": - version "5.19.0" - resolved "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.19.0.tgz" - integrity sha512-GfnhnQBT23mW/VMNs7m1qyEyZzhZz093aY2x8p0era96MMyNv8+FxGek5pjVX0b57tmSCZPf4EqNCpkGcGsmbw== +"@algolia/requester-browser-xhr@5.23.4": + version "5.23.4" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.23.4.tgz#ee8c88094e904511024e3ba7749b85a85f8d31bd" + integrity sha512-UUuizcgc5+VSY8hqzDFVdJ3Wcto03lpbFRGPgW12pHTlUQHUTADtIpIhkLLOZRCjXmCVhtr97Z+eR6LcRYXa3Q== dependencies: - "@algolia/client-common" "5.19.0" + "@algolia/client-common" "5.23.4" -"@algolia/requester-fetch@5.19.0": - version "5.19.0" - resolved "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.19.0.tgz" - integrity sha512-oyTt8ZJ4T4fYvW5avAnuEc6Laedcme9fAFryMD9ndUTIUe/P0kn3BuGcCLFjN3FDmdrETHSFkgPPf1hGy3sLCw== +"@algolia/requester-fetch@5.23.4": + version "5.23.4" + resolved "https://registry.yarnpkg.com/@algolia/requester-fetch/-/requester-fetch-5.23.4.tgz#138dab9f52771cdb90c64dabb01d1fec3614446b" + integrity sha512-UhDg6elsek6NnV5z4VG1qMwR6vbp+rTMBEnl/v4hUyXQazU+CNdYkl++cpdmLwGI/7nXc28xtZiL90Es3I7viQ== dependencies: - "@algolia/client-common" "5.19.0" + "@algolia/client-common" "5.23.4" -"@algolia/requester-node-http@5.19.0": - version "5.19.0" - resolved "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.19.0.tgz" - integrity sha512-p6t8ue0XZNjcRiqNkb5QAM0qQRAKsCiebZ6n9JjWA+p8fWf8BvnhO55y2fO28g3GW0Imj7PrAuyBuxq8aDVQwQ== +"@algolia/requester-node-http@5.23.4": + version "5.23.4" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-5.23.4.tgz#8cc9439ef2f21f04cbea7ddeef712aa2b3d18f62" + integrity sha512-jXGzGBRUS0oywQwnaCA6mMDJO7LoC3dYSLsyNfIqxDR4SNGLhtg3je0Y31lc24OA4nYyKAYgVLtjfrpcpsWShg== dependencies: - "@algolia/client-common" "5.19.0" + "@algolia/client-common" "5.23.4" "@ampproject/remapping@^2.2.0": version "2.3.0" - resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== dependencies: "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.24" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.25.9", "@babel/code-frame@^7.26.0", "@babel/code-frame@^7.26.2", "@babel/code-frame@^7.8.3": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.26.2", "@babel/code-frame@^7.8.3": version "7.26.2" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85" integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== dependencies: "@babel/helper-validator-identifier" "^7.25.9" js-tokens "^4.0.0" picocolors "^1.0.0" -"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.26.0", "@babel/compat-data@^7.26.5": - version "7.26.5" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz" - integrity sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg== +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.26.8": + version "7.26.8" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.8.tgz#821c1d35641c355284d4a870b8a4a7b0c141e367" + integrity sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ== -"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.0.0-0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.21.3", "@babel/core@^7.25.9", "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0": - version "7.26.0" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz" - integrity sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg== +"@babel/core@^7.21.3", "@babel/core@^7.25.9": + version "7.26.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.10.tgz#5c876f83c8c4dcb233ee4b670c0606f2ac3000f9" + integrity sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.26.0" - "@babel/generator" "^7.26.0" - "@babel/helper-compilation-targets" "^7.25.9" + "@babel/code-frame" "^7.26.2" + "@babel/generator" "^7.26.10" + "@babel/helper-compilation-targets" "^7.26.5" "@babel/helper-module-transforms" "^7.26.0" - "@babel/helpers" "^7.26.0" - "@babel/parser" "^7.26.0" - "@babel/template" "^7.25.9" - "@babel/traverse" "^7.25.9" - "@babel/types" "^7.26.0" + "@babel/helpers" "^7.26.10" + "@babel/parser" "^7.26.10" + "@babel/template" "^7.26.9" + "@babel/traverse" "^7.26.10" + "@babel/types" "^7.26.10" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.25.9", "@babel/generator@^7.26.0", "@babel/generator@^7.26.5": - version "7.26.5" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz" - integrity sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw== +"@babel/generator@^7.25.9", "@babel/generator@^7.26.10", "@babel/generator@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.0.tgz#764382b5392e5b9aff93cadb190d0745866cbc2c" + integrity sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw== dependencies: - "@babel/parser" "^7.26.5" - "@babel/types" "^7.26.5" + "@babel/parser" "^7.27.0" + "@babel/types" "^7.27.0" "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.25" jsesc "^3.0.2" "@babel/helper-annotate-as-pure@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz#d8eac4d2dc0d7b6e11fa6e535332e0d3184f06b4" integrity sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g== dependencies: "@babel/types" "^7.25.9" -"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.25.9": - version "7.26.5" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz" - integrity sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA== +"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.25.9", "@babel/helper-compilation-targets@^7.26.5": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz#de0c753b1cd1d9ab55d473c5a5cf7170f0a81880" + integrity sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA== dependencies: - "@babel/compat-data" "^7.26.5" + "@babel/compat-data" "^7.26.8" "@babel/helper-validator-option" "^7.25.9" browserslist "^4.24.0" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.25.9": - version "7.25.9" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz" - integrity sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ== +"@babel/helper-create-class-features-plugin@^7.25.9", "@babel/helper-create-class-features-plugin@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.0.tgz#518fad6a307c6a96f44af14912b2c20abe9bfc30" + integrity sha512-vSGCvMecvFCd/BdpGlhpXYNhhC4ccxyvQWpbGL4CWbvfEoLFWUZuSuf7s9Aw70flgQF+6vptvgK2IfOnKlRmBg== dependencies: "@babel/helper-annotate-as-pure" "^7.25.9" "@babel/helper-member-expression-to-functions" "^7.25.9" "@babel/helper-optimise-call-expression" "^7.25.9" - "@babel/helper-replace-supers" "^7.25.9" + "@babel/helper-replace-supers" "^7.26.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" - "@babel/traverse" "^7.25.9" + "@babel/traverse" "^7.27.0" semver "^6.3.1" "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.25.9": - version "7.26.3" - resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz" - integrity sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong== + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.0.tgz#0e41f7d38c2ebe06ebd9cf0e02fb26019c77cd95" + integrity sha512-fO8l08T76v48BhpNRW/nQ0MxfnSdoSKUJBMjubOAYffsVuGG5qOfMq7N6Es7UJvi7Y8goXXo07EfcHZXDPuELQ== dependencies: "@babel/helper-annotate-as-pure" "^7.25.9" regexpu-core "^6.2.0" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.6.2", "@babel/helper-define-polyfill-provider@^0.6.3": - version "0.6.3" - resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz" - integrity sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg== +"@babel/helper-define-polyfill-provider@^0.6.3", "@babel/helper-define-polyfill-provider@^0.6.4": + version "0.6.4" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz#15e8746368bfa671785f5926ff74b3064c291fab" + integrity sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw== dependencies: "@babel/helper-compilation-targets" "^7.22.6" "@babel/helper-plugin-utils" "^7.22.5" @@ -285,7 +285,7 @@ "@babel/helper-member-expression-to-functions@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz#9dfffe46f727005a5ea29051ac835fb735e4c1a3" integrity sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ== dependencies: "@babel/traverse" "^7.25.9" @@ -293,7 +293,7 @@ "@babel/helper-module-imports@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz#e7f8d20602ebdbf9ebbea0a0751fb0f2a4141715" integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw== dependencies: "@babel/traverse" "^7.25.9" @@ -301,7 +301,7 @@ "@babel/helper-module-transforms@^7.25.9", "@babel/helper-module-transforms@^7.26.0": version "7.26.0" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz#8ce54ec9d592695e58d84cd884b7b5c6a2fdeeae" integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw== dependencies: "@babel/helper-module-imports" "^7.25.9" @@ -310,28 +310,28 @@ "@babel/helper-optimise-call-expression@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz#3324ae50bae7e2ab3c33f60c9a877b6a0146b54e" integrity sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ== dependencies: "@babel/types" "^7.25.9" "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.25.9", "@babel/helper-plugin-utils@^7.26.5", "@babel/helper-plugin-utils@^7.8.0": version "7.26.5" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz#18580d00c9934117ad719392c4f6585c9333cc35" integrity sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg== "@babel/helper-remap-async-to-generator@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz#e53956ab3d5b9fb88be04b3e2f31b523afd34b92" integrity sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw== dependencies: "@babel/helper-annotate-as-pure" "^7.25.9" "@babel/helper-wrap-function" "^7.25.9" "@babel/traverse" "^7.25.9" -"@babel/helper-replace-supers@^7.25.9": +"@babel/helper-replace-supers@^7.25.9", "@babel/helper-replace-supers@^7.26.5": version "7.26.5" - resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz#6cb04e82ae291dae8e72335dfe438b0725f14c8d" integrity sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg== dependencies: "@babel/helper-member-expression-to-functions" "^7.25.9" @@ -340,7 +340,7 @@ "@babel/helper-skip-transparent-expression-wrappers@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz#0b2e1b62d560d6b1954893fd2b705dc17c91f0c9" integrity sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA== dependencies: "@babel/traverse" "^7.25.9" @@ -348,46 +348,46 @@ "@babel/helper-string-parser@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c" integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== "@babel/helper-validator-identifier@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== "@babel/helper-validator-option@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz#86e45bd8a49ab7e03f276577f96179653d41da72" integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw== "@babel/helper-wrap-function@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz#d99dfd595312e6c894bd7d237470025c85eea9d0" integrity sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g== dependencies: "@babel/template" "^7.25.9" "@babel/traverse" "^7.25.9" "@babel/types" "^7.25.9" -"@babel/helpers@^7.26.0": - version "7.26.0" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz" - integrity sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw== +"@babel/helpers@^7.26.10": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.0.tgz#53d156098defa8243eab0f32fa17589075a1b808" + integrity sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg== dependencies: - "@babel/template" "^7.25.9" - "@babel/types" "^7.26.0" + "@babel/template" "^7.27.0" + "@babel/types" "^7.27.0" -"@babel/parser@^7.25.9", "@babel/parser@^7.26.0", "@babel/parser@^7.26.5": - version "7.26.5" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz" - integrity sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw== +"@babel/parser@^7.26.10", "@babel/parser@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.0.tgz#3d7d6ee268e41d2600091cbd4e145ffee85a44ec" + integrity sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg== dependencies: - "@babel/types" "^7.26.5" + "@babel/types" "^7.27.0" "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz#cc2e53ebf0a0340777fff5ed521943e253b4d8fe" integrity sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g== dependencies: "@babel/helper-plugin-utils" "^7.25.9" @@ -395,21 +395,21 @@ "@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz#af9e4fb63ccb8abcb92375b2fcfe36b60c774d30" integrity sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw== dependencies: "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz#e8dc26fcd616e6c5bf2bd0d5a2c151d4f92a9137" integrity sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug== dependencies: "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz#807a667f9158acac6f6164b4beb85ad9ebc9e1d1" integrity sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g== dependencies: "@babel/helper-plugin-utils" "^7.25.9" @@ -418,7 +418,7 @@ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz#de7093f1e7deaf68eadd7cc6b07f2ab82543269e" integrity sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg== dependencies: "@babel/helper-plugin-utils" "^7.25.9" @@ -426,47 +426,47 @@ "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": version "7.21.0-placeholder-for-preset-env.2" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-import-assertions@^7.26.0": version "7.26.0" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz#620412405058efa56e4a564903b79355020f445f" integrity sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg== dependencies: "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-syntax-import-attributes@^7.26.0": version "7.26.0" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz#3b1412847699eea739b4f2602c74ce36f6b0b0f7" integrity sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A== dependencies: "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-syntax-jsx@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz#a34313a178ea56f1951599b929c1ceacee719290" integrity sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA== dependencies: "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-syntax-typescript@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz#67dda2b74da43727cf21d46cf9afef23f4365399" integrity sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ== dependencies: "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.18.6" @@ -474,46 +474,46 @@ "@babel/plugin-transform-arrow-functions@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz#7821d4410bee5daaadbb4cdd9a6649704e176845" integrity sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg== dependencies: "@babel/helper-plugin-utils" "^7.25.9" -"@babel/plugin-transform-async-generator-functions@^7.25.9": - version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz" - integrity sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw== +"@babel/plugin-transform-async-generator-functions@^7.26.8": + version "7.26.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.26.8.tgz#5e3991135e3b9c6eaaf5eff56d1ae5a11df45ff8" + integrity sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.26.5" "@babel/helper-remap-async-to-generator" "^7.25.9" - "@babel/traverse" "^7.25.9" + "@babel/traverse" "^7.26.8" "@babel/plugin-transform-async-to-generator@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz#c80008dacae51482793e5a9c08b39a5be7e12d71" integrity sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ== dependencies: "@babel/helper-module-imports" "^7.25.9" "@babel/helper-plugin-utils" "^7.25.9" "@babel/helper-remap-async-to-generator" "^7.25.9" -"@babel/plugin-transform-block-scoped-functions@^7.25.9": +"@babel/plugin-transform-block-scoped-functions@^7.26.5": version "7.26.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz#3dc4405d31ad1cbe45293aa57205a6e3b009d53e" integrity sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ== dependencies: "@babel/helper-plugin-utils" "^7.26.5" "@babel/plugin-transform-block-scoping@^7.25.9": - version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz" - integrity sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg== + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.0.tgz#acc2c0d98a7439bbde4244588ddbd4904701d47f" + integrity sha512-u1jGphZ8uDI2Pj/HJj6YQ6XQLZCNjOlprjxB5SVz6rq2T6SwAR+CdrWK0CP7F+9rDVMXdB0+r6Am5G5aobOjAQ== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.26.5" "@babel/plugin-transform-class-properties@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz#a8ce84fedb9ad512549984101fa84080a9f5f51f" integrity sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q== dependencies: "@babel/helper-create-class-features-plugin" "^7.25.9" @@ -521,7 +521,7 @@ "@babel/plugin-transform-class-static-block@^7.26.0": version "7.26.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz#6c8da219f4eb15cae9834ec4348ff8e9e09664a0" integrity sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ== dependencies: "@babel/helper-create-class-features-plugin" "^7.25.9" @@ -529,7 +529,7 @@ "@babel/plugin-transform-classes@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz#7152457f7880b593a63ade8a861e6e26a4469f52" integrity sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg== dependencies: "@babel/helper-annotate-as-pure" "^7.25.9" @@ -541,7 +541,7 @@ "@babel/plugin-transform-computed-properties@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz#db36492c78460e534b8852b1d5befe3c923ef10b" integrity sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA== dependencies: "@babel/helper-plugin-utils" "^7.25.9" @@ -549,14 +549,14 @@ "@babel/plugin-transform-destructuring@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz#966ea2595c498224340883602d3cfd7a0c79cea1" integrity sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ== dependencies: "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-transform-dotall-regex@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz#bad7945dd07734ca52fe3ad4e872b40ed09bb09a" integrity sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.25.9" @@ -564,14 +564,14 @@ "@babel/plugin-transform-duplicate-keys@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz#8850ddf57dce2aebb4394bb434a7598031059e6d" integrity sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw== dependencies: "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz#6f7259b4de127721a08f1e5165b852fcaa696d31" integrity sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.25.9" @@ -579,36 +579,36 @@ "@babel/plugin-transform-dynamic-import@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz#23e917de63ed23c6600c5dd06d94669dce79f7b8" integrity sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg== dependencies: "@babel/helper-plugin-utils" "^7.25.9" -"@babel/plugin-transform-exponentiation-operator@^7.25.9": +"@babel/plugin-transform-exponentiation-operator@^7.26.3": version "7.26.3" - resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz#e29f01b6de302c7c2c794277a48f04a9ca7f03bc" integrity sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ== dependencies: "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-transform-export-namespace-from@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz#90745fe55053394f554e40584cda81f2c8a402a2" integrity sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww== dependencies: "@babel/helper-plugin-utils" "^7.25.9" -"@babel/plugin-transform-for-of@^7.25.9": - version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz" - integrity sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A== +"@babel/plugin-transform-for-of@^7.26.9": + version "7.26.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.26.9.tgz#27231f79d5170ef33b5111f07fe5cafeb2c96a56" + integrity sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.26.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" "@babel/plugin-transform-function-name@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz#939d956e68a606661005bfd550c4fc2ef95f7b97" integrity sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA== dependencies: "@babel/helper-compilation-targets" "^7.25.9" @@ -617,43 +617,43 @@ "@babel/plugin-transform-json-strings@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz#c86db407cb827cded902a90c707d2781aaa89660" integrity sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw== dependencies: "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-transform-literals@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz#1a1c6b4d4aa59bc4cad5b6b3a223a0abd685c9de" integrity sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ== dependencies: "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-transform-logical-assignment-operators@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz#b19441a8c39a2fda0902900b306ea05ae1055db7" integrity sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q== dependencies: "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-transform-member-expression-literals@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz#63dff19763ea64a31f5e6c20957e6a25e41ed5de" integrity sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA== dependencies: "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-transform-modules-amd@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz#49ba478f2295101544abd794486cd3088dddb6c5" integrity sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw== dependencies: "@babel/helper-module-transforms" "^7.25.9" "@babel/helper-plugin-utils" "^7.25.9" -"@babel/plugin-transform-modules-commonjs@^7.25.9": +"@babel/plugin-transform-modules-commonjs@^7.26.3": version "7.26.3" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz#8f011d44b20d02c3de44d8850d971d8497f981fb" integrity sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ== dependencies: "@babel/helper-module-transforms" "^7.26.0" @@ -661,7 +661,7 @@ "@babel/plugin-transform-modules-systemjs@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz#8bd1b43836269e3d33307151a114bcf3ba6793f8" integrity sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA== dependencies: "@babel/helper-module-transforms" "^7.25.9" @@ -671,7 +671,7 @@ "@babel/plugin-transform-modules-umd@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz#6710079cdd7c694db36529a1e8411e49fcbf14c9" integrity sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw== dependencies: "@babel/helper-module-transforms" "^7.25.9" @@ -679,7 +679,7 @@ "@babel/plugin-transform-named-capturing-groups-regex@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz#454990ae6cc22fd2a0fa60b3a2c6f63a38064e6a" integrity sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.25.9" @@ -687,28 +687,28 @@ "@babel/plugin-transform-new-target@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz#42e61711294b105c248336dcb04b77054ea8becd" integrity sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ== dependencies: "@babel/helper-plugin-utils" "^7.25.9" -"@babel/plugin-transform-nullish-coalescing-operator@^7.25.9": +"@babel/plugin-transform-nullish-coalescing-operator@^7.26.6": version "7.26.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz#fbf6b3c92cb509e7b319ee46e3da89c5bedd31fe" integrity sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw== dependencies: "@babel/helper-plugin-utils" "^7.26.5" "@babel/plugin-transform-numeric-separator@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz#bfed75866261a8b643468b0ccfd275f2033214a1" integrity sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q== dependencies: "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-transform-object-rest-spread@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz#0203725025074164808bcf1a2cfa90c652c99f18" integrity sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg== dependencies: "@babel/helper-compilation-targets" "^7.25.9" @@ -717,7 +717,7 @@ "@babel/plugin-transform-object-super@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz#385d5de135162933beb4a3d227a2b7e52bb4cf03" integrity sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A== dependencies: "@babel/helper-plugin-utils" "^7.25.9" @@ -725,14 +725,14 @@ "@babel/plugin-transform-optional-catch-binding@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz#10e70d96d52bb1f10c5caaac59ac545ea2ba7ff3" integrity sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g== dependencies: "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-transform-optional-chaining@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz#e142eb899d26ef715435f201ab6e139541eee7dd" integrity sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A== dependencies: "@babel/helper-plugin-utils" "^7.25.9" @@ -740,14 +740,14 @@ "@babel/plugin-transform-parameters@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz#b856842205b3e77e18b7a7a1b94958069c7ba257" integrity sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g== dependencies: "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-transform-private-methods@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz#847f4139263577526455d7d3223cd8bda51e3b57" integrity sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw== dependencies: "@babel/helper-create-class-features-plugin" "^7.25.9" @@ -755,7 +755,7 @@ "@babel/plugin-transform-private-property-in-object@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz#9c8b73e64e6cc3cbb2743633885a7dd2c385fe33" integrity sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw== dependencies: "@babel/helper-annotate-as-pure" "^7.25.9" @@ -764,35 +764,35 @@ "@babel/plugin-transform-property-literals@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz#d72d588bd88b0dec8b62e36f6fda91cedfe28e3f" integrity sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA== dependencies: "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-transform-react-constant-elements@^7.21.3": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.9.tgz#08a1de35a301929b60fdf2788a54b46cd8ecd0ef" integrity sha512-Ncw2JFsJVuvfRsa2lSHiC55kETQVLSnsYGQ1JDDwkUeWGTL/8Tom8aLTnlqgoeuopWrbbGndrc9AlLYrIosrow== dependencies: "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-transform-react-display-name@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz#4b79746b59efa1f38c8695065a92a9f5afb24f7d" integrity sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ== dependencies: "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-transform-react-jsx-development@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz#8fd220a77dd139c07e25225a903b8be8c829e0d7" integrity sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw== dependencies: "@babel/plugin-transform-react-jsx" "^7.25.9" "@babel/plugin-transform-react-jsx@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz#06367940d8325b36edff5e2b9cbe782947ca4166" integrity sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw== dependencies: "@babel/helper-annotate-as-pure" "^7.25.9" @@ -803,23 +803,23 @@ "@babel/plugin-transform-react-pure-annotations@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz#ea1c11b2f9dbb8e2d97025f43a3b5bc47e18ae62" integrity sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg== dependencies: "@babel/helper-annotate-as-pure" "^7.25.9" "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-transform-regenerator@^7.25.9": - version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz" - integrity sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg== + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.0.tgz#822feebef43d6a59a81f696b2512df5b1682db31" + integrity sha512-LX/vCajUJQDqE7Aum/ELUMZAY19+cDpghxrnyt5I1tV6X5PyC86AOoWXWFYFeIvauyeSA6/ktn4tQVn/3ZifsA== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.26.5" regenerator-transform "^0.15.2" "@babel/plugin-transform-regexp-modifiers@^7.26.0": version "7.26.0" - resolved "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz#2f5837a5b5cd3842a919d8147e9903cc7455b850" integrity sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.25.9" @@ -827,33 +827,33 @@ "@babel/plugin-transform-reserved-words@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz#0398aed2f1f10ba3f78a93db219b27ef417fb9ce" integrity sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg== dependencies: "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-transform-runtime@^7.25.9": - version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz" - integrity sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ== + version "7.26.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.26.10.tgz#6b4504233de8238e7d666c15cde681dc62adff87" + integrity sha512-NWaL2qG6HRpONTnj4JvDU6th4jYeZOJgu3QhmFTCihib0ermtOJqktA5BduGm3suhhVe9EMP9c9+mfJ/I9slqw== dependencies: "@babel/helper-module-imports" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.26.5" babel-plugin-polyfill-corejs2 "^0.4.10" - babel-plugin-polyfill-corejs3 "^0.10.6" + babel-plugin-polyfill-corejs3 "^0.11.0" babel-plugin-polyfill-regenerator "^0.6.1" semver "^6.3.1" "@babel/plugin-transform-shorthand-properties@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz#bb785e6091f99f826a95f9894fc16fde61c163f2" integrity sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng== dependencies: "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-transform-spread@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz#24a35153931b4ba3d13cec4a7748c21ab5514ef9" integrity sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A== dependencies: "@babel/helper-plugin-utils" "^7.25.9" @@ -861,46 +861,46 @@ "@babel/plugin-transform-sticky-regex@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz#c7f02b944e986a417817b20ba2c504dfc1453d32" integrity sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA== dependencies: "@babel/helper-plugin-utils" "^7.25.9" -"@babel/plugin-transform-template-literals@^7.25.9": - version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz" - integrity sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw== +"@babel/plugin-transform-template-literals@^7.26.8": + version "7.26.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.26.8.tgz#966b15d153a991172a540a69ad5e1845ced990b5" + integrity sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.26.5" -"@babel/plugin-transform-typeof-symbol@^7.25.9": - version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz" - integrity sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA== +"@babel/plugin-transform-typeof-symbol@^7.26.7": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.0.tgz#044a0890f3ca694207c7826d0c7a65e5ac008aae" + integrity sha512-+LLkxA9rKJpNoGsbLnAgOCdESl73vwYn+V6b+5wHbrE7OGKVDPHIQvbFSzqE6rwqaCw2RE+zdJrlLkcf8YOA0w== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.26.5" -"@babel/plugin-transform-typescript@^7.25.9": - version "7.26.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.5.tgz" - integrity sha512-GJhPO0y8SD5EYVCy2Zr+9dSZcEgaSmq5BLR0Oc25TOEhC+ba49vUAGZFjy8v79z9E1mdldq4x9d1xgh4L1d5dQ== +"@babel/plugin-transform-typescript@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.0.tgz#a29fd3481da85601c7e34091296e9746d2cccba8" + integrity sha512-fRGGjO2UEGPjvEcyAZXRXAS8AfdaQoq7HnxAbJoAoW10B9xOKesmmndJv+Sym2a+9FHWZ9KbyyLCe9s0Sn5jtg== dependencies: "@babel/helper-annotate-as-pure" "^7.25.9" - "@babel/helper-create-class-features-plugin" "^7.25.9" + "@babel/helper-create-class-features-plugin" "^7.27.0" "@babel/helper-plugin-utils" "^7.26.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" "@babel/plugin-syntax-typescript" "^7.25.9" "@babel/plugin-transform-unicode-escapes@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz#a75ef3947ce15363fccaa38e2dd9bc70b2788b82" integrity sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q== dependencies: "@babel/helper-plugin-utils" "^7.25.9" "@babel/plugin-transform-unicode-property-regex@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz#a901e96f2c1d071b0d1bb5dc0d3c880ce8f53dd3" integrity sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.25.9" @@ -908,7 +908,7 @@ "@babel/plugin-transform-unicode-regex@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz#5eae747fe39eacf13a8bd006a4fb0b5d1fa5e9b1" integrity sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.25.9" @@ -916,20 +916,20 @@ "@babel/plugin-transform-unicode-sets-regex@^7.25.9": version "7.25.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz#65114c17b4ffc20fa5b163c63c70c0d25621fabe" integrity sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.25.9" "@babel/helper-plugin-utils" "^7.25.9" "@babel/preset-env@^7.20.2", "@babel/preset-env@^7.25.9": - version "7.26.0" - resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz" - integrity sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw== + version "7.26.9" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.26.9.tgz#2ec64e903d0efe743699f77a10bdf7955c2123c3" + integrity sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ== dependencies: - "@babel/compat-data" "^7.26.0" - "@babel/helper-compilation-targets" "^7.25.9" - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/compat-data" "^7.26.8" + "@babel/helper-compilation-targets" "^7.26.5" + "@babel/helper-plugin-utils" "^7.26.5" "@babel/helper-validator-option" "^7.25.9" "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.25.9" "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.25.9" @@ -941,9 +941,9 @@ "@babel/plugin-syntax-import-attributes" "^7.26.0" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.25.9" - "@babel/plugin-transform-async-generator-functions" "^7.25.9" + "@babel/plugin-transform-async-generator-functions" "^7.26.8" "@babel/plugin-transform-async-to-generator" "^7.25.9" - "@babel/plugin-transform-block-scoped-functions" "^7.25.9" + "@babel/plugin-transform-block-scoped-functions" "^7.26.5" "@babel/plugin-transform-block-scoping" "^7.25.9" "@babel/plugin-transform-class-properties" "^7.25.9" "@babel/plugin-transform-class-static-block" "^7.26.0" @@ -954,21 +954,21 @@ "@babel/plugin-transform-duplicate-keys" "^7.25.9" "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.25.9" "@babel/plugin-transform-dynamic-import" "^7.25.9" - "@babel/plugin-transform-exponentiation-operator" "^7.25.9" + "@babel/plugin-transform-exponentiation-operator" "^7.26.3" "@babel/plugin-transform-export-namespace-from" "^7.25.9" - "@babel/plugin-transform-for-of" "^7.25.9" + "@babel/plugin-transform-for-of" "^7.26.9" "@babel/plugin-transform-function-name" "^7.25.9" "@babel/plugin-transform-json-strings" "^7.25.9" "@babel/plugin-transform-literals" "^7.25.9" "@babel/plugin-transform-logical-assignment-operators" "^7.25.9" "@babel/plugin-transform-member-expression-literals" "^7.25.9" "@babel/plugin-transform-modules-amd" "^7.25.9" - "@babel/plugin-transform-modules-commonjs" "^7.25.9" + "@babel/plugin-transform-modules-commonjs" "^7.26.3" "@babel/plugin-transform-modules-systemjs" "^7.25.9" "@babel/plugin-transform-modules-umd" "^7.25.9" "@babel/plugin-transform-named-capturing-groups-regex" "^7.25.9" "@babel/plugin-transform-new-target" "^7.25.9" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.25.9" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.26.6" "@babel/plugin-transform-numeric-separator" "^7.25.9" "@babel/plugin-transform-object-rest-spread" "^7.25.9" "@babel/plugin-transform-object-super" "^7.25.9" @@ -984,22 +984,22 @@ "@babel/plugin-transform-shorthand-properties" "^7.25.9" "@babel/plugin-transform-spread" "^7.25.9" "@babel/plugin-transform-sticky-regex" "^7.25.9" - "@babel/plugin-transform-template-literals" "^7.25.9" - "@babel/plugin-transform-typeof-symbol" "^7.25.9" + "@babel/plugin-transform-template-literals" "^7.26.8" + "@babel/plugin-transform-typeof-symbol" "^7.26.7" "@babel/plugin-transform-unicode-escapes" "^7.25.9" "@babel/plugin-transform-unicode-property-regex" "^7.25.9" "@babel/plugin-transform-unicode-regex" "^7.25.9" "@babel/plugin-transform-unicode-sets-regex" "^7.25.9" "@babel/preset-modules" "0.1.6-no-external-plugins" babel-plugin-polyfill-corejs2 "^0.4.10" - babel-plugin-polyfill-corejs3 "^0.10.6" + babel-plugin-polyfill-corejs3 "^0.11.0" babel-plugin-polyfill-regenerator "^0.6.1" - core-js-compat "^3.38.1" + core-js-compat "^3.40.0" semver "^6.3.1" "@babel/preset-modules@0.1.6-no-external-plugins": version "0.1.6-no-external-plugins" - resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -1008,7 +1008,7 @@ "@babel/preset-react@^7.18.6", "@babel/preset-react@^7.25.9": version "7.26.3" - resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.26.3.tgz" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.26.3.tgz#7c5e028d623b4683c1f83a0bd4713b9100560caa" integrity sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw== dependencies: "@babel/helper-plugin-utils" "^7.25.9" @@ -1019,267 +1019,267 @@ "@babel/plugin-transform-react-pure-annotations" "^7.25.9" "@babel/preset-typescript@^7.21.0", "@babel/preset-typescript@^7.25.9": - version "7.26.0" - resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz" - integrity sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg== + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.27.0.tgz#4dcb8827225975f4290961b0b089f9c694ca50c7" + integrity sha512-vxaPFfJtHhgeOVXRKuHpHPAOgymmy8V8I65T1q53R7GCZlefKeCaTyDs3zOPHTTbmquvNlQYC5klEvWsBAtrBQ== dependencies: - "@babel/helper-plugin-utils" "^7.25.9" + "@babel/helper-plugin-utils" "^7.26.5" "@babel/helper-validator-option" "^7.25.9" "@babel/plugin-syntax-jsx" "^7.25.9" - "@babel/plugin-transform-modules-commonjs" "^7.25.9" - "@babel/plugin-transform-typescript" "^7.25.9" + "@babel/plugin-transform-modules-commonjs" "^7.26.3" + "@babel/plugin-transform-typescript" "^7.27.0" "@babel/runtime-corejs3@^7.25.9": - version "7.26.0" - resolved "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.26.0.tgz" - integrity sha512-YXHu5lN8kJCb1LOb9PgV6pvak43X2h4HvRApcN5SdWeaItQOzfn1hgP6jasD6KWQyJDBxrVmA9o9OivlnNJK/w== + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.27.0.tgz#c766df350ec7a2caf3ed64e3659b100954589413" + integrity sha512-UWjX6t+v+0ckwZ50Y5ShZLnlk95pP5MyW/pon9tiYzl3+18pkTHTFNTKr7rQbfRXPkowt2QAn30o1b6oswszew== dependencies: core-js-pure "^3.30.2" regenerator-runtime "^0.14.0" "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.25.9", "@babel/runtime@^7.8.4": - version "7.26.0" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz" - integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.27.0.tgz#fbee7cf97c709518ecc1f590984481d5460d4762" + integrity sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw== dependencies: regenerator-runtime "^0.14.0" -"@babel/template@^7.25.9": - version "7.25.9" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz" - integrity sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg== +"@babel/template@^7.25.9", "@babel/template@^7.26.9", "@babel/template@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.0.tgz#b253e5406cc1df1c57dcd18f11760c2dbf40c0b4" + integrity sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA== dependencies: - "@babel/code-frame" "^7.25.9" - "@babel/parser" "^7.25.9" - "@babel/types" "^7.25.9" + "@babel/code-frame" "^7.26.2" + "@babel/parser" "^7.27.0" + "@babel/types" "^7.27.0" -"@babel/traverse@^7.25.9", "@babel/traverse@^7.26.5": - version "7.26.5" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.5.tgz" - integrity sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ== +"@babel/traverse@^7.25.9", "@babel/traverse@^7.26.10", "@babel/traverse@^7.26.5", "@babel/traverse@^7.26.8", "@babel/traverse@^7.27.0": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.0.tgz#11d7e644779e166c0442f9a07274d02cd91d4a70" + integrity sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA== dependencies: "@babel/code-frame" "^7.26.2" - "@babel/generator" "^7.26.5" - "@babel/parser" "^7.26.5" - "@babel/template" "^7.25.9" - "@babel/types" "^7.26.5" + "@babel/generator" "^7.27.0" + "@babel/parser" "^7.27.0" + "@babel/template" "^7.27.0" + "@babel/types" "^7.27.0" debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.21.3", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.26.5", "@babel/types@^7.4.4": - version "7.26.5" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz" - integrity sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg== +"@babel/types@^7.21.3", "@babel/types@^7.25.9", "@babel/types@^7.26.10", "@babel/types@^7.27.0", "@babel/types@^7.4.4": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.0.tgz#ef9acb6b06c3173f6632d993ecb6d4ae470b4559" + integrity sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg== dependencies: "@babel/helper-string-parser" "^7.25.9" "@babel/helper-validator-identifier" "^7.25.9" "@colors/colors@1.5.0": version "1.5.0" - resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== "@csstools/cascade-layer-name-parser@^2.0.4": version "2.0.4" - resolved "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.4.tgz#64d128529397aa1e1c986f685713363b262b81b1" integrity sha512-7DFHlPuIxviKYZrOiwVU/PiHLm3lLUR23OMuEEtfEOQTOp9hzQ2JjdY6X5H18RVuUPJqSCI+qNnD5iOLMVE0bA== -"@csstools/color-helpers@^5.0.1": - version "5.0.1" - resolved "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.1.tgz" - integrity sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA== +"@csstools/color-helpers@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-5.0.2.tgz#82592c9a7c2b83c293d9161894e2a6471feb97b8" + integrity sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA== -"@csstools/css-calc@^2.1.1": - version "2.1.1" - resolved "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.1.tgz" - integrity sha512-rL7kaUnTkL9K+Cvo2pnCieqNpTKgQzy5f+N+5Iuko9HAoasP+xgprVh7KN/MaJVvVL1l0EzQq2MoqBHKSrDrag== +"@csstools/css-calc@^2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-2.1.3.tgz#6f68affcb569a86b91965e8622d644be35a08423" + integrity sha512-XBG3talrhid44BY1x3MHzUx/aTG8+x/Zi57M4aTKK9RFB4aLlF3TTSzfzn8nWVHWL3FgAXAxmupmDd6VWww+pw== -"@csstools/css-color-parser@^3.0.7": - version "3.0.7" - resolved "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.7.tgz" - integrity sha512-nkMp2mTICw32uE5NN+EsJ4f5N+IGFeCFu4bGpiKgb2Pq/7J/MpyLBeQ5ry4KKtRFZaYs6sTmcMYrSRIyj5DFKA== +"@csstools/css-color-parser@^3.0.9": + version "3.0.9" + resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-3.0.9.tgz#8d81b77d6f211495b5100ec4cad4c8828de49f6b" + integrity sha512-wILs5Zk7BU86UArYBJTPy/FMPPKVKHMj1ycCEyf3VUptol0JNRLFU/BZsJ4aiIHJEbSLiizzRrw8Pc1uAEDrXw== dependencies: - "@csstools/color-helpers" "^5.0.1" - "@csstools/css-calc" "^2.1.1" + "@csstools/color-helpers" "^5.0.2" + "@csstools/css-calc" "^2.1.3" "@csstools/css-parser-algorithms@^3.0.4": version "3.0.4" - resolved "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz#74426e93bd1c4dcab3e441f5cc7ba4fb35d94356" integrity sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A== "@csstools/css-tokenizer@^3.0.3": version "3.0.3" - resolved "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz#a5502c8539265fecbd873c1e395a890339f119c2" integrity sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw== "@csstools/media-query-list-parser@^4.0.2": version "4.0.2" - resolved "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz#e80e17eba1693fceafb8d6f2cfc68c0e7a9ab78a" integrity sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A== "@csstools/postcss-cascade-layers@^5.0.1": version "5.0.1" - resolved "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.1.tgz#9640313e64b5e39133de7e38a5aa7f40dc259597" integrity sha512-XOfhI7GShVcKiKwmPAnWSqd2tBR0uxt+runAxttbSp/LY2U16yAVPmAf7e9q4JJ0d+xMNmpwNDLBXnmRCl3HMQ== dependencies: "@csstools/selector-specificity" "^5.0.0" postcss-selector-parser "^7.0.0" -"@csstools/postcss-color-function@^4.0.7": - version "4.0.7" - resolved "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.7.tgz" - integrity sha512-aDHYmhNIHR6iLw4ElWhf+tRqqaXwKnMl0YsQ/X105Zc4dQwe6yJpMrTN6BwOoESrkDjOYMOfORviSSLeDTJkdQ== +"@csstools/postcss-color-function@^4.0.9": + version "4.0.9" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-function/-/postcss-color-function-4.0.9.tgz#67080c6b4635926d68cc9c8f52261b87ece70bf8" + integrity sha512-2UeQCGMO5+EeQsPQK2DqXp0dad+P6nIz6G2dI06APpBuYBKxZEq7CTH+UiztFQ8cB1f89dnO9+D/Kfr+JfI2hw== dependencies: - "@csstools/css-color-parser" "^3.0.7" + "@csstools/css-color-parser" "^3.0.9" "@csstools/css-parser-algorithms" "^3.0.4" "@csstools/css-tokenizer" "^3.0.3" - "@csstools/postcss-progressive-custom-properties" "^4.0.0" + "@csstools/postcss-progressive-custom-properties" "^4.0.1" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-color-mix-function@^3.0.7": - version "3.0.7" - resolved "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.7.tgz" - integrity sha512-e68Nev4CxZYCLcrfWhHH4u/N1YocOfTmw67/kVX5Rb7rnguqqLyxPjhHWjSBX8o4bmyuukmNf3wrUSU3//kT7g== +"@csstools/postcss-color-mix-function@^3.0.9": + version "3.0.9" + resolved "https://registry.yarnpkg.com/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.9.tgz#103858388ba4d2c589daeecb02f9f05baecc27d0" + integrity sha512-Enj7ZIIkLD7zkGCN31SZFx4H1gKiCs2Y4taBo/v/cqaHN7p1qGrf5UTMNSjQFZ7MgClGufHx4pddwFTGL+ipug== dependencies: - "@csstools/css-color-parser" "^3.0.7" + "@csstools/css-color-parser" "^3.0.9" "@csstools/css-parser-algorithms" "^3.0.4" "@csstools/css-tokenizer" "^3.0.3" - "@csstools/postcss-progressive-custom-properties" "^4.0.0" + "@csstools/postcss-progressive-custom-properties" "^4.0.1" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-content-alt-text@^2.0.4": - version "2.0.4" - resolved "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.4.tgz" - integrity sha512-YItlZUOuZJCBlRaCf8Aucc1lgN41qYGALMly0qQllrxYJhiyzlI6RxOTMUvtWk+KhS8GphMDsDhKQ7KTPfEMSw== +"@csstools/postcss-content-alt-text@^2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.5.tgz#86b195bef6ce32179a68011b87212a3e4e73b84a" + integrity sha512-9BOS535v6YmyOYk32jAHXeddRV+iyd4vRcbrEekpwxmueAXX5J8WgbceFnE4E4Pmw/ysnB9v+n/vSWoFmcLMcA== dependencies: "@csstools/css-parser-algorithms" "^3.0.4" "@csstools/css-tokenizer" "^3.0.3" - "@csstools/postcss-progressive-custom-properties" "^4.0.0" + "@csstools/postcss-progressive-custom-properties" "^4.0.1" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-exponential-functions@^2.0.6": - version "2.0.6" - resolved "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.6.tgz" - integrity sha512-IgJA5DQsQLu/upA3HcdvC6xEMR051ufebBTIXZ5E9/9iiaA7juXWz1ceYj814lnDYP/7eWjZnw0grRJlX4eI6g== +"@csstools/postcss-exponential-functions@^2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.8.tgz#da6b3673fcb48a78294d39d6afc1e4da45dedada" + integrity sha512-vHgDXtGIBPpFQnFNDftMQg4MOuXcWnK91L/7REjBNYzQ/p2Fa/6RcnehTqCRrNtQ46PNIolbRsiDdDuxiHolwQ== dependencies: - "@csstools/css-calc" "^2.1.1" + "@csstools/css-calc" "^2.1.3" "@csstools/css-parser-algorithms" "^3.0.4" "@csstools/css-tokenizer" "^3.0.3" "@csstools/postcss-font-format-keywords@^4.0.0": version "4.0.0" - resolved "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-4.0.0.tgz#6730836eb0153ff4f3840416cc2322f129c086e6" integrity sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw== dependencies: "@csstools/utilities" "^2.0.0" postcss-value-parser "^4.2.0" -"@csstools/postcss-gamut-mapping@^2.0.7": - version "2.0.7" - resolved "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.7.tgz" - integrity sha512-gzFEZPoOkY0HqGdyeBXR3JP218Owr683u7KOZazTK7tQZBE8s2yhg06W1tshOqk7R7SWvw9gkw2TQogKpIW8Xw== +"@csstools/postcss-gamut-mapping@^2.0.9": + version "2.0.9" + resolved "https://registry.yarnpkg.com/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.9.tgz#83b08d302865ce6fc3127589ff6658fe32635636" + integrity sha512-quksIsFm3DGsf8Qbr9KiSGBF2w3RwxSfOfma5wbORDB1AFF15r4EVW7sUuWw3s5IAEGMqzel/dE2rQsI7Yb8mA== dependencies: - "@csstools/css-color-parser" "^3.0.7" + "@csstools/css-color-parser" "^3.0.9" "@csstools/css-parser-algorithms" "^3.0.4" "@csstools/css-tokenizer" "^3.0.3" -"@csstools/postcss-gradients-interpolation-method@^5.0.7": - version "5.0.7" - resolved "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.7.tgz" - integrity sha512-WgEyBeg6glUeTdS2XT7qeTFBthTJuXlS9GFro/DVomj7W7WMTamAwpoP4oQCq/0Ki2gvfRYFi/uZtmRE14/DFA== +"@csstools/postcss-gradients-interpolation-method@^5.0.9": + version "5.0.9" + resolved "https://registry.yarnpkg.com/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.9.tgz#e2e1c59b08e7524c269bb4cac91618f95b9c849e" + integrity sha512-duqTeUHF4ambUybAmhX9KonkicLM/WNp2JjMUbegRD4O8A/tb6fdZ7jUNdp/UUiO1FIdDkMwmNw6856bT0XF8Q== dependencies: - "@csstools/css-color-parser" "^3.0.7" + "@csstools/css-color-parser" "^3.0.9" "@csstools/css-parser-algorithms" "^3.0.4" "@csstools/css-tokenizer" "^3.0.3" - "@csstools/postcss-progressive-custom-properties" "^4.0.0" + "@csstools/postcss-progressive-custom-properties" "^4.0.1" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-hwb-function@^4.0.7": - version "4.0.7" - resolved "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.7.tgz" - integrity sha512-LKYqjO+wGwDCfNIEllessCBWfR4MS/sS1WXO+j00KKyOjm7jDW2L6jzUmqASEiv/kkJO39GcoIOvTTfB3yeBUA== +"@csstools/postcss-hwb-function@^4.0.9": + version "4.0.9" + resolved "https://registry.yarnpkg.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.9.tgz#4abca35a88a382e211fc0abe125a8ce7bb07030b" + integrity sha512-sDpdPsoGAhYl/PMSYfu5Ez82wXb2bVkg1Cb8vsRLhpXhAk4OSlsJN+GodAql6tqc1B2G/WToxsFU6G74vkhPvA== dependencies: - "@csstools/css-color-parser" "^3.0.7" + "@csstools/css-color-parser" "^3.0.9" "@csstools/css-parser-algorithms" "^3.0.4" "@csstools/css-tokenizer" "^3.0.3" - "@csstools/postcss-progressive-custom-properties" "^4.0.0" + "@csstools/postcss-progressive-custom-properties" "^4.0.1" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-ic-unit@^4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.0.tgz" - integrity sha512-9QT5TDGgx7wD3EEMN3BSUG6ckb6Eh5gSPT5kZoVtUuAonfPmLDJyPhqR4ntPpMYhUKAMVKAg3I/AgzqHMSeLhA== +"@csstools/postcss-ic-unit@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.1.tgz#7b67b49d85713d8bad70ee5735f409b19fd906f9" + integrity sha512-lECc38i1w3qU9nhrUhP6F8y4BfcQJkR1cb8N6tZNf2llM6zPkxnqt04jRCwsUgNcB3UGKDy+zLenhOYGHqCV+Q== dependencies: - "@csstools/postcss-progressive-custom-properties" "^4.0.0" + "@csstools/postcss-progressive-custom-properties" "^4.0.1" "@csstools/utilities" "^2.0.0" postcss-value-parser "^4.2.0" -"@csstools/postcss-initial@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@csstools/postcss-initial/-/postcss-initial-2.0.0.tgz" - integrity sha512-dv2lNUKR+JV+OOhZm9paWzYBXOCi+rJPqJ2cJuhh9xd8USVrd0cBEPczla81HNOyThMQWeCcdln3gZkQV2kYxA== +"@csstools/postcss-initial@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-initial/-/postcss-initial-2.0.1.tgz#c385bd9d8ad31ad159edd7992069e97ceea4d09a" + integrity sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg== "@csstools/postcss-is-pseudo-class@^5.0.1": version "5.0.1" - resolved "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.1.tgz#12041448fedf01090dd4626022c28b7f7623f58e" integrity sha512-JLp3POui4S1auhDR0n8wHd/zTOWmMsmK3nQd3hhL6FhWPaox5W7j1se6zXOG/aP07wV2ww0lxbKYGwbBszOtfQ== dependencies: "@csstools/selector-specificity" "^5.0.0" postcss-selector-parser "^7.0.0" -"@csstools/postcss-light-dark-function@^2.0.7": - version "2.0.7" - resolved "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.7.tgz" - integrity sha512-ZZ0rwlanYKOHekyIPaU+sVm3BEHCe+Ha0/px+bmHe62n0Uc1lL34vbwrLYn6ote8PHlsqzKeTQdIejQCJ05tfw== +"@csstools/postcss-light-dark-function@^2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.8.tgz#bac218338f458f9a3f05edcc94ab009def14a532" + integrity sha512-v8VU5WtrZIyEtk88WB4fkG22TGd8HyAfSFfZZQ1uNN0+arMJdZc++H3KYTfbYDpJRGy8GwADYH8ySXiILn+OyA== dependencies: "@csstools/css-parser-algorithms" "^3.0.4" "@csstools/css-tokenizer" "^3.0.3" - "@csstools/postcss-progressive-custom-properties" "^4.0.0" + "@csstools/postcss-progressive-custom-properties" "^4.0.1" "@csstools/utilities" "^2.0.0" "@csstools/postcss-logical-float-and-clear@^3.0.0": version "3.0.0" - resolved "https://registry.npmjs.org/@csstools/postcss-logical-float-and-clear/-/postcss-logical-float-and-clear-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/@csstools/postcss-logical-float-and-clear/-/postcss-logical-float-and-clear-3.0.0.tgz#62617564182cf86ab5d4e7485433ad91e4c58571" integrity sha512-SEmaHMszwakI2rqKRJgE+8rpotFfne1ZS6bZqBoQIicFyV+xT1UF42eORPxJkVJVrH9C0ctUgwMSn3BLOIZldQ== "@csstools/postcss-logical-overflow@^2.0.0": version "2.0.0" - resolved "https://registry.npmjs.org/@csstools/postcss-logical-overflow/-/postcss-logical-overflow-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/@csstools/postcss-logical-overflow/-/postcss-logical-overflow-2.0.0.tgz#c6de7c5f04e3d4233731a847f6c62819bcbcfa1d" integrity sha512-spzR1MInxPuXKEX2csMamshR4LRaSZ3UXVaRGjeQxl70ySxOhMpP2252RAFsg8QyyBXBzuVOOdx1+bVO5bPIzA== "@csstools/postcss-logical-overscroll-behavior@^2.0.0": version "2.0.0" - resolved "https://registry.npmjs.org/@csstools/postcss-logical-overscroll-behavior/-/postcss-logical-overscroll-behavior-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/@csstools/postcss-logical-overscroll-behavior/-/postcss-logical-overscroll-behavior-2.0.0.tgz#43c03eaecdf34055ef53bfab691db6dc97a53d37" integrity sha512-e/webMjoGOSYfqLunyzByZj5KKe5oyVg/YSbie99VEaSDE2kimFm0q1f6t/6Jo+VVCQ/jbe2Xy+uX+C4xzWs4w== "@csstools/postcss-logical-resize@^3.0.0": version "3.0.0" - resolved "https://registry.npmjs.org/@csstools/postcss-logical-resize/-/postcss-logical-resize-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/@csstools/postcss-logical-resize/-/postcss-logical-resize-3.0.0.tgz#4df0eeb1a61d7bd85395e56a5cce350b5dbfdca6" integrity sha512-DFbHQOFW/+I+MY4Ycd/QN6Dg4Hcbb50elIJCfnwkRTCX05G11SwViI5BbBlg9iHRl4ytB7pmY5ieAFk3ws7yyg== dependencies: postcss-value-parser "^4.2.0" "@csstools/postcss-logical-viewport-units@^3.0.3": version "3.0.3" - resolved "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.3.tgz#f6cc63520ca2a6eb76b9cd946070c38dda66d733" integrity sha512-OC1IlG/yoGJdi0Y+7duz/kU/beCwO+Gua01sD6GtOtLi7ByQUpcIqs7UE/xuRPay4cHgOMatWdnDdsIDjnWpPw== dependencies: "@csstools/css-tokenizer" "^3.0.3" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-media-minmax@^2.0.6": - version "2.0.6" - resolved "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.6.tgz" - integrity sha512-J1+4Fr2W3pLZsfxkFazK+9kr96LhEYqoeBszLmFjb6AjYs+g9oDAw3J5oQignLKk3rC9XHW+ebPTZ9FaW5u5pg== +"@csstools/postcss-media-minmax@^2.0.8": + version "2.0.8" + resolved "https://registry.yarnpkg.com/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.8.tgz#b5397f18531c54ac0c12cbf20b6bf93208bd5d16" + integrity sha512-Skum5wIXw2+NyCQWUyfstN3c1mfSh39DRAo+Uh2zzXOglBG8xB9hnArhYFScuMZkzeM+THVa//mrByKAfumc7w== dependencies: - "@csstools/css-calc" "^2.1.1" + "@csstools/css-calc" "^2.1.3" "@csstools/css-parser-algorithms" "^3.0.4" "@csstools/css-tokenizer" "^3.0.3" "@csstools/media-query-list-parser" "^4.0.2" "@csstools/postcss-media-queries-aspect-ratio-number-values@^3.0.4": version "3.0.4" - resolved "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.4.tgz#d71102172c74baf3f892fac88cf1ea46a961600d" integrity sha512-AnGjVslHMm5xw9keusQYvjVWvuS7KWK+OJagaG0+m9QnIjZsrysD2kJP/tr/UJIyYtMCtu8OkUd+Rajb4DqtIQ== dependencies: "@csstools/css-parser-algorithms" "^3.0.4" @@ -1288,7 +1288,7 @@ "@csstools/postcss-nested-calc@^4.0.0": version "4.0.0" - resolved "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/@csstools/postcss-nested-calc/-/postcss-nested-calc-4.0.0.tgz#754e10edc6958d664c11cde917f44ba144141c62" integrity sha512-jMYDdqrQQxE7k9+KjstC3NbsmC063n1FTPLCgCRS2/qHUbHM0mNy9pIn4QIiQGs9I/Bg98vMqw7mJXBxa0N88A== dependencies: "@csstools/utilities" "^2.0.0" @@ -1296,134 +1296,134 @@ "@csstools/postcss-normalize-display-values@^4.0.0": version "4.0.0" - resolved "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz#ecdde2daf4e192e5da0c6fd933b6d8aff32f2a36" integrity sha512-HlEoG0IDRoHXzXnkV4in47dzsxdsjdz6+j7MLjaACABX2NfvjFS6XVAnpaDyGesz9gK2SC7MbNwdCHusObKJ9Q== dependencies: postcss-value-parser "^4.2.0" -"@csstools/postcss-oklab-function@^4.0.7": - version "4.0.7" - resolved "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.7.tgz" - integrity sha512-I6WFQIbEKG2IO3vhaMGZDkucbCaUSXMxvHNzDdnfsTCF5tc0UlV3Oe2AhamatQoKFjBi75dSEMrgWq3+RegsOQ== +"@csstools/postcss-oklab-function@^4.0.9": + version "4.0.9" + resolved "https://registry.yarnpkg.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.9.tgz#21d8846b3fe632d663b8cfe5d1fa2ccdd3f0709a" + integrity sha512-UHrnujimwtdDw8BYDcWJtBXuJ13uc/BjAddPdfMc/RsWxhg8gG8UbvTF0tnMtHrZ4i7lwy85fPEzK1AiykMyRA== dependencies: - "@csstools/css-color-parser" "^3.0.7" + "@csstools/css-color-parser" "^3.0.9" "@csstools/css-parser-algorithms" "^3.0.4" "@csstools/css-tokenizer" "^3.0.3" - "@csstools/postcss-progressive-custom-properties" "^4.0.0" + "@csstools/postcss-progressive-custom-properties" "^4.0.1" "@csstools/utilities" "^2.0.0" -"@csstools/postcss-progressive-custom-properties@^4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.0.0.tgz" - integrity sha512-XQPtROaQjomnvLUSy/bALTR5VCtTVUFwYs1SblvYgLSeTo2a/bMNwUwo2piXw5rTv/FEYiy5yPSXBqg9OKUx7Q== +"@csstools/postcss-progressive-custom-properties@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.0.1.tgz#487e619d2577358cb08ed7319dd203d4d5db5bb6" + integrity sha512-Ofz81HaY8mmbP8/Qr3PZlUzjsyV5WuxWmvtYn+jhYGvvjFazTmN9R2io5W5znY1tyk2CA9uM0IPWyY4ygDytCw== dependencies: postcss-value-parser "^4.2.0" -"@csstools/postcss-random-function@^1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-1.0.2.tgz" - integrity sha512-vBCT6JvgdEkvRc91NFoNrLjgGtkLWt47GKT6E2UDn3nd8ZkMBiziQ1Md1OiKoSsgzxsSnGKG3RVdhlbdZEkHjA== +"@csstools/postcss-random-function@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@csstools/postcss-random-function/-/postcss-random-function-2.0.0.tgz#38da06d102bbe65504023278f670895c4a1ceef9" + integrity sha512-MYZKxSr4AKfjECL8vg49BbfNNzK+t3p2OWX+Xf7rXgMaTP44oy/e8VGWu4MLnJ3NUd9tFVkisLO/sg+5wMTNsg== dependencies: - "@csstools/css-calc" "^2.1.1" + "@csstools/css-calc" "^2.1.3" "@csstools/css-parser-algorithms" "^3.0.4" "@csstools/css-tokenizer" "^3.0.3" -"@csstools/postcss-relative-color-syntax@^3.0.7": - version "3.0.7" - resolved "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.7.tgz" - integrity sha512-apbT31vsJVd18MabfPOnE977xgct5B1I+Jpf+Munw3n6kKb1MMuUmGGH+PT9Hm/fFs6fe61Q/EWnkrb4bNoNQw== +"@csstools/postcss-relative-color-syntax@^3.0.9": + version "3.0.9" + resolved "https://registry.yarnpkg.com/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.9.tgz#1075eda90bb2a59f30bed94605def0a99cad3040" + integrity sha512-+AGOcLF5PmMnTRPnOdCvY7AwvD5veIOhTWbJV6vC3hB1tt0ii/k6QOwhWfsGGg1ZPQ0JY15u+wqLR4ZTtB0luA== dependencies: - "@csstools/css-color-parser" "^3.0.7" + "@csstools/css-color-parser" "^3.0.9" "@csstools/css-parser-algorithms" "^3.0.4" "@csstools/css-tokenizer" "^3.0.3" - "@csstools/postcss-progressive-custom-properties" "^4.0.0" + "@csstools/postcss-progressive-custom-properties" "^4.0.1" "@csstools/utilities" "^2.0.0" "@csstools/postcss-scope-pseudo-class@^4.0.1": version "4.0.1" - resolved "https://registry.npmjs.org/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-4.0.1.tgz#9fe60e9d6d91d58fb5fc6c768a40f6e47e89a235" integrity sha512-IMi9FwtH6LMNuLea1bjVMQAsUhFxJnyLSgOp/cpv5hrzWmrUYU5fm0EguNDIIOHUqzXode8F/1qkC/tEo/qN8Q== dependencies: postcss-selector-parser "^7.0.0" -"@csstools/postcss-sign-functions@^1.1.1": - version "1.1.1" - resolved "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.1.tgz" - integrity sha512-MslYkZCeMQDxetNkfmmQYgKCy4c+w9pPDfgOBCJOo/RI1RveEUdZQYtOfrC6cIZB7sD7/PHr2VGOcMXlZawrnA== +"@csstools/postcss-sign-functions@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.3.tgz#ba64c7a6e25f50221a2f37fac5d7592917245781" + integrity sha512-4F4GRhj8xNkBtLZ+3ycIhReaDfKJByXI+cQGIps3AzCO8/CJOeoDPxpMnL5vqZrWKOceSATHEQJUO/Q/r2y7OQ== dependencies: - "@csstools/css-calc" "^2.1.1" + "@csstools/css-calc" "^2.1.3" "@csstools/css-parser-algorithms" "^3.0.4" "@csstools/css-tokenizer" "^3.0.3" -"@csstools/postcss-stepped-value-functions@^4.0.6": - version "4.0.6" - resolved "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.6.tgz" - integrity sha512-/dwlO9w8vfKgiADxpxUbZOWlL5zKoRIsCymYoh1IPuBsXODKanKnfuZRr32DEqT0//3Av1VjfNZU9yhxtEfIeA== +"@csstools/postcss-stepped-value-functions@^4.0.8": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.8.tgz#345f5620cbeb0e9742f242e1dc6c88a051ce6700" + integrity sha512-6Y4yhL4fNhgzbZ/wUMQ4EjFUfoNNMpEXZnDw1JrlcEBHUT15gplchtFsZGk7FNi8PhLHJfCUwVKrEHzhfhKK+g== dependencies: - "@csstools/css-calc" "^2.1.1" + "@csstools/css-calc" "^2.1.3" "@csstools/css-parser-algorithms" "^3.0.4" "@csstools/css-tokenizer" "^3.0.3" -"@csstools/postcss-text-decoration-shorthand@^4.0.1": - version "4.0.1" - resolved "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.1.tgz" - integrity sha512-xPZIikbx6jyzWvhms27uugIc0I4ykH4keRvoa3rxX5K7lEhkbd54rjj/dv60qOCTisoS+3bmwJTeyV1VNBrXaw== +"@csstools/postcss-text-decoration-shorthand@^4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.2.tgz#a3bcf80492e6dda36477538ab8e8943908c9f80a" + integrity sha512-8XvCRrFNseBSAGxeaVTaNijAu+FzUvjwFXtcrynmazGb/9WUdsPCpBX+mHEHShVRq47Gy4peYAoxYs8ltUnmzA== dependencies: - "@csstools/color-helpers" "^5.0.1" + "@csstools/color-helpers" "^5.0.2" postcss-value-parser "^4.2.0" -"@csstools/postcss-trigonometric-functions@^4.0.6": - version "4.0.6" - resolved "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.6.tgz" - integrity sha512-c4Y1D2Why/PeccaSouXnTt6WcNHJkoJRidV2VW9s5gJ97cNxnLgQ4Qj8qOqkIR9VmTQKJyNcbF4hy79ZQnWD7A== +"@csstools/postcss-trigonometric-functions@^4.0.8": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.8.tgz#ad7940798fafadc77846e9ca47e2b594515d4f60" + integrity sha512-YcDvYTRu7f78/91B6bX+mE1WoAO91Su7/8KSRpuWbIGUB8hmaNSRu9wziaWSLJ1lOB1aQe+bvo9BIaLKqPOo/g== dependencies: - "@csstools/css-calc" "^2.1.1" + "@csstools/css-calc" "^2.1.3" "@csstools/css-parser-algorithms" "^3.0.4" "@csstools/css-tokenizer" "^3.0.3" "@csstools/postcss-unset-value@^4.0.0": version "4.0.0" - resolved "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/@csstools/postcss-unset-value/-/postcss-unset-value-4.0.0.tgz#7caa981a34196d06a737754864baf77d64de4bba" integrity sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA== "@csstools/selector-resolve-nested@^3.0.0": version "3.0.0" - resolved "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.0.0.tgz#704a9b637975680e025e069a4c58b3beb3e2752a" integrity sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ== "@csstools/selector-specificity@^5.0.0": version "5.0.0" - resolved "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz#037817b574262134cabd68fc4ec1a454f168407b" integrity sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw== "@csstools/utilities@^2.0.0": version "2.0.0" - resolved "https://registry.npmjs.org/@csstools/utilities/-/utilities-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/@csstools/utilities/-/utilities-2.0.0.tgz#f7ff0fee38c9ffb5646d47b6906e0bc8868bde60" integrity sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ== "@discoveryjs/json-ext@0.5.7": version "0.5.7" - resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== -"@docsearch/css@3.8.2": - version "3.8.2" - resolved "https://registry.npmjs.org/@docsearch/css/-/css-3.8.2.tgz" - integrity sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ== +"@docsearch/css@3.9.0": + version "3.9.0" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.9.0.tgz#3bc29c96bf024350d73b0cfb7c2a7b71bf251cd5" + integrity sha512-cQbnVbq0rrBwNAKegIac/t6a8nWoUAn8frnkLFW6YARaRmAQr5/Eoe6Ln2fqkUCZ40KpdrKbpSAmgrkviOxuWA== "@docsearch/react@^3.8.1": - version "3.8.2" - resolved "https://registry.npmjs.org/@docsearch/react/-/react-3.8.2.tgz" - integrity sha512-xCRrJQlTt8N9GU0DG4ptwHRkfnSnD/YpdeaXe02iKfqs97TkZJv60yE+1eq/tjPcVnTW8dP5qLP7itifFVV5eg== + version "3.9.0" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.9.0.tgz#d0842b700c3ee26696786f3c8ae9f10c1a3f0db3" + integrity sha512-mb5FOZYZIkRQ6s/NWnM98k879vu5pscWqTLubLFBO87igYYT4VzVazh4h5o/zCvTIZgEt3PvsCOMOswOUo9yHQ== dependencies: - "@algolia/autocomplete-core" "1.17.7" - "@algolia/autocomplete-preset-algolia" "1.17.7" - "@docsearch/css" "3.8.2" + "@algolia/autocomplete-core" "1.17.9" + "@algolia/autocomplete-preset-algolia" "1.17.9" + "@docsearch/css" "3.9.0" algoliasearch "^5.14.2" "@docusaurus/babel@3.7.0": version "3.7.0" - resolved "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/babel/-/babel-3.7.0.tgz#770dd5da525a9d6a2fee7d3212ec62040327f776" integrity sha512-0H5uoJLm14S/oKV3Keihxvh8RV+vrid+6Gv+2qhuzbqHanawga8tYnsdpjEyt36ucJjqlby2/Md2ObWjA02UXQ== dependencies: "@babel/core" "^7.25.9" @@ -1444,7 +1444,7 @@ "@docusaurus/bundler@3.7.0": version "3.7.0" - resolved "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/bundler/-/bundler-3.7.0.tgz#d8e7867b3b2c43a1e320ed429f8dfe873c38506d" integrity sha512-CUUT9VlSGukrCU5ctZucykvgCISivct+cby28wJwCC/fkQFgAHRp/GKv2tx38ZmXb7nacrKzFTcp++f9txUYGg== dependencies: "@babel/core" "^7.25.9" @@ -1473,9 +1473,9 @@ webpack "^5.95.0" webpackbar "^6.0.1" -"@docusaurus/core@^3.6.0", "@docusaurus/core@3.7.0": +"@docusaurus/core@3.7.0", "@docusaurus/core@^3.6.0": version "3.7.0" - resolved "https://registry.npmjs.org/@docusaurus/core/-/core-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-3.7.0.tgz#e871586d099093723dfe6de81c1ce610aeb20292" integrity sha512-b0fUmaL+JbzDIQaamzpAFpTviiaU4cX3Qz8cuo14+HGBCwa0evEK0UYCBFY3n4cLzL8Op1BueeroUD2LYAIHbQ== dependencies: "@docusaurus/babel" "3.7.0" @@ -1523,7 +1523,7 @@ "@docusaurus/cssnano-preset@3.7.0": version "3.7.0" - resolved "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-3.7.0.tgz#8fe8f2c3acbd32384b69e14983b9a63c98cae34e" integrity sha512-X9GYgruZBSOozg4w4dzv9uOz8oK/EpPVQXkp0MM6Tsgp/nRIU9hJzJ0Pxg1aRa3xCeEQTOimZHcocQFlLwYajQ== dependencies: cssnano-preset-advanced "^6.1.2" @@ -1533,7 +1533,7 @@ "@docusaurus/logger@3.7.0": version "3.7.0" - resolved "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-3.7.0.tgz#07ecc2f460c4d2382df4991f9ce4e348e90af04c" integrity sha512-z7g62X7bYxCYmeNNuO9jmzxLQG95q9QxINCwpboVcNff3SJiHJbGrarxxOVMVmAh1MsrSfxWkVGv4P41ktnFsA== dependencies: chalk "^4.1.2" @@ -1541,7 +1541,7 @@ "@docusaurus/mdx-loader@3.7.0": version "3.7.0" - resolved "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-3.7.0.tgz#5890c6e7a5b68cb1d066264ac5290cdcd59d4ecc" integrity sha512-OFBG6oMjZzc78/U3WNPSHs2W9ZJ723ewAcvVJaqS0VgyeUfmzUV8f1sv+iUHA0DtwiR5T5FjOxj6nzEE8LY6VA== dependencies: "@docusaurus/logger" "3.7.0" @@ -1569,9 +1569,9 @@ vfile "^6.0.1" webpack "^5.88.1" -"@docusaurus/module-type-aliases@^3.6.0", "@docusaurus/module-type-aliases@3.7.0": +"@docusaurus/module-type-aliases@3.7.0", "@docusaurus/module-type-aliases@^3.6.0": version "3.7.0" - resolved "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-3.7.0.tgz#15c0745b829c6966c5b3b2c2527c72b54830b0e5" integrity sha512-g7WdPqDNaqA60CmBrr0cORTrsOit77hbsTj7xE2l71YhBn79sxdm7WMK7wfhcaafkbpIh7jv5ef5TOpf1Xv9Lg== dependencies: "@docusaurus/types" "3.7.0" @@ -1584,7 +1584,7 @@ "@docusaurus/plugin-content-blog@3.7.0": version "3.7.0" - resolved "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.7.0.tgz#7bd69de87a1f3adb652e1473ef5b7ccc9468f47e" integrity sha512-EFLgEz6tGHYWdPU0rK8tSscZwx+AsyuBW/r+tNig2kbccHYGUJmZtYN38GjAa3Fda4NU+6wqUO5kTXQSRBQD3g== dependencies: "@docusaurus/core" "3.7.0" @@ -1606,9 +1606,9 @@ utility-types "^3.10.0" webpack "^5.88.1" -"@docusaurus/plugin-content-docs@*", "@docusaurus/plugin-content-docs@^3.7.0", "@docusaurus/plugin-content-docs@3.7.0": +"@docusaurus/plugin-content-docs@3.7.0", "@docusaurus/plugin-content-docs@^3.7.0": version "3.7.0" - resolved "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.7.0.tgz#297a549e926ee2b1147b5242af6f21532c7b107c" integrity sha512-GXg5V7kC9FZE4FkUZA8oo/NrlRb06UwuICzI6tcbzj0+TVgjq/mpUXXzSgKzMS82YByi4dY2Q808njcBCyy6tQ== dependencies: "@docusaurus/core" "3.7.0" @@ -1631,7 +1631,7 @@ "@docusaurus/plugin-content-pages@3.7.0": version "3.7.0" - resolved "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.7.0.tgz#c4a8f7237872236aacb77665822c474c0a00e91a" integrity sha512-YJSU3tjIJf032/Aeao8SZjFOrXJbz/FACMveSMjLyMH4itQyZ2XgUIzt4y+1ISvvk5zrW4DABVT2awTCqBkx0Q== dependencies: "@docusaurus/core" "3.7.0" @@ -1645,7 +1645,7 @@ "@docusaurus/plugin-debug@3.7.0": version "3.7.0" - resolved "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-3.7.0.tgz#a4fd45132e40cffe96bb51f48e89982a1cb8e194" integrity sha512-Qgg+IjG/z4svtbCNyTocjIwvNTNEwgRjSXXSJkKVG0oWoH0eX/HAPiu+TS1HBwRPQV+tTYPWLrUypYFepfujZA== dependencies: "@docusaurus/core" "3.7.0" @@ -1657,7 +1657,7 @@ "@docusaurus/plugin-google-analytics@3.7.0": version "3.7.0" - resolved "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.7.0.tgz#d20f665e810fb2295d1c1bbfe13398c5ff42eb24" integrity sha512-otIqiRV/jka6Snjf+AqB360XCeSv7lQC+DKYW+EUZf6XbuE8utz5PeUQ8VuOcD8Bk5zvT1MC4JKcd5zPfDuMWA== dependencies: "@docusaurus/core" "3.7.0" @@ -1667,7 +1667,7 @@ "@docusaurus/plugin-google-gtag@3.7.0": version "3.7.0" - resolved "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.7.0.tgz#a48638dfd132858060458b875a440b6cbda6bf8f" integrity sha512-M3vrMct1tY65ModbyeDaMoA+fNJTSPe5qmchhAbtqhDD/iALri0g9LrEpIOwNaoLmm6lO88sfBUADQrSRSGSWA== dependencies: "@docusaurus/core" "3.7.0" @@ -1678,7 +1678,7 @@ "@docusaurus/plugin-google-tag-manager@3.7.0": version "3.7.0" - resolved "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.7.0.tgz#0a4390f4b0e760d073bdb1905436bfa7bd71356b" integrity sha512-X8U78nb8eiMiPNg3jb9zDIVuuo/rE1LjGDGu+5m5CX4UBZzjMy+klOY2fNya6x8ACyE/L3K2erO1ErheP55W/w== dependencies: "@docusaurus/core" "3.7.0" @@ -1686,9 +1686,9 @@ "@docusaurus/utils-validation" "3.7.0" tslib "^2.6.0" -"@docusaurus/plugin-sitemap@^3.6.0", "@docusaurus/plugin-sitemap@3.7.0": +"@docusaurus/plugin-sitemap@3.7.0", "@docusaurus/plugin-sitemap@^3.6.0": version "3.7.0" - resolved "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.7.0.tgz#2c1bf9de26aeda455df6f77748e5887ace39b2d7" integrity sha512-bTRT9YLZ/8I/wYWKMQke18+PF9MV8Qub34Sku6aw/vlZ/U+kuEuRpQ8bTcNOjaTSfYsWkK4tTwDMHK2p5S86cA== dependencies: "@docusaurus/core" "3.7.0" @@ -1703,7 +1703,7 @@ "@docusaurus/plugin-svgr@3.7.0": version "3.7.0" - resolved "https://registry.npmjs.org/@docusaurus/plugin-svgr/-/plugin-svgr-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/plugin-svgr/-/plugin-svgr-3.7.0.tgz#018e89efd615d5fde77b891a8c2aadf203013f5d" integrity sha512-HByXIZTbc4GV5VAUkZ2DXtXv1Qdlnpk3IpuImwSnEzCDBkUMYcec5282hPjn6skZqB25M1TYCmWS91UbhBGxQg== dependencies: "@docusaurus/core" "3.7.0" @@ -1717,7 +1717,7 @@ "@docusaurus/preset-classic@^3.6.0": version "3.7.0" - resolved "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-3.7.0.tgz#f6656a04ae6a4877523dbd04f7c491632e4003b9" integrity sha512-nPHj8AxDLAaQXs+O6+BwILFuhiWbjfQWrdw2tifOClQoNfuXDjfjogee6zfx6NGHWqshR23LrcN115DmkHC91Q== dependencies: "@docusaurus/core" "3.7.0" @@ -1737,7 +1737,7 @@ "@docusaurus/theme-classic@3.7.0": version "3.7.0" - resolved "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-3.7.0.tgz#b483bd8e2923b6994b5f47238884b9f8984222c5" integrity sha512-MnLxG39WcvLCl4eUzHr0gNcpHQfWoGqzADCly54aqCofQX6UozOS9Th4RK3ARbM9m7zIRv3qbhggI53dQtx/hQ== dependencies: "@docusaurus/core" "3.7.0" @@ -1769,7 +1769,7 @@ "@docusaurus/theme-common@3.7.0": version "3.7.0" - resolved "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-3.7.0.tgz#18bf5c6b149a701f4bd865715ee8b595aa40b354" integrity sha512-8eJ5X0y+gWDsURZnBfH0WabdNm8XMCXHv8ENy/3Z/oQKwaB/EHt5lP9VsTDTf36lKEp0V6DjzjFyFIB+CetL0A== dependencies: "@docusaurus/mdx-loader" "3.7.0" @@ -1787,7 +1787,7 @@ "@docusaurus/theme-search-algolia@3.7.0": version "3.7.0" - resolved "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.7.0.tgz#2108ddf0b300b82de7c2b9ff9fcf62121b66ea37" integrity sha512-Al/j5OdzwRU1m3falm+sYy9AaB93S1XF1Lgk9Yc6amp80dNxJVplQdQTR4cYdzkGtuQqbzUA8+kaoYYO0RbK6g== dependencies: "@docsearch/react" "^3.8.1" @@ -1809,15 +1809,15 @@ "@docusaurus/theme-translations@3.7.0": version "3.7.0" - resolved "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-3.7.0.tgz#0891aedc7c7040afcb3a1b34051d3a69096d0d25" integrity sha512-Ewq3bEraWDmienM6eaNK7fx+/lHMtGDHQyd1O+4+3EsDxxUmrzPkV7Ct3nBWTuE0MsoZr3yNwQVKjllzCMuU3g== dependencies: fs-extra "^11.1.1" tslib "^2.6.0" -"@docusaurus/types@^3.6.0", "@docusaurus/types@3.7.0": +"@docusaurus/types@3.7.0", "@docusaurus/types@^3.6.0": version "3.7.0" - resolved "https://registry.npmjs.org/@docusaurus/types/-/types-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-3.7.0.tgz#3f5a68a60f80ecdcb085666da1d68f019afda943" integrity sha512-kOmZg5RRqJfH31m+6ZpnwVbkqMJrPOG5t0IOl4i/+3ruXyNfWzZ0lVtVrD0u4ONc/0NOsS9sWYaxxWNkH1LdLQ== dependencies: "@mdx-js/mdx" "^3.0.0" @@ -1832,7 +1832,7 @@ "@docusaurus/utils-common@3.7.0": version "3.7.0" - resolved "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-3.7.0.tgz#1bef52837d321db5dd2361fc07f3416193b5d029" integrity sha512-IZeyIfCfXy0Mevj6bWNg7DG7B8G+S6o6JVpddikZtWyxJguiQ7JYr0SIZ0qWd8pGNuMyVwriWmbWqMnK7Y5PwA== dependencies: "@docusaurus/types" "3.7.0" @@ -1840,7 +1840,7 @@ "@docusaurus/utils-validation@3.7.0": version "3.7.0" - resolved "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-3.7.0.tgz#dc0786fb633ae5cef8e93337bf21c2a826c7ecbd" integrity sha512-w8eiKk8mRdN+bNfeZqC4nyFoxNyI1/VExMKAzD9tqpJfLLbsa46Wfn5wcKH761g9WkKh36RtFV49iL9lh1DYBA== dependencies: "@docusaurus/logger" "3.7.0" @@ -1854,7 +1854,7 @@ "@docusaurus/utils@3.7.0": version "3.7.0" - resolved "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.7.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-3.7.0.tgz#dfdebd63524c52b498f36b2907a3b2261930b9bb" integrity sha512-e7zcB6TPnVzyUaHMJyLSArKa2AG3h9+4CfvKXKKWNx6hRs+p0a+u7HHTJBgo6KW2m+vqDnuIHK4X+bhmoghAFA== dependencies: "@docusaurus/logger" "3.7.0" @@ -1880,24 +1880,24 @@ "@fastify/busboy@^2.0.0": version "2.1.1" - resolved "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d" integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA== "@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0": version "9.3.0" - resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== "@hapi/topo@^5.1.0": version "5.1.0" - resolved "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== dependencies: "@hapi/hoek" "^9.0.0" "@isaacs/cliui@^8.0.2": version "8.0.2" - resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== dependencies: string-width "^5.1.2" @@ -1909,14 +1909,14 @@ "@jest/schemas@^29.6.3": version "29.6.3" - resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== dependencies: "@sinclair/typebox" "^0.27.8" "@jest/types@^29.6.3": version "29.6.3" - resolved "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== dependencies: "@jest/schemas" "^29.6.3" @@ -1928,7 +1928,7 @@ "@jridgewell/gen-mapping@^0.3.5": version "0.3.8" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142" integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== dependencies: "@jridgewell/set-array" "^1.2.1" @@ -1937,17 +1937,17 @@ "@jridgewell/resolve-uri@^3.1.0": version "3.1.2" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== "@jridgewell/set-array@^1.2.1": version "1.2.1" - resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== "@jridgewell/source-map@^0.3.3": version "0.3.6" - resolved "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== dependencies: "@jridgewell/gen-mapping" "^0.3.5" @@ -1955,12 +1955,12 @@ "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": version "1.5.0" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": version "0.3.25" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== dependencies: "@jridgewell/resolve-uri" "^3.1.0" @@ -1968,12 +1968,12 @@ "@leichtgewicht/ip-codec@^2.0.1": version "2.0.5" - resolved "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz#4fc56c15c580b9adb7dc3c333a134e540b44bfb1" integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== "@mdx-js/mdx@^3.0.0": version "3.1.0" - resolved "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-3.1.0.tgz#10235cab8ad7d356c262e8c21c68df5850a97dc3" integrity sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw== dependencies: "@types/estree" "^1.0.0" @@ -2003,27 +2003,27 @@ "@mdx-js/react@^3.0.0": version "3.1.0" - resolved "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-3.1.0.tgz#c4522e335b3897b9a845db1dbdd2f966ae8fb0ed" integrity sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ== dependencies: "@types/mdx" "^2.0.0" "@nodelib/fs.scandir@2.1.5": version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3": version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" @@ -2031,19 +2031,19 @@ "@pnpm/config.env-replace@^1.1.0": version "1.1.0" - resolved "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz#ab29da53df41e8948a00f2433f085f54de8b3a4c" integrity sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w== "@pnpm/network.ca-file@^1.0.1": version "1.0.2" - resolved "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz#2ab05e09c1af0cdf2fcf5035bea1484e222f7983" integrity sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA== dependencies: graceful-fs "4.2.10" "@pnpm/npm-conf@^2.1.0": version "2.3.1" - resolved "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz#bb375a571a0bd63ab0a23bece33033c683e9b6b0" integrity sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw== dependencies: "@pnpm/config.env-replace" "^1.1.0" @@ -2051,13 +2051,13 @@ config-chain "^1.1.11" "@polka/url@^1.0.0-next.24": - version "1.0.0-next.28" - resolved "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz" - integrity sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw== + version "1.0.0-next.29" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.29.tgz#5a40109a1ab5f84d6fd8fc928b19f367cbe7e7b1" + integrity sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww== "@puppeteer/browsers@2.6.1": version "2.6.1" - resolved "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.6.1.tgz" + resolved "https://registry.yarnpkg.com/@puppeteer/browsers/-/browsers-2.6.1.tgz#d75aec5010cae377c5e4742bf5e4f62a79c21315" integrity sha512-aBSREisdsGH890S2rQqK82qmQYU3uFpSH8wcZWHgHzl3LfzsxAKbLNiAG9mO8v1Y0UICBeClICxPJvyr0rcuxg== dependencies: debug "^4.4.0" @@ -2071,39 +2071,39 @@ "@sideway/address@^4.1.5": version "4.1.5" - resolved "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.5.tgz#4bc149a0076623ced99ca8208ba780d65a99b9d5" integrity sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q== dependencies: "@hapi/hoek" "^9.0.0" "@sideway/formula@^3.0.1": version "3.0.1" - resolved "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f" integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== "@sideway/pinpoint@^2.0.0": version "2.0.0" - resolved "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== "@sinclair/typebox@^0.27.8": version "0.27.8" - resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== "@sindresorhus/is@^4.6.0": version "4.6.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== "@sindresorhus/is@^5.2.0": version "5.6.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.6.0.tgz#41dd6093d34652cddb5d5bdeee04eafc33826668" integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== "@slorber/remark-comment@^1.0.0": version "1.0.0" - resolved "https://registry.npmjs.org/@slorber/remark-comment/-/remark-comment-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/@slorber/remark-comment/-/remark-comment-1.0.0.tgz#2a020b3f4579c89dec0361673206c28d67e08f5a" integrity sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA== dependencies: micromark-factory-space "^1.0.0" @@ -2112,47 +2112,47 @@ "@svgr/babel-plugin-add-jsx-attribute@8.0.0": version "8.0.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz#4001f5d5dd87fa13303e36ee106e3ff3a7eb8b22" integrity sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g== "@svgr/babel-plugin-remove-jsx-attribute@8.0.0": version "8.0.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz#69177f7937233caca3a1afb051906698f2f59186" integrity sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA== "@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0": version "8.0.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz#c2c48104cfd7dcd557f373b70a56e9e3bdae1d44" integrity sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA== "@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0": version "8.0.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz#8fbb6b2e91fa26ac5d4aa25c6b6e4f20f9c0ae27" integrity sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ== "@svgr/babel-plugin-svg-dynamic-title@8.0.0": version "8.0.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz#1d5ba1d281363fc0f2f29a60d6d936f9bbc657b0" integrity sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og== "@svgr/babel-plugin-svg-em-dimensions@8.0.0": version "8.0.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz#35e08df300ea8b1d41cb8f62309c241b0369e501" integrity sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g== "@svgr/babel-plugin-transform-react-native-svg@8.1.0": version "8.1.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz#90a8b63998b688b284f255c6a5248abd5b28d754" integrity sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q== "@svgr/babel-plugin-transform-svg-component@8.0.0": version "8.0.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz#013b4bfca88779711f0ed2739f3f7efcefcf4f7e" integrity sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw== "@svgr/babel-preset@8.1.0": version "8.1.0" - resolved "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-8.1.0.tgz#0e87119aecdf1c424840b9d4565b7137cabf9ece" integrity sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug== dependencies: "@svgr/babel-plugin-add-jsx-attribute" "8.0.0" @@ -2164,9 +2164,9 @@ "@svgr/babel-plugin-transform-react-native-svg" "8.1.0" "@svgr/babel-plugin-transform-svg-component" "8.0.0" -"@svgr/core@*", "@svgr/core@8.1.0": +"@svgr/core@8.1.0": version "8.1.0" - resolved "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-8.1.0.tgz#41146f9b40b1a10beaf5cc4f361a16a3c1885e88" integrity sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA== dependencies: "@babel/core" "^7.21.3" @@ -2177,7 +2177,7 @@ "@svgr/hast-util-to-babel-ast@8.0.0": version "8.0.0" - resolved "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz#6952fd9ce0f470e1aded293b792a2705faf4ffd4" integrity sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q== dependencies: "@babel/types" "^7.21.3" @@ -2185,7 +2185,7 @@ "@svgr/plugin-jsx@8.1.0": version "8.1.0" - resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz#96969f04a24b58b174ee4cd974c60475acbd6928" integrity sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA== dependencies: "@babel/core" "^7.21.3" @@ -2195,7 +2195,7 @@ "@svgr/plugin-svgo@8.1.0": version "8.1.0" - resolved "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz#b115b7b967b564f89ac58feae89b88c3decd0f00" integrity sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA== dependencies: cosmiconfig "^8.1.3" @@ -2204,7 +2204,7 @@ "@svgr/webpack@^8.1.0": version "8.1.0" - resolved "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-8.1.0.tgz#16f1b5346f102f89fda6ec7338b96a701d8be0c2" integrity sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA== dependencies: "@babel/core" "^7.21.3" @@ -2218,31 +2218,24 @@ "@szmarczak/http-timer@^5.0.1": version "5.0.1" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== dependencies: defer-to-connect "^2.0.1" "@tootallnate/quickjs-emscripten@^0.23.0": version "0.23.0" - resolved "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz" + resolved "https://registry.yarnpkg.com/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz#db4ecfd499a9765ab24002c3b696d02e6d32a12c" integrity sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA== "@trysound/sax@0.2.0": version "0.2.0" - resolved "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== -"@types/acorn@^4.0.0": - version "4.0.6" - resolved "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz" - integrity sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ== - dependencies: - "@types/estree" "*" - "@types/body-parser@*": version "1.19.5" - resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz" + resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" integrity sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg== dependencies: "@types/connect" "*" @@ -2250,14 +2243,14 @@ "@types/bonjour@^3.5.9": version "3.5.13" - resolved "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz" + resolved "https://registry.yarnpkg.com/@types/bonjour/-/bonjour-3.5.13.tgz#adf90ce1a105e81dd1f9c61fdc5afda1bfb92956" integrity sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ== dependencies: "@types/node" "*" "@types/connect-history-api-fallback@^1.3.5": version "1.5.4" - resolved "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz" + resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz#7de71645a103056b48ac3ce07b3520b819c1d5b3" integrity sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw== dependencies: "@types/express-serve-static-core" "*" @@ -2265,21 +2258,21 @@ "@types/connect@*": version "3.4.38" - resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.38.tgz#5ba7f3bc4fbbdeaff8dded952e5ff2cc53f8d858" integrity sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== dependencies: "@types/node" "*" "@types/debug@^4.0.0": version "4.1.12" - resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== dependencies: "@types/ms" "*" "@types/eslint-scope@^3.7.7": version "3.7.7" - resolved "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== dependencies: "@types/eslint" "*" @@ -2287,7 +2280,7 @@ "@types/eslint@*": version "9.6.1" - resolved "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.1.tgz#d5795ad732ce81715f27f75da913004a56751584" integrity sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag== dependencies: "@types/estree" "*" @@ -2295,20 +2288,20 @@ "@types/estree-jsx@^1.0.0": version "1.0.5" - resolved "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/@types/estree-jsx/-/estree-jsx-1.0.5.tgz#858a88ea20f34fe65111f005a689fa1ebf70dc18" integrity sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg== dependencies: "@types/estree" "*" "@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.6": - version "1.0.6" - resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz" - integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== + version "1.0.7" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.7.tgz#4158d3105276773d5b7695cd4834b1722e4f37a8" + integrity sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ== "@types/express-serve-static-core@*", "@types/express-serve-static-core@^5.0.0": - version "5.0.5" - resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.5.tgz" - integrity sha512-GLZPrd9ckqEBFMcVM/qRFAP0Hg3qiVEojgEFsx/N/zKXsBzbGF6z5FBDpZ0+Xhp1xr+qRZYjfGr1cWHB9oFHSA== + version "5.0.6" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz#41fec4ea20e9c7b22f024ab88a95c6bb288f51b8" + integrity sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA== dependencies: "@types/node" "*" "@types/qs" "*" @@ -2317,7 +2310,7 @@ "@types/express-serve-static-core@^4.17.33": version "4.19.6" - resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz#e01324c2a024ff367d92c66f48553ced0ab50267" integrity sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A== dependencies: "@types/node" "*" @@ -2326,18 +2319,17 @@ "@types/send" "*" "@types/express@*": - version "5.0.0" - resolved "https://registry.npmjs.org/@types/express/-/express-5.0.0.tgz" - integrity sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ== + version "5.0.1" + resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.1.tgz#138d741c6e5db8cc273bec5285cd6e9d0779fc9f" + integrity sha512-UZUw8vjpWFXuDnjFTh7/5c2TWDlQqeXHi6hcN7F2XSVT5P+WmUnnbFS3KA6Jnc6IsEqI2qCVu2bK0R0J4A8ZQQ== dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^5.0.0" - "@types/qs" "*" "@types/serve-static" "*" "@types/express@^4.17.13": version "4.17.21" - resolved "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== dependencies: "@types/body-parser" "*" @@ -2347,136 +2339,131 @@ "@types/gtag.js@^0.0.12": version "0.0.12" - resolved "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.12.tgz" + resolved "https://registry.yarnpkg.com/@types/gtag.js/-/gtag.js-0.0.12.tgz#095122edca896689bdfcdd73b057e23064d23572" integrity sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg== "@types/hast@^3.0.0": version "3.0.4" - resolved "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa" integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== dependencies: "@types/unist" "*" "@types/history@^4.7.11": version "4.7.11" - resolved "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz" + resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.11.tgz#56588b17ae8f50c53983a524fc3cc47437969d64" integrity sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA== "@types/html-minifier-terser@^6.0.0": version "6.1.0" - resolved "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg== "@types/http-cache-semantics@^4.0.2": version "4.0.4" - resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== "@types/http-errors@*": version "2.0.4" - resolved "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" integrity sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA== "@types/http-proxy@^1.17.8": - version "1.17.15" - resolved "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz" - integrity sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ== + version "1.17.16" + resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.16.tgz#dee360707b35b3cc85afcde89ffeebff7d7f9240" + integrity sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w== dependencies: "@types/node" "*" "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": version "2.0.6" - resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== "@types/istanbul-lib-report@*": version "3.0.3" - resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-reports@^3.0.0": version "3.0.4" - resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== dependencies: "@types/istanbul-lib-report" "*" "@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.15" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/mdast@^4.0.0", "@types/mdast@^4.0.2": version "4.0.4" - resolved "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-4.0.4.tgz#7ccf72edd2f1aa7dd3437e180c64373585804dd6" integrity sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA== dependencies: "@types/unist" "*" "@types/mdx@^2.0.0": version "2.0.13" - resolved "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz" + resolved "https://registry.yarnpkg.com/@types/mdx/-/mdx-2.0.13.tgz#68f6877043d377092890ff5b298152b0a21671bd" integrity sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw== "@types/mime@^1": version "1.3.5" - resolved "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz" + resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== "@types/ms@*": - version "0.7.34" - resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz" - integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78" + integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== "@types/node-forge@^1.3.0": version "1.3.11" - resolved "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz" + resolved "https://registry.yarnpkg.com/@types/node-forge/-/node-forge-1.3.11.tgz#0972ea538ddb0f4d9c2fa0ec5db5724773a604da" integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== dependencies: "@types/node" "*" "@types/node@*": - version "22.10.6" - resolved "https://registry.npmjs.org/@types/node/-/node-22.10.6.tgz" - integrity sha512-qNiuwC4ZDAUNcY47xgaSuS92cjf8JbSUoaKS77bmLG1rU7MlATVSiw/IlrjtIyyskXBZ8KkNfjK/P5na7rgXbQ== + version "22.14.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.14.1.tgz#53b54585cec81c21eee3697521e31312d6ca1e6f" + integrity sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw== dependencies: - undici-types "~6.20.0" + undici-types "~6.21.0" "@types/node@^17.0.5": version "17.0.45" - resolved "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190" integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw== "@types/parse-json@^4.0.0": version "4.0.2" - resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== "@types/prismjs@^1.26.0": version "1.26.5" - resolved "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz" + resolved "https://registry.yarnpkg.com/@types/prismjs/-/prismjs-1.26.5.tgz#72499abbb4c4ec9982446509d2f14fb8483869d6" integrity sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ== -"@types/prop-types@*": - version "15.7.14" - resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz" - integrity sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ== - "@types/qs@*": version "6.9.18" - resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.18.tgz#877292caa91f7c1b213032b34626505b746624c2" integrity sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA== "@types/range-parser@*": version "1.2.7" - resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz" + resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== "@types/react-router-config@*", "@types/react-router-config@^5.0.7": version "5.0.11" - resolved "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.11.tgz" + resolved "https://registry.yarnpkg.com/@types/react-router-config/-/react-router-config-5.0.11.tgz#2761a23acc7905a66a94419ee40294a65aaa483a" integrity sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw== dependencies: "@types/history" "^4.7.11" @@ -2485,7 +2472,7 @@ "@types/react-router-dom@*": version "5.3.3" - resolved "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz" + resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz#e9d6b4a66fcdbd651a5f106c2656a30088cc1e83" integrity sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw== dependencies: "@types/history" "^4.7.11" @@ -2494,35 +2481,34 @@ "@types/react-router@*", "@types/react-router@^5.1.0": version "5.1.20" - resolved "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz" + resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.20.tgz#88eccaa122a82405ef3efbcaaa5dcdd9f021387c" integrity sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q== dependencies: "@types/history" "^4.7.11" "@types/react" "*" -"@types/react@*", "@types/react@>= 16.8.0 < 19.0.0", "@types/react@>=16": - version "18.3.18" - resolved "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz" - integrity sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ== +"@types/react@*": + version "19.1.2" + resolved "https://registry.yarnpkg.com/@types/react/-/react-19.1.2.tgz#11df86f66f188f212c90ecb537327ec68bfd593f" + integrity sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw== dependencies: - "@types/prop-types" "*" csstype "^3.0.2" "@types/retry@0.12.0": version "0.12.0" - resolved "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz" + resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d" integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== "@types/sax@^1.2.1": version "1.2.7" - resolved "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz" + resolved "https://registry.yarnpkg.com/@types/sax/-/sax-1.2.7.tgz#ba5fe7df9aa9c89b6dff7688a19023dd2963091d" integrity sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A== dependencies: "@types/node" "*" "@types/send@*": version "0.17.4" - resolved "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz" + resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" integrity sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA== dependencies: "@types/mime" "^1" @@ -2530,14 +2516,14 @@ "@types/serve-index@^1.9.1": version "1.9.4" - resolved "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz" + resolved "https://registry.yarnpkg.com/@types/serve-index/-/serve-index-1.9.4.tgz#e6ae13d5053cb06ed36392110b4f9a49ac4ec898" integrity sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug== dependencies: "@types/express" "*" "@types/serve-static@*", "@types/serve-static@^1.13.10": version "1.15.7" - resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== dependencies: "@types/http-errors" "*" @@ -2546,55 +2532,55 @@ "@types/sockjs@^0.3.33": version "0.3.36" - resolved "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz" + resolved "https://registry.yarnpkg.com/@types/sockjs/-/sockjs-0.3.36.tgz#ce322cf07bcc119d4cbf7f88954f3a3bd0f67535" integrity sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q== dependencies: "@types/node" "*" "@types/unist@*", "@types/unist@^3.0.0": version "3.0.3" - resolved "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.3.tgz#acaab0f919ce69cce629c2d4ed2eb4adc1b6c20c" integrity sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q== "@types/unist@^2.0.0": version "2.0.11" - resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.11.tgz#11af57b127e32487774841f7a4e54eab166d03c4" integrity sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA== "@types/ws@^8.5.5": - version "8.5.13" - resolved "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz" - integrity sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA== + version "8.18.1" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.18.1.tgz#48464e4bf2ddfd17db13d845467f6070ffea4aa9" + integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== dependencies: "@types/node" "*" "@types/yargs-parser@*": version "21.0.3" - resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== "@types/yargs@^17.0.8": version "17.0.33" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d" integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== dependencies: "@types/yargs-parser" "*" "@types/yauzl@^2.9.1": version "2.10.3" - resolved "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.3.tgz#e9b2808b4f109504a03cda958259876f61017999" integrity sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q== dependencies: "@types/node" "*" "@ungap/structured-clone@^1.0.0": - version "1.2.1" - resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.1.tgz" - integrity sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA== + version "1.3.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" + integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== -"@webassemblyjs/ast@^1.14.1", "@webassemblyjs/ast@1.14.1": +"@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": version "1.14.1" - resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6" integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== dependencies: "@webassemblyjs/helper-numbers" "1.13.2" @@ -2602,22 +2588,22 @@ "@webassemblyjs/floating-point-hex-parser@1.13.2": version "1.13.2" - resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz#fcca1eeddb1cc4e7b6eed4fc7956d6813b21b9fb" integrity sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA== "@webassemblyjs/helper-api-error@1.13.2": version "1.13.2" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz#e0a16152248bc38daee76dd7e21f15c5ef3ab1e7" integrity sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ== "@webassemblyjs/helper-buffer@1.14.1": version "1.14.1" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz#822a9bc603166531f7d5df84e67b5bf99b72b96b" integrity sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA== "@webassemblyjs/helper-numbers@1.13.2": version "1.13.2" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz#dbd932548e7119f4b8a7877fd5a8d20e63490b2d" integrity sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA== dependencies: "@webassemblyjs/floating-point-hex-parser" "1.13.2" @@ -2626,12 +2612,12 @@ "@webassemblyjs/helper-wasm-bytecode@1.13.2": version "1.13.2" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz#e556108758f448aae84c850e593ce18a0eb31e0b" integrity sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA== "@webassemblyjs/helper-wasm-section@1.14.1": version "1.14.1" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz#9629dda9c4430eab54b591053d6dc6f3ba050348" integrity sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw== dependencies: "@webassemblyjs/ast" "1.14.1" @@ -2641,26 +2627,26 @@ "@webassemblyjs/ieee754@1.13.2": version "1.13.2" - resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz#1c5eaace1d606ada2c7fd7045ea9356c59ee0dba" integrity sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw== dependencies: "@xtuc/ieee754" "^1.2.0" "@webassemblyjs/leb128@1.13.2": version "1.13.2" - resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz#57c5c3deb0105d02ce25fa3fd74f4ebc9fd0bbb0" integrity sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw== dependencies: "@xtuc/long" "4.2.2" "@webassemblyjs/utf8@1.13.2": version "1.13.2" - resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz#917a20e93f71ad5602966c2d685ae0c6c21f60f1" integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ== "@webassemblyjs/wasm-edit@^1.14.1": version "1.14.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz#ac6689f502219b59198ddec42dcd496b1004d597" integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ== dependencies: "@webassemblyjs/ast" "1.14.1" @@ -2674,7 +2660,7 @@ "@webassemblyjs/wasm-gen@1.14.1": version "1.14.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz#991e7f0c090cb0bb62bbac882076e3d219da9570" integrity sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg== dependencies: "@webassemblyjs/ast" "1.14.1" @@ -2685,7 +2671,7 @@ "@webassemblyjs/wasm-opt@1.14.1": version "1.14.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz#e6f71ed7ccae46781c206017d3c14c50efa8106b" integrity sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw== dependencies: "@webassemblyjs/ast" "1.14.1" @@ -2693,9 +2679,9 @@ "@webassemblyjs/wasm-gen" "1.14.1" "@webassemblyjs/wasm-parser" "1.14.1" -"@webassemblyjs/wasm-parser@^1.14.1", "@webassemblyjs/wasm-parser@1.14.1": +"@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.14.1": version "1.14.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz#b3e13f1893605ca78b52c68e54cf6a865f90b9fb" integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== dependencies: "@webassemblyjs/ast" "1.14.1" @@ -2707,7 +2693,7 @@ "@webassemblyjs/wast-printer@1.14.1": version "1.14.1" - resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz#3bb3e9638a8ae5fdaf9610e7a06b4d9f9aa6fe07" integrity sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw== dependencies: "@webassemblyjs/ast" "1.14.1" @@ -2715,17 +2701,17 @@ "@xtuc/ieee754@^1.2.0": version "1.2.0" - resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== "@xtuc/long@4.2.2": version "4.2.2" - resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== accepts@~1.3.4, accepts@~1.3.8: version "1.3.8" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== dependencies: mime-types "~2.1.34" @@ -2733,34 +2719,34 @@ accepts@~1.3.4, accepts@~1.3.8: acorn-jsx@^5.0.0: version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^8.0.0: version "8.3.4" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== dependencies: acorn "^8.11.0" -"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.0.0, acorn@^8.0.4, acorn@^8.11.0, acorn@^8.14.0, acorn@^8.8.2: - version "8.14.0" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz" - integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== +acorn@^8.0.0, acorn@^8.0.4, acorn@^8.11.0, acorn@^8.14.0, acorn@^8.8.2: + version "8.14.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.1.tgz#721d5dc10f7d5b5609a891773d47731796935dfb" + integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg== address@^1.0.1, address@^1.1.2: version "1.2.2" - resolved "https://registry.npmjs.org/address/-/address-1.2.2.tgz" + resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== agent-base@^7.1.0, agent-base@^7.1.2: version "7.1.3" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.3.tgz#29435eb821bc4194633a5b89e5bc4703bafc25a1" integrity sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw== aggregate-error@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== dependencies: clean-stack "^2.0.0" @@ -2768,26 +2754,26 @@ aggregate-error@^3.0.0: ajv-formats@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== dependencies: ajv "^8.0.0" ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: version "3.5.2" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== ajv-keywords@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16" integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw== dependencies: fast-deep-equal "^3.1.3" -ajv@^6.12.2, ajv@^6.12.5, ajv@^6.9.1: +ajv@^6.12.2, ajv@^6.12.5: version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -2795,9 +2781,9 @@ ajv@^6.12.2, ajv@^6.12.5, ajv@^6.9.1: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.8.2, ajv@^8.9.0: +ajv@^8.0.0, ajv@^8.9.0: version "8.17.1" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== dependencies: fast-deep-equal "^3.1.3" @@ -2806,82 +2792,75 @@ ajv@^8.0.0, ajv@^8.8.2, ajv@^8.9.0: require-from-string "^2.0.2" algoliasearch-helper@^3.22.6: - version "3.23.0" - resolved "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.23.0.tgz" - integrity sha512-8CK4Gb/ju4OesAYcS+mjBpNiVA7ILWpg7D2vhBZohh0YkG8QT1KZ9LG+8+EntQBUGoKtPy06OFhiwP4f5zzAQg== + version "3.24.3" + resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.24.3.tgz#9a358c3110bcd912e79ef606a6e7bdd7725d22ee" + integrity sha512-3QKg5lzSfUiPN8Hn1ViHEGv6PjK7i4SFEDLzwlSzPO/4mVOsyos7B7/AsEtFQW5KHHPiCq6DyJl+mzg7CYlEgw== dependencies: "@algolia/events" "^4.0.1" -algoliasearch@^5.14.2, algoliasearch@^5.17.1, "algoliasearch@>= 3.1 < 6", "algoliasearch@>= 4.9.1 < 6": - version "5.19.0" - resolved "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.19.0.tgz" - integrity sha512-zrLtGhC63z3sVLDDKGW+SlCRN9eJHFTgdEmoAOpsVh6wgGL1GgTTDou7tpCBjevzgIvi3AIyDAQO3Xjbg5eqZg== - dependencies: - "@algolia/client-abtesting" "5.19.0" - "@algolia/client-analytics" "5.19.0" - "@algolia/client-common" "5.19.0" - "@algolia/client-insights" "5.19.0" - "@algolia/client-personalization" "5.19.0" - "@algolia/client-query-suggestions" "5.19.0" - "@algolia/client-search" "5.19.0" - "@algolia/ingestion" "1.19.0" - "@algolia/monitoring" "1.19.0" - "@algolia/recommend" "5.19.0" - "@algolia/requester-browser-xhr" "5.19.0" - "@algolia/requester-fetch" "5.19.0" - "@algolia/requester-node-http" "5.19.0" +algoliasearch@^5.14.2, algoliasearch@^5.17.1: + version "5.23.4" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-5.23.4.tgz#2f8c6e6f540b0a73effa69cb05310f7843012e2d" + integrity sha512-QzAKFHl3fm53s44VHrTdEo0TkpL3XVUYQpnZy1r6/EHvMAyIg+O4hwprzlsNmcCHTNyVcF2S13DAUn7XhkC6qg== + dependencies: + "@algolia/client-abtesting" "5.23.4" + "@algolia/client-analytics" "5.23.4" + "@algolia/client-common" "5.23.4" + "@algolia/client-insights" "5.23.4" + "@algolia/client-personalization" "5.23.4" + "@algolia/client-query-suggestions" "5.23.4" + "@algolia/client-search" "5.23.4" + "@algolia/ingestion" "1.23.4" + "@algolia/monitoring" "1.23.4" + "@algolia/recommend" "5.23.4" + "@algolia/requester-browser-xhr" "5.23.4" + "@algolia/requester-fetch" "5.23.4" + "@algolia/requester-node-http" "5.23.4" ansi-align@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w== dependencies: string-width "^4.1.0" ansi-escapes@^4.3.2: version "4.3.2" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" ansi-html-community@^0.0.8: version "0.0.8" - resolved "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-regex@^6.0.1: version "6.1.0" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== -ansi-styles@^4.0.0: +ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" ansi-styles@^6.1.0, ansi-styles@^6.2.1: version "6.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== anymatch@~3.1.2: version "3.1.3" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" @@ -2889,73 +2868,73 @@ anymatch@~3.1.2: arg@^5.0.0: version "5.0.2" - resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== argparse@^1.0.7: version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" argparse@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== array-flatten@1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== array-union@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== ast-types@^0.13.4: version "0.13.4" - resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782" integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w== dependencies: tslib "^2.0.1" astring@^1.8.0: version "1.9.0" - resolved "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz" + resolved "https://registry.yarnpkg.com/astring/-/astring-1.9.0.tgz#cc73e6062a7eb03e7d19c22d8b0b3451fd9bfeef" integrity sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg== async@^3.2.4: version "3.2.6" - resolved "https://registry.npmjs.org/async/-/async-3.2.6.tgz" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== at-least-node@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -autoprefixer@^10.4.19: - version "10.4.20" - resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz" - integrity sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g== +autoprefixer@^10.4.19, autoprefixer@^10.4.21: + version "10.4.21" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.21.tgz#77189468e7a8ad1d9a37fbc08efc9f480cf0a95d" + integrity sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ== dependencies: - browserslist "^4.23.3" - caniuse-lite "^1.0.30001646" + browserslist "^4.24.4" + caniuse-lite "^1.0.30001702" fraction.js "^4.3.7" normalize-range "^0.1.2" - picocolors "^1.0.1" + picocolors "^1.1.1" postcss-value-parser "^4.2.0" b4a@^1.6.4: version "1.6.7" - resolved "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz" + resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.7.tgz#a99587d4ebbfbd5a6e3b21bdb5d5fa385767abe4" integrity sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg== babel-loader@^9.2.1: version "9.2.1" - resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-9.2.1.tgz#04c7835db16c246dd19ba0914418f3937797587b" integrity sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA== dependencies: find-cache-dir "^4.0.0" @@ -2963,106 +2942,106 @@ babel-loader@^9.2.1: babel-plugin-dynamic-import-node@^2.3.3: version "2.3.3" - resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== dependencies: object.assign "^4.1.0" babel-plugin-polyfill-corejs2@^0.4.10: - version "0.4.12" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz" - integrity sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og== + version "0.4.13" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz#7d445f0e0607ebc8fb6b01d7e8fb02069b91dd8b" + integrity sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g== dependencies: "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.6.3" + "@babel/helper-define-polyfill-provider" "^0.6.4" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.10.6: - version "0.10.6" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz" - integrity sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA== +babel-plugin-polyfill-corejs3@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz#4e4e182f1bb37c7ba62e2af81d8dd09df31344f6" + integrity sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ== dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.2" - core-js-compat "^3.38.0" + "@babel/helper-define-polyfill-provider" "^0.6.3" + core-js-compat "^3.40.0" babel-plugin-polyfill-regenerator@^0.6.1: - version "0.6.3" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz" - integrity sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q== + version "0.6.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz#428c615d3c177292a22b4f93ed99e358d7906a9b" + integrity sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw== dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.3" + "@babel/helper-define-polyfill-provider" "^0.6.4" bail@^2.0.0: version "2.0.2" - resolved "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -bare-events@*, bare-events@^2.0.0, bare-events@^2.2.0: +bare-events@^2.2.0, bare-events@^2.5.4: version "2.5.4" - resolved "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz" + resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.5.4.tgz#16143d435e1ed9eafd1ab85f12b89b3357a41745" integrity sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA== bare-fs@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/bare-fs/-/bare-fs-4.0.1.tgz" - integrity sha512-ilQs4fm/l9eMfWY2dY0WCIUplSUp7U0CT1vrqMg1MUdeZl4fypu5UP0XcDBK5WBQPJAKP1b7XEodISmekH/CEg== + version "4.1.2" + resolved "https://registry.yarnpkg.com/bare-fs/-/bare-fs-4.1.2.tgz#5b048298019f489979d5a6afb480f5204ad4e89b" + integrity sha512-8wSeOia5B7LwD4+h465y73KOdj5QHsbbuoUfPBi+pXgFJIPuG7SsiOdJuijWMyfid49eD+WivpfY7KT8gbAzBA== dependencies: - bare-events "^2.0.0" + bare-events "^2.5.4" bare-path "^3.0.0" - bare-stream "^2.0.0" + bare-stream "^2.6.4" bare-os@^3.0.1: - version "3.4.0" - resolved "https://registry.npmjs.org/bare-os/-/bare-os-3.4.0.tgz" - integrity sha512-9Ous7UlnKbe3fMi7Y+qh0DwAup6A1JkYgPnjvMDNOlmnxNRQvQ/7Nst+OnUQKzk0iAT0m9BisbDVp9gCv8+ETA== + version "3.6.1" + resolved "https://registry.yarnpkg.com/bare-os/-/bare-os-3.6.1.tgz#9921f6f59edbe81afa9f56910658422c0f4858d4" + integrity sha512-uaIjxokhFidJP+bmmvKSgiMzj2sV5GPHaZVAIktcxcpCyBFFWO+YlikVAdhmUo2vYFvFhOXIAlldqV29L8126g== bare-path@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/bare-path/-/bare-path-3.0.0.tgz#b59d18130ba52a6af9276db3e96a2e3d3ea52178" integrity sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw== dependencies: bare-os "^3.0.1" -bare-stream@^2.0.0: - version "2.6.4" - resolved "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.4.tgz" - integrity sha512-G6i3A74FjNq4nVrrSTUz5h3vgXzBJnjmWAVlBWaZETkgu+LgKd7AiyOml3EDJY1AHlIbBHKDXE+TUT53Ff8OaA== +bare-stream@^2.6.4: + version "2.6.5" + resolved "https://registry.yarnpkg.com/bare-stream/-/bare-stream-2.6.5.tgz#bba8e879674c4c27f7e27805df005c15d7a2ca07" + integrity sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA== dependencies: streamx "^2.21.0" base64-js@^1.3.1: version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== basic-ftp@^5.0.2: version "5.0.5" - resolved "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz" + resolved "https://registry.yarnpkg.com/basic-ftp/-/basic-ftp-5.0.5.tgz#14a474f5fffecca1f4f406f1c26b18f800225ac0" integrity sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg== batch@0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== big.js@^5.2.2: version "5.2.2" - resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== binary-extensions@^2.0.0: version "2.3.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== body-parser@1.20.3: version "1.20.3" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== dependencies: bytes "3.1.2" @@ -3080,7 +3059,7 @@ body-parser@1.20.3: bonjour-service@^1.0.11: version "1.3.0" - resolved "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.3.0.tgz#80d867430b5a0da64e82a8047fc1e355bdb71722" integrity sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA== dependencies: fast-deep-equal "^3.1.3" @@ -3088,12 +3067,12 @@ bonjour-service@^1.0.11: boolbase@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== boxen@^6.2.1: version "6.2.1" - resolved "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-6.2.1.tgz#b098a2278b2cd2845deef2dff2efc38d329b434d" integrity sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw== dependencies: ansi-align "^3.0.1" @@ -3107,7 +3086,7 @@ boxen@^6.2.1: boxen@^7.0.0: version "7.1.1" - resolved "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-7.1.1.tgz#f9ba525413c2fec9cdb88987d835c4f7cad9c8f4" integrity sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog== dependencies: ansi-align "^3.0.1" @@ -3121,7 +3100,7 @@ boxen@^7.0.0: brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" @@ -3129,21 +3108,21 @@ brace-expansion@^1.1.7: brace-expansion@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== dependencies: balanced-match "^1.0.0" braces@^3.0.3, braces@~3.0.2: version "3.0.3" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: fill-range "^7.1.1" -browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.23.0, browserslist@^4.23.1, browserslist@^4.23.3, browserslist@^4.24.0, browserslist@^4.24.3, "browserslist@>= 4.21.0": +browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.23.0, browserslist@^4.24.0, browserslist@^4.24.4: version "4.24.4" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b" integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== dependencies: caniuse-lite "^1.0.30001688" @@ -3153,17 +3132,17 @@ browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.23.0, browserslist@^4 buffer-crc32@~0.2.3: version "0.2.13" - resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== buffer-from@^1.0.0: version "1.1.2" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== buffer@^5.2.1: version "5.7.1" - resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== dependencies: base64-js "^1.3.1" @@ -3171,22 +3150,22 @@ buffer@^5.2.1: bytes@3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== bytes@3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== cacheable-lookup@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== cacheable-request@^10.2.8: version "10.2.14" - resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.14.tgz#eb915b665fda41b79652782df3f553449c406b9d" integrity sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ== dependencies: "@types/http-cache-semantics" "^4.0.2" @@ -3197,17 +3176,17 @@ cacheable-request@^10.2.8: normalize-url "^8.0.0" responselike "^3.0.0" -call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz" - integrity sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g== +call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== dependencies: es-errors "^1.3.0" function-bind "^1.1.2" call-bind@^1.0.8: version "1.0.8" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== dependencies: call-bind-apply-helpers "^1.0.0" @@ -3216,21 +3195,21 @@ call-bind@^1.0.8: set-function-length "^1.2.2" call-bound@^1.0.2, call-bound@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz" - integrity sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" + integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== dependencies: - call-bind-apply-helpers "^1.0.1" - get-intrinsic "^1.2.6" + call-bind-apply-helpers "^1.0.2" + get-intrinsic "^1.3.0" callsites@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camel-case@^4.1.2: version "4.1.2" - resolved "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== dependencies: pascal-case "^3.1.2" @@ -3238,17 +3217,17 @@ camel-case@^4.1.2: camelcase@^6.2.0: version "6.3.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== camelcase@^7.0.1: version "7.0.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-7.0.1.tgz#f02e50af9fd7782bc8b88a3558c32fd3a388f048" integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== caniuse-api@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== dependencies: browserslist "^4.0.0" @@ -3256,19 +3235,19 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001688: - version "1.0.30001692" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001692.tgz" - integrity sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001688, caniuse-lite@^1.0.30001702: + version "1.0.30001715" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001715.tgz#bd325a37ad366e3fe90827d74062807a34fbaeb2" + integrity sha512-7ptkFGMm2OAOgvZpwgA4yjQ5SQbrNVGdRjzH0pBdy1Fasvcr+KAeECmbCAECzTuDuoX0FCY8KzUxjf9+9kfZEw== ccount@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -3276,37 +3255,37 @@ chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: chalk@^5.0.1, chalk@^5.2.0: version "5.4.1" - resolved "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.4.1.tgz#1b48bf0963ec158dce2aacf69c093ae2dd2092d8" integrity sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w== char-regex@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== character-entities-html4@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== character-entities-legacy@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== character-entities@^2.0.0: version "2.0.2" - resolved "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== character-reference-invalid@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz#85c66b041e43b47210faf401278abf808ac45cb9" integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw== cheerio-select@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== dependencies: boolbase "^1.0.0" @@ -3318,7 +3297,7 @@ cheerio-select@^2.1.0: cheerio@1.0.0-rc.12: version "1.0.0-rc.12" - resolved "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683" integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== dependencies: cheerio-select "^2.1.0" @@ -3331,7 +3310,7 @@ cheerio@1.0.0-rc.12: chokidar@^3.4.2, chokidar@^3.5.3: version "3.6.0" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== dependencies: anymatch "~3.1.2" @@ -3346,12 +3325,12 @@ chokidar@^3.4.2, chokidar@^3.5.3: chrome-trace-event@^1.0.2: version "1.0.4" - resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== chromium-bidi@0.11.0: version "0.11.0" - resolved "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.11.0.tgz" + resolved "https://registry.yarnpkg.com/chromium-bidi/-/chromium-bidi-0.11.0.tgz#9c3c42ee7b42d8448e9fce8d649dc8bfbcc31153" integrity sha512-6CJWHkNRoyZyjV9Rwv2lYONZf1Xm0IuDyNq97nwSsxxP3wf5Bwy15K5rOvVKMtJ127jJBmxFUanSAOjgFRxgrA== dependencies: mitt "3.0.1" @@ -3359,29 +3338,29 @@ chromium-bidi@0.11.0: ci-info@^3.2.0: version "3.9.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== clean-css@^5.2.2, clean-css@^5.3.2, clean-css@~5.3.2: version "5.3.3" - resolved "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.3.tgz#b330653cd3bd6b75009cc25c714cae7b93351ccd" integrity sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg== dependencies: source-map "~0.6.0" clean-stack@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== cli-boxes@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-3.0.0.tgz#71a10c716feeba005e4504f36329ef0b17cf3145" integrity sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g== cli-table3@^0.6.3: version "0.6.5" - resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.5.tgz#013b91351762739c16a9567c21a04632e449bf2f" integrity sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ== dependencies: string-width "^4.2.0" @@ -3390,7 +3369,7 @@ cli-table3@^0.6.3: cliui@^8.0.1: version "8.0.1" - resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== dependencies: string-width "^4.2.0" @@ -3399,7 +3378,7 @@ cliui@^8.0.1: clone-deep@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== dependencies: is-plain-object "^2.0.4" @@ -3408,97 +3387,97 @@ clone-deep@^4.0.1: clsx@^2.0.0: version "2.1.1" - resolved "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.1.1.tgz#eed397c9fd8bd882bfb18deab7102049a2f32999" integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== collapse-white-space@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-2.1.0.tgz#640257174f9f42c740b40f3b55ee752924feefca" integrity sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw== color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@~1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== colord@^2.9.3: version "2.9.3" - resolved "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== colorette@^2.0.10: version "2.0.20" - resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== combine-promises@^1.1.0: version "1.2.0" - resolved "https://registry.npmjs.org/combine-promises/-/combine-promises-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/combine-promises/-/combine-promises-1.2.0.tgz#5f2e68451862acf85761ded4d9e2af7769c2ca6a" integrity sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ== comma-separated-tokens@^2.0.0: version "2.0.3" - resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== commander@^10.0.0: version "10.0.1" - resolved "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== commander@^13.0.0: - version "13.0.0" - resolved "https://registry.npmjs.org/commander/-/commander-13.0.0.tgz" - integrity sha512-oPYleIY8wmTVzkvQq10AEok6YcTC4sRUBl8F9gVuwchGVUCTbl/vhLTaQqutuuySYOsu8YTgV+OxKc/8Yvx+mQ== + version "13.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-13.1.0.tgz#776167db68c78f38dcce1f9b8d7b8b9a488abf46" + integrity sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw== commander@^2.20.0: version "2.20.3" - resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== commander@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== commander@^7.2.0: version "7.2.0" - resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== commander@^8.3.0: version "8.3.0" - resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== common-path-prefix@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz#7d007a7e07c58c4b4d5f433131a19141b29f11e0" integrity sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w== commondir@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== compressible@~2.0.18: version "2.0.18" - resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== dependencies: mime-db ">= 1.43.0 < 2" compression@^1.7.4: - version "1.7.5" - resolved "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz" - integrity sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q== + version "1.8.0" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.8.0.tgz#09420efc96e11a0f44f3a558de59e321364180f7" + integrity sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA== dependencies: bytes "3.1.2" compressible "~2.0.18" @@ -3510,12 +3489,12 @@ compression@^1.7.4: concat-map@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== config-chain@^1.1.11: version "1.1.13" - resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz" + resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== dependencies: ini "^1.3.4" @@ -3523,7 +3502,7 @@ config-chain@^1.1.11: configstore@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-6.0.0.tgz#49eca2ebc80983f77e09394a1a56e0aca8235566" integrity sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA== dependencies: dot-prop "^6.0.1" @@ -3534,54 +3513,54 @@ configstore@^6.0.0: connect-history-api-fallback@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== consola@^3.2.3: - version "3.4.0" - resolved "https://registry.npmjs.org/consola/-/consola-3.4.0.tgz" - integrity sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA== + version "3.4.2" + resolved "https://registry.yarnpkg.com/consola/-/consola-3.4.2.tgz#5af110145397bb67afdab77013fdc34cae590ea7" + integrity sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA== content-disposition@0.5.2: version "0.5.2" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" integrity sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA== content-disposition@0.5.4: version "0.5.4" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== dependencies: safe-buffer "5.2.1" content-type@~1.0.4, content-type@~1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== convert-source-map@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== cookie-signature@1.0.6: version "1.0.6" - resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== cookie@0.7.1: version "0.7.1" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9" integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w== copy-text-to-clipboard@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz#0202b2d9bdae30a49a53f898626dcc3b49ad960b" integrity sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q== copy-webpack-plugin@^11.0.0: version "11.0.0" - resolved "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz#96d4dbdb5f73d02dd72d0528d1958721ab72e04a" integrity sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ== dependencies: fast-glob "^3.2.11" @@ -3591,31 +3570,31 @@ copy-webpack-plugin@^11.0.0: schema-utils "^4.0.0" serialize-javascript "^6.0.0" -core-js-compat@^3.38.0, core-js-compat@^3.38.1: - version "3.40.0" - resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.40.0.tgz" - integrity sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ== +core-js-compat@^3.40.0: + version "3.41.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.41.0.tgz#4cdfce95f39a8f27759b667cf693d96e5dda3d17" + integrity sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A== dependencies: - browserslist "^4.24.3" + browserslist "^4.24.4" core-js-pure@^3.30.2: - version "3.40.0" - resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.40.0.tgz" - integrity sha512-AtDzVIgRrmRKQai62yuSIN5vNiQjcJakJb4fbhVw3ehxx7Lohphvw9SGNWKhLFqSxC4ilD0g/L1huAYFQU3Q6A== + version "3.41.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.41.0.tgz#349fecad168d60807a31e83c99d73d786fe80811" + integrity sha512-71Gzp96T9YPk63aUvE5Q5qP+DryB4ZloUZPSOebGM88VNw8VNfvdA7z6kGA8iGOTEzAomsRidp4jXSmUIJsL+Q== core-js@^3.31.1: - version "3.40.0" - resolved "https://registry.npmjs.org/core-js/-/core-js-3.40.0.tgz" - integrity sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ== + version "3.41.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.41.0.tgz#57714dafb8c751a6095d028a7428f1fb5834a776" + integrity sha512-SJ4/EHwS36QMJd6h/Rg+GyR4A5xE0FSI3eZ+iBVpfqf1x0eTSg1smWLHrA+2jQThZSh97fmSgFSU8B61nxosxA== core-util-is@~1.0.0: version "1.0.3" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== cosmiconfig@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== dependencies: "@types/parse-json" "^4.0.0" @@ -3626,7 +3605,7 @@ cosmiconfig@^6.0.0: cosmiconfig@^8.1.3, cosmiconfig@^8.3.5: version "8.3.6" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== dependencies: import-fresh "^3.3.0" @@ -3636,7 +3615,7 @@ cosmiconfig@^8.1.3, cosmiconfig@^8.3.5: cosmiconfig@^9.0.0: version "9.0.0" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d" integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== dependencies: env-paths "^2.2.1" @@ -3644,9 +3623,9 @@ cosmiconfig@^9.0.0: js-yaml "^4.1.0" parse-json "^5.2.0" -cross-spawn@^7.0.0, cross-spawn@^7.0.3: +cross-spawn@^7.0.3, cross-spawn@^7.0.6: version "7.0.6" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== dependencies: path-key "^3.1.0" @@ -3655,26 +3634,26 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.3: crypto-random-string@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz#5a3cc53d7dd86183df5da0312816ceeeb5bb1fc2" integrity sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA== dependencies: type-fest "^1.0.1" css-blank-pseudo@^7.0.1: version "7.0.1" - resolved "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-7.0.1.tgz#32020bff20a209a53ad71b8675852b49e8d57e46" integrity sha512-jf+twWGDf6LDoXDUode+nc7ZlrqfaNphrBIBrcmeP3D8yw1uPaix1gCC8LUQUGQ6CycuK2opkbFFWFuq/a94ag== dependencies: postcss-selector-parser "^7.0.0" css-declaration-sorter@^7.2.0: version "7.2.0" - resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz#6dec1c9523bc4a643e088aab8f09e67a54961024" integrity sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow== css-has-pseudo@^7.0.2: version "7.0.2" - resolved "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.2.tgz" + resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-7.0.2.tgz#fb42e8de7371f2896961e1f6308f13c2c7019b72" integrity sha512-nzol/h+E0bId46Kn2dQH5VElaknX2Sr0hFuB/1EomdC7j+OISt2ZzK7EHX9DZDY53WbIVAR7FYKSO2XnSf07MQ== dependencies: "@csstools/selector-specificity" "^5.0.0" @@ -3683,7 +3662,7 @@ css-has-pseudo@^7.0.2: css-loader@^6.8.1: version "6.11.0" - resolved "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.11.0.tgz#33bae3bf6363d0a7c2cf9031c96c744ff54d85ba" integrity sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g== dependencies: icss-utils "^5.1.0" @@ -3697,7 +3676,7 @@ css-loader@^6.8.1: css-minimizer-webpack-plugin@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz#33effe662edb1a0bf08ad633c32fa75d0f7ec565" integrity sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg== dependencies: "@jridgewell/trace-mapping" "^0.3.18" @@ -3709,12 +3688,12 @@ css-minimizer-webpack-plugin@^5.0.1: css-prefers-color-scheme@^10.0.0: version "10.0.0" - resolved "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-10.0.0.tgz" + resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-10.0.0.tgz#ba001b99b8105b8896ca26fc38309ddb2278bd3c" integrity sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ== css-select@^4.1.3: version "4.3.0" - resolved "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== dependencies: boolbase "^1.0.0" @@ -3725,7 +3704,7 @@ css-select@^4.1.3: css-select@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== dependencies: boolbase "^1.0.0" @@ -3736,7 +3715,7 @@ css-select@^5.1.0: css-tree@^2.3.1: version "2.3.1" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== dependencies: mdn-data "2.0.30" @@ -3744,7 +3723,7 @@ css-tree@^2.3.1: css-tree@~2.2.0: version "2.2.1" - resolved "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032" integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== dependencies: mdn-data "2.0.28" @@ -3752,22 +3731,22 @@ css-tree@~2.2.0: css-what@^6.0.1, css-what@^6.1.0: version "6.1.0" - resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== -cssdb@^8.2.3: - version "8.2.3" - resolved "https://registry.npmjs.org/cssdb/-/cssdb-8.2.3.tgz" - integrity sha512-9BDG5XmJrJQQnJ51VFxXCAtpZ5ebDlAREmO8sxMOVU0aSxN/gocbctjIG5LMh3WBUq+xTlb/jw2LoljBEqraTA== +cssdb@^8.2.5: + version "8.2.5" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-8.2.5.tgz#728313b62c744ea1590f740ef7827ec0ef5f80a1" + integrity sha512-leAt8/hdTCtzql9ZZi86uYAmCLzVKpJMMdjbvOGVnXFXz/BWFpBmM1MHEHU/RqtPyRYmabVmEW1DtX3YGLuuLA== cssesc@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== cssnano-preset-advanced@^6.1.2: version "6.1.2" - resolved "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz" + resolved "https://registry.yarnpkg.com/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz#82b090872b8f98c471f681d541c735acf8b94d3f" integrity sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ== dependencies: autoprefixer "^10.4.19" @@ -3780,7 +3759,7 @@ cssnano-preset-advanced@^6.1.2: cssnano-preset-default@^6.1.2: version "6.1.2" - resolved "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz#adf4b89b975aa775f2750c89dbaf199bbd9da35e" integrity sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg== dependencies: browserslist "^4.23.0" @@ -3816,12 +3795,12 @@ cssnano-preset-default@^6.1.2: cssnano-utils@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-4.0.2.tgz#56f61c126cd0f11f2eef1596239d730d9fceff3c" integrity sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ== cssnano@^6.0.1, cssnano@^6.1.2: version "6.1.2" - resolved "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-6.1.2.tgz#4bd19e505bd37ee7cf0dc902d3d869f6d79c66b8" integrity sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA== dependencies: cssnano-preset-default "^6.1.2" @@ -3829,86 +3808,79 @@ cssnano@^6.0.1, cssnano@^6.1.2: csso@^5.0.5: version "5.0.5" - resolved "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz" + resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== dependencies: css-tree "~2.2.0" csstype@^3.0.2: version "3.1.3" - resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== data-uri-to-buffer@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz#8a58bb67384b261a38ef18bea1810cb01badd28b" integrity sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw== debounce@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== -debug@^2.6.0: +debug@2.6.9, debug@^2.6.0: version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.4, debug@^4.4.0, debug@4: +debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.4, debug@^4.4.0: version "4.4.0" - resolved "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== dependencies: ms "^2.1.3" -debug@2.6.9: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - decode-named-character-reference@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz" - integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== + version "1.1.0" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz#5d6ce68792808901210dac42a8e9853511e2b8bf" + integrity sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w== dependencies: character-entities "^2.0.0" decompress-response@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== dependencies: mimic-response "^3.1.0" deep-extend@^0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== deepmerge@^4.2.2, deepmerge@^4.3.1: version "4.3.1" - resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== default-gateway@^6.0.3: version "6.0.3" - resolved "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== dependencies: execa "^5.0.0" defer-to-connect@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== define-data-property@^1.0.1, define-data-property@^1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== dependencies: es-define-property "^1.0.0" @@ -3917,12 +3889,12 @@ define-data-property@^1.0.1, define-data-property@^1.1.4: define-lazy-prop@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== define-properties@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== dependencies: define-data-property "^1.0.1" @@ -3931,7 +3903,7 @@ define-properties@^1.2.1: degenerator@^5.0.0: version "5.0.1" - resolved "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-5.0.1.tgz#9403bf297c6dad9a1ece409b37db27954f91f2f5" integrity sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ== dependencies: ast-types "^0.13.4" @@ -3940,7 +3912,7 @@ degenerator@^5.0.0: del@^6.1.1: version "6.1.1" - resolved "https://registry.npmjs.org/del/-/del-6.1.1.tgz" + resolved "https://registry.yarnpkg.com/del/-/del-6.1.1.tgz#3b70314f1ec0aa325c6b14eb36b95786671edb7a" integrity sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg== dependencies: globby "^11.0.1" @@ -3952,34 +3924,34 @@ del@^6.1.1: rimraf "^3.0.2" slash "^3.0.0" -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - depd@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + dequal@^2.0.0: version "2.0.3" - resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== destroy@1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== detect-node@^2.0.4: version "2.1.0" - resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== detect-port-alt@^1.1.6: version "1.1.6" - resolved "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz" + resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== dependencies: address "^1.0.1" @@ -3987,7 +3959,7 @@ detect-port-alt@^1.1.6: detect-port@^1.5.1: version "1.6.1" - resolved "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz" + resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.6.1.tgz#45e4073997c5f292b957cb678fb0bb8ed4250a67" integrity sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q== dependencies: address "^1.0.1" @@ -3995,47 +3967,47 @@ detect-port@^1.5.1: devlop@^1.0.0, devlop@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/devlop/-/devlop-1.1.0.tgz#4db7c2ca4dc6e0e834c30be70c94bbc976dc7018" integrity sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA== dependencies: dequal "^2.0.0" -devtools-protocol@*, devtools-protocol@0.0.1367902: +devtools-protocol@0.0.1367902: version "0.0.1367902" - resolved "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1367902.tgz" + resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1367902.tgz#7333bfc4466c5a54a4c6de48a9dfbcb4b811660c" integrity sha512-XxtPuC3PGakY6PD7dG66/o8KwJ/LkH2/EKe19Dcw58w53dv4/vSQEkn/SzuyhHE2q4zPgCkxQBxus3VV4ql+Pg== dir-glob@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: path-type "^4.0.0" dns-packet@^5.2.2: version "5.6.1" - resolved "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f" integrity sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw== dependencies: "@leichtgewicht/ip-codec" "^2.0.1" docusaurus-plugin-dotenv@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/docusaurus-plugin-dotenv/-/docusaurus-plugin-dotenv-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/docusaurus-plugin-dotenv/-/docusaurus-plugin-dotenv-1.0.1.tgz#e0aff6f006fd438d1e981ae2afd7b7a6bd2aa76f" integrity sha512-qKlWuBd6UoyB0d5ExH9waYGPoy1SnWgV8s8VLg12ydcfxquazXJngV0N5VAX/HuFiZmsPD3L4TYUKxdHWJTeEw== dependencies: dotenv-webpack "7.0.2" dom-converter@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== dependencies: utila "~0.4" dom-serializer@^1.0.1: version "1.4.1" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== dependencies: domelementtype "^2.0.1" @@ -4044,7 +4016,7 @@ dom-serializer@^1.0.1: dom-serializer@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== dependencies: domelementtype "^2.3.0" @@ -4053,26 +4025,26 @@ dom-serializer@^2.0.0: domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: version "4.3.1" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== dependencies: domelementtype "^2.2.0" domhandler@^5.0.2, domhandler@^5.0.3: version "5.0.3" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== dependencies: domelementtype "^2.3.0" domutils@^2.5.2, domutils@^2.8.0: version "2.8.0" - resolved "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== dependencies: dom-serializer "^1.0.1" @@ -4081,7 +4053,7 @@ domutils@^2.5.2, domutils@^2.8.0: domutils@^3.0.1: version "3.2.2" - resolved "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.2.2.tgz#edbfe2b668b0c1d97c24baf0f1062b132221bc78" integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw== dependencies: dom-serializer "^2.0.0" @@ -4090,7 +4062,7 @@ domutils@^3.0.1: dot-case@^3.0.4: version "3.0.4" - resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== dependencies: no-case "^3.0.4" @@ -4098,38 +4070,38 @@ dot-case@^3.0.4: dot-prop@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083" integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== dependencies: is-obj "^2.0.0" dotenv-defaults@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/dotenv-defaults/-/dotenv-defaults-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/dotenv-defaults/-/dotenv-defaults-2.0.2.tgz#6b3ec2e4319aafb70940abda72d3856770ee77ac" integrity sha512-iOIzovWfsUHU91L5i8bJce3NYK5JXeAwH50Jh6+ARUdLiiGlYWfGw6UkzsYqaXZH/hjE/eCd/PlfM/qqyK0AMg== dependencies: dotenv "^8.2.0" dotenv-webpack@7.0.2: version "7.0.2" - resolved "https://registry.npmjs.org/dotenv-webpack/-/dotenv-webpack-7.0.2.tgz" + resolved "https://registry.yarnpkg.com/dotenv-webpack/-/dotenv-webpack-7.0.2.tgz#1bf2e407e92c10fbb08d815b12c991028f10f81c" integrity sha512-RY+/5uM/XY4bGtih9f9ic8hlrUDxVcZZBPWlnX/aHhaKxcVVX9SH/5VH7CSmvVo9GL6PKvQOA0X1bc552rnatQ== dependencies: dotenv-defaults "^2.0.1" dotenv@^16.4.5: - version "16.4.7" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz" - integrity sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ== + version "16.5.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.5.0.tgz#092b49f25f808f020050051d1ff258e404c78692" + integrity sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg== dotenv@^8.2.0: version "8.6.0" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== dunder-proto@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== dependencies: call-bind-apply-helpers "^1.0.1" @@ -4138,126 +4110,131 @@ dunder-proto@^1.0.1: duplexer@^0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== eastasianwidth@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== ee-first@1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.5.73: - version "1.5.82" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.82.tgz" - integrity sha512-Zq16uk1hfQhyGx5GpwPAYDwddJuSGhtRhgOA2mCxANYaDT79nAeGnaXogMGng4KqLaJUVnOnuL0+TDop9nLOiA== + version "1.5.140" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.140.tgz#91d9279fe72963f22c5784cc7f3461b5fed34786" + integrity sha512-o82Rj+ONp4Ip7Cl1r7lrqx/pXhbp/lh9DpKcMNscFJdh8ebyRofnc7Sh01B4jx403RI0oqTBvlZ7OBIZLMr2+Q== email-addresses@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/email-addresses/-/email-addresses-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/email-addresses/-/email-addresses-5.0.0.tgz#7ae9e7f58eef7d5e3e2c2c2d3ea49b78dc854fa6" integrity sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw== emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== emoji-regex@^9.2.2: version "9.2.2" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== emojilib@^2.4.0: version "2.4.0" - resolved "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz" + resolved "https://registry.yarnpkg.com/emojilib/-/emojilib-2.4.0.tgz#ac518a8bb0d5f76dda57289ccb2fdf9d39ae721e" integrity sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw== emojis-list@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== emoticon@^4.0.1: version "4.1.0" - resolved "https://registry.npmjs.org/emoticon/-/emoticon-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/emoticon/-/emoticon-4.1.0.tgz#d5a156868ee173095627a33de3f1e914c3dde79e" integrity sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ== encodeurl@~1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== encodeurl@~2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== end-of-stream@^1.1.0: version "1.4.4" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" enhanced-resolve@^5.17.1: - version "5.18.0" - resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz" - integrity sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ== + version "5.18.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz#728ab082f8b7b6836de51f1637aab5d3b9568faf" + integrity sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" entities@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -entities@^4.2.0, entities@^4.4.0, entities@^4.5.0: +entities@^4.2.0, entities@^4.4.0: version "4.5.0" - resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== +entities@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-6.0.0.tgz#09c9e29cb79b0a6459a9b9db9efb418ac5bb8e51" + integrity sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw== + env-paths@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" es-define-property@^1.0.0, es-define-property@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== es-errors@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== es-module-lexer@^1.2.1: - version "1.6.0" - resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz" - integrity sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ== + version "1.7.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz#9159601561880a85f2734560a9099b2c31e5372a" + integrity sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA== -es-object-atoms@^1.0.0: +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== dependencies: es-errors "^1.3.0" esast-util-from-estree@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz#8d1cfb51ad534d2f159dc250e604f3478a79f1ad" integrity sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ== dependencies: "@types/estree-jsx" "^1.0.0" @@ -4267,7 +4244,7 @@ esast-util-from-estree@^2.0.0: esast-util-from-js@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz#5147bec34cc9da44accf52f87f239a40ac3e8225" integrity sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw== dependencies: "@types/estree-jsx" "^1.0.0" @@ -4277,37 +4254,37 @@ esast-util-from-js@^2.0.0: escalade@^3.1.1, escalade@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== escape-goat@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-4.0.0.tgz#9424820331b510b0666b98f7873fe11ac4aa8081" integrity sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg== escape-html@^1.0.3, escape-html@~1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== escape-string-regexp@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== escodegen@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== dependencies: esprima "^4.0.1" @@ -4318,7 +4295,7 @@ escodegen@^2.1.0: eslint-scope@5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: esrecurse "^4.3.0" @@ -4326,36 +4303,36 @@ eslint-scope@5.1.1: esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^4.1.1: version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== estraverse@^5.2.0: version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== estree-util-attach-comments@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz#344bde6a64c8a31d15231e5ee9e297566a691c2d" integrity sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw== dependencies: "@types/estree" "^1.0.0" estree-util-build-jsx@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz#b6d0bced1dcc4f06f25cf0ceda2b2dcaf98168f1" integrity sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ== dependencies: "@types/estree-jsx" "^1.0.0" @@ -4365,12 +4342,12 @@ estree-util-build-jsx@^3.0.0: estree-util-is-identifier-name@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz#0b5ef4c4ff13508b34dcd01ecfa945f61fce5dbd" integrity sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg== estree-util-scope@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/estree-util-scope/-/estree-util-scope-1.0.0.tgz#9cbdfc77f5cb51e3d9ed4ad9c4adbff22d43e585" integrity sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ== dependencies: "@types/estree" "^1.0.0" @@ -4378,7 +4355,7 @@ estree-util-scope@^1.0.0: estree-util-to-js@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz#10a6fb924814e6abb62becf0d2bc4dea51d04f17" integrity sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg== dependencies: "@types/estree-jsx" "^1.0.0" @@ -4386,15 +4363,15 @@ estree-util-to-js@^2.0.0: source-map "^0.7.0" estree-util-value-to-estree@^3.0.1: - version "3.2.1" - resolved "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.2.1.tgz" - integrity sha512-Vt2UOjyPbNQQgT5eJh+K5aATti0OjCIAGc9SgMdOFYbohuifsWclR74l0iZTJwePMgWYdX1hlVS+dedH9XV8kw== + version "3.3.3" + resolved "https://registry.yarnpkg.com/estree-util-value-to-estree/-/estree-util-value-to-estree-3.3.3.tgz#800b03a551b466dd77ed2c574b042a9992546cf2" + integrity sha512-Db+m1WSD4+mUO7UgMeKkAwdbfNWwIxLt48XF2oFU9emPfXkIu+k5/nlOj313v7wqtAPo0f9REhUvznFrPkG8CQ== dependencies: "@types/estree" "^1.0.0" estree-util-visit@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/estree-util-visit/-/estree-util-visit-2.0.0.tgz#13a9a9f40ff50ed0c022f831ddf4b58d05446feb" integrity sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww== dependencies: "@types/estree-jsx" "^1.0.0" @@ -4402,29 +4379,29 @@ estree-util-visit@^2.0.0: estree-walker@^3.0.0: version "3.0.3" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== dependencies: "@types/estree" "^1.0.0" esutils@^2.0.2: version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== eta@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/eta/-/eta-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/eta/-/eta-2.2.0.tgz#eb8b5f8c4e8b6306561a455e62cd7492fe3a9b8a" integrity sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g== etag@~1.8.1: version "1.8.1" - resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== eval@^0.1.8: version "0.1.8" - resolved "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz" + resolved "https://registry.yarnpkg.com/eval/-/eval-0.1.8.tgz#2b903473b8cc1d1989b83a1e7923f883eb357f85" integrity sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw== dependencies: "@types/node" "*" @@ -4432,17 +4409,17 @@ eval@^0.1.8: eventemitter3@^4.0.0: version "4.0.7" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== events@^3.2.0: version "3.3.0" - resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== execa@^5.0.0: version "5.1.1" - resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== dependencies: cross-spawn "^7.0.3" @@ -4457,7 +4434,7 @@ execa@^5.0.0: express@^4.17.3: version "4.21.2" - resolved "https://registry.npmjs.org/express/-/express-4.21.2.tgz" + resolved "https://registry.yarnpkg.com/express/-/express-4.21.2.tgz#cf250e48362174ead6cea4a566abef0162c1ec32" integrity sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA== dependencies: accepts "~1.3.8" @@ -4494,19 +4471,19 @@ express@^4.17.3: extend-shallow@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== dependencies: is-extendable "^0.1.0" extend@^3.0.0: version "3.0.2" - resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== extract-zip@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== dependencies: debug "^4.1.1" @@ -4517,17 +4494,17 @@ extract-zip@^2.0.1: fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-fifo@^1.2.0, fast-fifo@^1.3.2: version "1.3.2" - resolved "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz" + resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.0: version "3.3.3" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== dependencies: "@nodelib/fs.stat" "^2.0.2" @@ -4538,59 +4515,59 @@ fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.0: fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-uri@^3.0.1: - version "3.0.5" - resolved "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.5.tgz" - integrity sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q== + version "3.0.6" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.6.tgz#88f130b77cfaea2378d56bf970dea21257a68748" + integrity sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw== fastq@^1.6.0: - version "1.18.0" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz" - integrity sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw== + version "1.19.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.19.1.tgz#d50eaba803c8846a883c16492821ebcd2cda55f5" + integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ== dependencies: reusify "^1.0.4" fault@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/fault/-/fault-2.0.1.tgz#d47ca9f37ca26e4bd38374a7c500b5a384755b6c" integrity sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ== dependencies: format "^0.2.0" faye-websocket@^0.11.3: version "0.11.4" - resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== dependencies: websocket-driver ">=0.5.1" fd-slicer@~1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== dependencies: pend "~1.2.0" feed@^4.2.2: version "4.2.2" - resolved "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz" + resolved "https://registry.yarnpkg.com/feed/-/feed-4.2.2.tgz#865783ef6ed12579e2c44bbef3c9113bc4956a7e" integrity sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ== dependencies: xml-js "^1.6.11" figures@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== dependencies: escape-string-regexp "^1.0.5" -file-loader@*, file-loader@^6.2.0: +file-loader@^6.2.0: version "6.2.0" - resolved "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== dependencies: loader-utils "^2.0.0" @@ -4598,12 +4575,12 @@ file-loader@*, file-loader@^6.2.0: filename-reserved-regex@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229" integrity sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ== filenamify@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-4.3.0.tgz#62391cb58f02b09971c9d4f9d63b3cf9aba03106" integrity sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg== dependencies: filename-reserved-regex "^2.0.0" @@ -4612,19 +4589,19 @@ filenamify@^4.3.0: filesize@^8.0.6: version "8.0.7" - resolved "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-8.0.7.tgz#695e70d80f4e47012c132d57a059e80c6b580bd8" integrity sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ== fill-range@^7.1.1: version "7.1.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" finalhandler@1.3.1: version "1.3.1" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019" integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== dependencies: debug "2.6.9" @@ -4637,7 +4614,7 @@ finalhandler@1.3.1: find-cache-dir@^3.3.1: version "3.3.2" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== dependencies: commondir "^1.0.1" @@ -4646,7 +4623,7 @@ find-cache-dir@^3.3.1: find-cache-dir@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-4.0.0.tgz#a30ee0448f81a3990708f6453633c733e2f6eec2" integrity sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg== dependencies: common-path-prefix "^3.0.0" @@ -4654,14 +4631,14 @@ find-cache-dir@^4.0.0: find-up@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== dependencies: locate-path "^3.0.0" find-up@^4.0.0: version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" @@ -4669,7 +4646,7 @@ find-up@^4.0.0: find-up@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: locate-path "^6.0.0" @@ -4677,7 +4654,7 @@ find-up@^5.0.0: find-up@^6.3.0: version "6.3.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== dependencies: locate-path "^7.1.0" @@ -4685,25 +4662,25 @@ find-up@^6.3.0: flat@^5.0.2: version "5.0.2" - resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== follow-redirects@^1.0.0: version "1.15.9" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1" integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== foreground-child@^3.1.0: - version "3.3.0" - resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz" - integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== + version "3.3.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" + integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== dependencies: - cross-spawn "^7.0.0" + cross-spawn "^7.0.6" signal-exit "^4.0.1" fork-ts-checker-webpack-plugin@^6.5.0: version "6.5.3" - resolved "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz#eda2eff6e22476a2688d10661688c47f611b37f3" integrity sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ== dependencies: "@babel/code-frame" "^7.8.3" @@ -4722,33 +4699,33 @@ fork-ts-checker-webpack-plugin@^6.5.0: form-data-encoder@^2.1.2: version "2.1.4" - resolved "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== format@^0.2.0: version "0.2.2" - resolved "https://registry.npmjs.org/format/-/format-0.2.2.tgz" + resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww== forwarded@0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== fraction.js@^4.3.7: version "4.3.7" - resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== fresh@0.5.2: version "0.5.2" - resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== fs-extra@^11.1.1, fs-extra@^11.2.0: - version "11.2.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz" - integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== + version "11.3.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.3.0.tgz#0daced136bbaf65a555a326719af931adc7a314d" + integrity sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" @@ -4756,7 +4733,7 @@ fs-extra@^11.1.1, fs-extra@^11.2.0: fs-extra@^9.0.0: version "9.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== dependencies: at-least-node "^1.0.0" @@ -4766,40 +4743,45 @@ fs-extra@^9.0.0: fs-monkey@^1.0.4: version "1.0.6" - resolved "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/fs-monkey/-/fs-monkey-1.0.6.tgz#8ead082953e88d992cf3ff844faa907b26756da2" integrity sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg== fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + function-bind@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== gensync@^1.0.0-beta.2: version "1.0.0-beta.2" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6: - version "1.2.7" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz" - integrity sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA== +get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== dependencies: - call-bind-apply-helpers "^1.0.1" + call-bind-apply-helpers "^1.0.2" es-define-property "^1.0.1" es-errors "^1.3.0" - es-object-atoms "^1.0.0" + es-object-atoms "^1.1.1" function-bind "^1.1.2" - get-proto "^1.0.0" + get-proto "^1.0.1" gopd "^1.2.0" has-symbols "^1.1.0" hasown "^2.0.2" @@ -4807,12 +4789,12 @@ get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6: get-own-enumerable-property-symbols@^3.0.0: version "3.0.2" - resolved "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== -get-proto@^1.0.0: +get-proto@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== dependencies: dunder-proto "^1.0.1" @@ -4820,19 +4802,19 @@ get-proto@^1.0.0: get-stream@^5.1.0: version "5.2.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== dependencies: pump "^3.0.0" get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-uri@^6.0.1: version "6.0.4" - resolved "https://registry.npmjs.org/get-uri/-/get-uri-6.0.4.tgz" + resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-6.0.4.tgz#6daaee9e12f9759e19e55ba313956883ef50e0a7" integrity sha512-E1b1lFFLvLgak2whF2xDBcOy6NLVGZBqqjJjsIhvopKfWWEi64pLVTWWehV8KlLerZkfNTA95sTe2OdJKm1OzQ== dependencies: basic-ftp "^5.0.2" @@ -4841,7 +4823,7 @@ get-uri@^6.0.1: gh-pages@^6.1.1: version "6.3.0" - resolved "https://registry.npmjs.org/gh-pages/-/gh-pages-6.3.0.tgz" + resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-6.3.0.tgz#a5b9476dd4385ceaf85c6467b2e05397093e7613" integrity sha512-Ot5lU6jK0Eb+sszG8pciXdjMXdBJ5wODvgjR+imihTqsUWF2K6dJ9HST55lgqcs8wWcw6o6wAsUzfcYRhJPXbA== dependencies: async "^3.2.4" @@ -4854,31 +4836,31 @@ gh-pages@^6.1.1: github-slugger@^1.5.0: version "1.5.0" - resolved "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz" + resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.5.0.tgz#17891bbc73232051474d68bd867a34625c955f7d" integrity sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw== glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob-parent@^6.0.1: version "6.0.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" glob-to-regexp@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== glob@^11.0.0: version "11.0.1" - resolved "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz" + resolved "https://registry.yarnpkg.com/glob/-/glob-11.0.1.tgz#1c3aef9a59d680e611b53dcd24bb8639cef064d9" integrity sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw== dependencies: foreground-child "^3.1.0" @@ -4888,33 +4870,9 @@ glob@^11.0.0: package-json-from-dist "^1.0.0" path-scurry "^2.0.0" -glob@^7.0.0: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.1.3: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.1.6: +glob@^7.0.0, glob@^7.1.3, glob@^7.1.6: version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" @@ -4926,21 +4884,21 @@ glob@^7.1.6: global-dirs@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== dependencies: ini "2.0.0" global-modules@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== dependencies: global-prefix "^3.0.0" global-prefix@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== dependencies: ini "^1.3.5" @@ -4949,12 +4907,12 @@ global-prefix@^3.0.0: globals@^11.1.0: version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: version "11.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" @@ -4966,7 +4924,7 @@ globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: globby@^13.1.1: version "13.2.2" - resolved "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz" + resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== dependencies: dir-glob "^3.0.1" @@ -4977,12 +4935,12 @@ globby@^13.1.1: gopd@^1.0.1, gopd@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== got@^12.1.0: version "12.6.1" - resolved "https://registry.npmjs.org/got/-/got-12.6.1.tgz" + resolved "https://registry.yarnpkg.com/got/-/got-12.6.1.tgz#8869560d1383353204b5a9435f782df9c091f549" integrity sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ== dependencies: "@sindresorhus/is" "^5.2.0" @@ -4997,19 +4955,19 @@ got@^12.1.0: p-cancelable "^3.0.0" responselike "^3.0.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: - version "4.2.11" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - graceful-fs@4.2.10: version "4.2.10" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + gray-matter@^4.0.3: version "4.0.3" - resolved "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== dependencies: js-yaml "^3.13.1" @@ -5019,69 +4977,69 @@ gray-matter@^4.0.3: gzip-size@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== dependencies: duplexer "^0.1.2" handle-thing@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== dependencies: es-define-property "^1.0.0" has-symbols@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== has-yarn@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-3.0.0.tgz#c3c21e559730d1d3b57e28af1f30d06fac38147d" integrity sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA== hasown@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: function-bind "^1.1.2" hast-util-from-parse5@^8.0.0: - version "8.0.2" - resolved "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.2.tgz" - integrity sha512-SfMzfdAi/zAoZ1KkFEyyeXBn7u/ShQrfd675ZEE9M3qj+PMFX05xubzRyF76CCSJu8au9jgVxDV1+okFvgZU4A== + version "8.0.3" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz#830a35022fff28c3fea3697a98c2f4cc6b835a2e" + integrity sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg== dependencies: "@types/hast" "^3.0.0" "@types/unist" "^3.0.0" devlop "^1.0.0" hastscript "^9.0.0" - property-information "^6.0.0" + property-information "^7.0.0" vfile "^6.0.0" vfile-location "^5.0.0" web-namespaces "^2.0.0" hast-util-parse-selector@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz#352879fa86e25616036037dd8931fb5f34cb4a27" integrity sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A== dependencies: "@types/hast" "^3.0.0" hast-util-raw@^9.0.0: version "9.1.0" - resolved "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz" + resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-9.1.0.tgz#79b66b26f6f68fb50dfb4716b2cdca90d92adf2e" integrity sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw== dependencies: "@types/hast" "^3.0.0" @@ -5099,9 +5057,9 @@ hast-util-raw@^9.0.0: zwitch "^2.0.0" hast-util-to-estree@^3.0.0: - version "3.1.1" - resolved "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.1.tgz" - integrity sha512-IWtwwmPskfSmma9RpzCappDUitC8t5jhAynHhc1m2+5trOgsrp7txscUSavc5Ic8PATyAjfrCK1wgtxh2cICVQ== + version "3.1.3" + resolved "https://registry.yarnpkg.com/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz#e654c1c9374645135695cc0ab9f70b8fcaf733d7" + integrity sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w== dependencies: "@types/estree" "^1.0.0" "@types/estree-jsx" "^1.0.0" @@ -5114,16 +5072,16 @@ hast-util-to-estree@^3.0.0: mdast-util-mdx-expression "^2.0.0" mdast-util-mdx-jsx "^3.0.0" mdast-util-mdxjs-esm "^2.0.0" - property-information "^6.0.0" + property-information "^7.0.0" space-separated-tokens "^2.0.0" - style-to-object "^1.0.0" + style-to-js "^1.0.0" unist-util-position "^5.0.0" zwitch "^2.0.0" hast-util-to-jsx-runtime@^2.0.0: - version "2.3.2" - resolved "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.2.tgz" - integrity sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg== + version "2.3.6" + resolved "https://registry.yarnpkg.com/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz#ff31897aae59f62232e21594eac7ef6b63333e98" + integrity sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg== dependencies: "@types/estree" "^1.0.0" "@types/hast" "^3.0.0" @@ -5135,15 +5093,15 @@ hast-util-to-jsx-runtime@^2.0.0: mdast-util-mdx-expression "^2.0.0" mdast-util-mdx-jsx "^3.0.0" mdast-util-mdxjs-esm "^2.0.0" - property-information "^6.0.0" + property-information "^7.0.0" space-separated-tokens "^2.0.0" - style-to-object "^1.0.0" + style-to-js "^1.0.0" unist-util-position "^5.0.0" vfile-message "^4.0.0" hast-util-to-parse5@^8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz#477cd42d278d4f036bc2ea58586130f6f39ee6ed" integrity sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw== dependencies: "@types/hast" "^3.0.0" @@ -5156,30 +5114,30 @@ hast-util-to-parse5@^8.0.0: hast-util-whitespace@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz#7778ed9d3c92dd9e8c5c8f648a49c21fc51cb621" integrity sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw== dependencies: "@types/hast" "^3.0.0" hastscript@^9.0.0: - version "9.0.0" - resolved "https://registry.npmjs.org/hastscript/-/hastscript-9.0.0.tgz" - integrity sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw== + version "9.0.1" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-9.0.1.tgz#dbc84bef6051d40084342c229c451cd9dc567dff" + integrity sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w== dependencies: "@types/hast" "^3.0.0" comma-separated-tokens "^2.0.0" hast-util-parse-selector "^4.0.0" - property-information "^6.0.0" + property-information "^7.0.0" space-separated-tokens "^2.0.0" he@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== history@^4.9.0: version "4.10.1" - resolved "https://registry.npmjs.org/history/-/history-4.10.1.tgz" + resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== dependencies: "@babel/runtime" "^7.1.2" @@ -5191,14 +5149,14 @@ history@^4.9.0: hoist-non-react-statics@^3.1.0: version "3.3.2" - resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== dependencies: react-is "^16.7.0" hpack.js@^2.1.6: version "2.1.6" - resolved "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" integrity sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ== dependencies: inherits "^2.0.1" @@ -5207,18 +5165,18 @@ hpack.js@^2.1.6: wbuf "^1.1.0" html-entities@^2.3.2: - version "2.5.2" - resolved "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz" - integrity sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA== + version "2.6.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.6.0.tgz#7c64f1ea3b36818ccae3d3fb48b6974208e984f8" + integrity sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ== html-escaper@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== html-minifier-terser@^6.0.2: version "6.1.0" - resolved "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab" integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw== dependencies: camel-case "^4.1.2" @@ -5231,7 +5189,7 @@ html-minifier-terser@^6.0.2: html-minifier-terser@^7.2.0: version "7.2.0" - resolved "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz#18752e23a2f0ed4b0f550f217bb41693e975b942" integrity sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA== dependencies: camel-case "^4.1.2" @@ -5244,17 +5202,17 @@ html-minifier-terser@^7.2.0: html-tags@^3.3.1: version "3.3.1" - resolved "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz" + resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== html-void-elements@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-3.0.0.tgz#fc9dbd84af9e747249034d4d62602def6517f1d7" integrity sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg== html-webpack-plugin@^5.6.0: version "5.6.3" - resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz#a31145f0fee4184d53a794f9513147df1e653685" integrity sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg== dependencies: "@types/html-minifier-terser" "^6.0.0" @@ -5265,7 +5223,7 @@ html-webpack-plugin@^5.6.0: htmlparser2@^6.1.0: version "6.1.0" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== dependencies: domelementtype "^2.0.1" @@ -5275,7 +5233,7 @@ htmlparser2@^6.1.0: htmlparser2@^8.0.1: version "8.0.2" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-8.0.2.tgz#f002151705b383e62433b5cf466f5b716edaec21" integrity sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== dependencies: domelementtype "^2.3.0" @@ -5285,27 +5243,17 @@ htmlparser2@^8.0.1: http-cache-semantics@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== http-deceiver@^1.2.7: version "1.2.7" - resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - http-errors@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== dependencies: depd "2.0.0" @@ -5314,23 +5262,33 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + http-parser-js@>=0.5.1: - version "0.5.9" - resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.9.tgz" - integrity sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw== + version "0.5.10" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.10.tgz#b3277bd6d7ed5588e20ea73bf724fcbe44609075" + integrity sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA== http-proxy-agent@^7.0.0, http-proxy-agent@^7.0.1: version "7.0.2" - resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e" integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== dependencies: agent-base "^7.1.0" debug "^4.3.4" http-proxy-middleware@^2.0.3: - version "2.0.7" - resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz" - integrity sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA== + version "2.0.9" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz#e9e63d68afaa4eee3d147f39149ab84c0c2815ef" + integrity sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q== dependencies: "@types/http-proxy" "^1.17.8" http-proxy "^1.18.1" @@ -5340,7 +5298,7 @@ http-proxy-middleware@^2.0.3: http-proxy@^1.18.1: version "1.18.1" - resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== dependencies: eventemitter3 "^4.0.0" @@ -5349,7 +5307,7 @@ http-proxy@^1.18.1: http2-wrapper@^2.1.10: version "2.2.1" - resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.1.tgz#310968153dcdedb160d8b72114363ef5fce1f64a" integrity sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ== dependencies: quick-lru "^5.1.1" @@ -5357,7 +5315,7 @@ http2-wrapper@^2.1.10: https-proxy-agent@^7.0.6: version "7.0.6" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz#da8dfeac7da130b05c2ba4b59c9b6cd66611a6b9" integrity sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw== dependencies: agent-base "^7.1.2" @@ -5365,142 +5323,142 @@ https-proxy-agent@^7.0.6: human-signals@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== iconv-lite@0.4.24: version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" icss-utils@^5.0.0, icss-utils@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== ieee754@^1.1.13: version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== ignore@^5.2.0, ignore@^5.2.4: version "5.3.2" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== image-size@^1.0.2: - version "1.2.0" - resolved "https://registry.npmjs.org/image-size/-/image-size-1.2.0.tgz" - integrity sha512-4S8fwbO6w3GeCVN6OPtA9I5IGKkcDMPcKndtUlpJuCwu7JLjtj7JZpwqLuyY2nrmQT3AWsCJLSKPsc2mPBSl3w== + version "1.2.1" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.2.1.tgz#ee118aedfe666db1a6ee12bed5821cde3740276d" + integrity sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw== dependencies: queue "6.0.2" immer@^9.0.7: version "9.0.21" - resolved "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz" + resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176" integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== import-fresh@^3.1.0, import-fresh@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + version "3.3.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf" + integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" import-lazy@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indent-string@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== infima@0.2.0-alpha.45: version "0.2.0-alpha.45" - resolved "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.45.tgz" + resolved "https://registry.yarnpkg.com/infima/-/infima-0.2.0-alpha.45.tgz#542aab5a249274d81679631b492973dd2c1e7466" integrity sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" -inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3, inherits@2, inherits@2.0.4: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== inherits@2.0.3: version "2.0.3" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== -ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: - version "1.3.8" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - ini@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + inline-style-parser@0.2.4: version "0.2.4" - resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.2.4.tgz#f4af5fe72e612839fcd453d989a586566d695f22" integrity sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q== interpret@^1.0.0: version "1.4.0" - resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== invariant@^2.2.4: version "2.2.4" - resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== dependencies: loose-envify "^1.0.0" ip-address@^9.0.5: version "9.0.5" - resolved "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz" + resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-9.0.5.tgz#117a960819b08780c3bd1f14ef3c1cc1d3f3ea5a" integrity sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g== dependencies: jsbn "1.1.0" sprintf-js "^1.1.3" -ipaddr.js@^2.0.1: - version "2.2.0" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz" - integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== - ipaddr.js@1.9.1: version "1.9.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== +ipaddr.js@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.2.0.tgz#d33fa7bac284f4de7af949638c9d68157c6b92e8" + integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== + is-alphabetical@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz#01072053ea7c1036df3c7d19a6daaec7f19e789b" integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== is-alphanumerical@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz#7c03fbe96e3e931113e57f964b0a368cc2dfd875" integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw== dependencies: is-alphabetical "^2.0.0" @@ -5508,70 +5466,70 @@ is-alphanumerical@^2.0.0: is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-ci@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== dependencies: ci-info "^3.2.0" is-core-module@^2.16.0: version "2.16.1" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== dependencies: hasown "^2.0.2" is-decimal@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-2.0.1.tgz#9469d2dc190d0214fd87d78b78caecc0cc14eef7" integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" - resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== is-extendable@^0.1.0: version "0.1.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-hexadecimal@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== is-installed-globally@^0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== dependencies: global-dirs "^3.0.0" @@ -5579,113 +5537,113 @@ is-installed-globally@^0.4.0: is-npm@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-6.0.0.tgz#b59e75e8915543ca5d881ecff864077cba095261" integrity sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ== is-number@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-obj@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== is-obj@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== is-path-cwd@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== is-path-inside@^3.0.2: version "3.0.3" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== is-plain-obj@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== is-plain-obj@^4.0.0: version "4.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== is-plain-object@^2.0.4: version "2.0.4" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: isobject "^3.0.1" is-regexp@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== is-root@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== is-stream@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== is-typedarray@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== is-wsl@^2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: is-docker "^2.0.0" is-yarn-global@^0.4.0: version "0.4.1" - resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.4.1.tgz#b312d902b313f81e4eaf98b6361ba2b45cd694bb" integrity sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ== -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - isarray@0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + isexe@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isobject@^3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== jackspeak@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz" - integrity sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw== + version "4.1.0" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-4.1.0.tgz#c489c079f2b636dc4cbe9b0312a13ff1282e561b" + integrity sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw== dependencies: "@isaacs/cliui" "^8.0.2" jest-util@^29.7.0: version "29.7.0" - resolved "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== dependencies: "@jest/types" "^29.6.3" @@ -5697,7 +5655,7 @@ jest-util@^29.7.0: jest-worker@^27.4.5: version "27.5.1" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== dependencies: "@types/node" "*" @@ -5706,7 +5664,7 @@ jest-worker@^27.4.5: jest-worker@^29.4.3: version "29.7.0" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== dependencies: "@types/node" "*" @@ -5716,12 +5674,12 @@ jest-worker@^29.4.3: jiti@^1.20.0: version "1.21.7" - resolved "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.7.tgz#9dd81043424a3d28458b193d965f0d18a2300ba9" integrity sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A== joi@^17.9.2: version "17.13.3" - resolved "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.3.tgz#0f5cc1169c999b30d344366d384b12d92558bcec" integrity sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA== dependencies: "@hapi/hoek" "^9.3.0" @@ -5732,12 +5690,12 @@ joi@^17.9.2: "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^3.13.1: version "3.14.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" @@ -5745,54 +5703,54 @@ js-yaml@^3.13.1: js-yaml@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" jsbn@1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== jsesc@^3.0.2: version "3.1.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== jsesc@~3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== json-buffer@3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: version "2.3.1" - resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-schema-traverse@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== json5@^2.1.2, json5@^2.2.3: version "2.2.3" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== jsonfile@^6.0.1: version "6.1.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: universalify "^2.0.0" @@ -5801,59 +5759,59 @@ jsonfile@^6.0.1: keyv@^4.5.3: version "4.5.4" - resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== dependencies: json-buffer "3.0.1" kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.3" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== kleur@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== latest-version@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-7.0.0.tgz#843201591ea81a4d404932eeb61240fe04e9e5da" integrity sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg== dependencies: package-json "^8.1.0" launch-editor@^2.6.0: - version "2.9.1" - resolved "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz" - integrity sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w== + version "2.10.0" + resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.10.0.tgz#5ca3edfcb9667df1e8721310f3a40f1127d4bc42" + integrity sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA== dependencies: picocolors "^1.0.0" shell-quote "^1.8.1" leven@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== lilconfig@^3.1.1: version "3.1.3" - resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.3.tgz#a1bcfd6257f9585bf5ae14ceeebb7b559025e4c4" integrity sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw== lines-and-columns@^1.1.6: version "1.2.4" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== loader-runner@^4.2.0: version "4.3.0" - resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== loader-utils@^2.0.0: version "2.0.4" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== dependencies: big.js "^5.2.2" @@ -5862,12 +5820,12 @@ loader-utils@^2.0.0: loader-utils@^3.2.0: version "3.3.1" - resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.3.1.tgz#735b9a19fd63648ca7adbd31c2327dfe281304e5" integrity sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg== locate-path@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== dependencies: p-locate "^3.0.0" @@ -5875,122 +5833,123 @@ locate-path@^3.0.0: locate-path@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" locate-path@^7.1.0: version "7.2.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== dependencies: p-locate "^6.0.0" lodash.debounce@^4.0.8: version "4.0.8" - resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== lodash.memoize@^4.1.2: version "4.1.2" - resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== lodash.uniq@^4.5.0: version "4.5.0" - resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== longest-streak@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4" integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" lower-case@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== dependencies: tslib "^2.0.3" lowercase-keys@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== lru-cache@^11.0.0: - version "11.0.2" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz" - integrity sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA== + version "11.1.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.1.0.tgz#afafb060607108132dbc1cf8ae661afb69486117" + integrity sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A== lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" lru-cache@^7.14.1: version "7.18.3" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== make-dir@^3.0.2: version "3.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" markdown-extensions@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/markdown-extensions/-/markdown-extensions-2.0.0.tgz#34bebc83e9938cae16e0e017e4a9814a8330d3c4" integrity sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q== markdown-table@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-2.0.0.tgz#194a90ced26d31fe753d8b9434430214c011865b" integrity sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A== dependencies: repeat-string "^1.0.0" markdown-table@^3.0.0: version "3.0.4" - resolved "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.4.tgz#fe44d6d410ff9d6f2ea1797a3f60aa4d2b631c2a" integrity sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw== math-intrinsics@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== mdast-util-directive@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz" - integrity sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q== + version "3.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-directive/-/mdast-util-directive-3.1.0.tgz#f3656f4aab6ae3767d3c72cfab5e8055572ccba1" + integrity sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q== dependencies: "@types/mdast" "^4.0.0" "@types/unist" "^3.0.0" + ccount "^2.0.0" devlop "^1.0.0" mdast-util-from-markdown "^2.0.0" mdast-util-to-markdown "^2.0.0" @@ -6000,7 +5959,7 @@ mdast-util-directive@^3.0.0: mdast-util-find-and-replace@^3.0.0, mdast-util-find-and-replace@^3.0.1: version "3.0.2" - resolved "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz#70a3174c894e14df722abf43bc250cbae44b11df" integrity sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg== dependencies: "@types/mdast" "^4.0.0" @@ -6010,7 +5969,7 @@ mdast-util-find-and-replace@^3.0.0, mdast-util-find-and-replace@^3.0.1: mdast-util-from-markdown@^2.0.0: version "2.0.2" - resolved "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz#4850390ca7cf17413a9b9a0fbefcd1bc0eb4160a" integrity sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA== dependencies: "@types/mdast" "^4.0.0" @@ -6028,7 +5987,7 @@ mdast-util-from-markdown@^2.0.0: mdast-util-frontmatter@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz#f5f929eb1eb36c8a7737475c7eb438261f964ee8" integrity sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA== dependencies: "@types/mdast" "^4.0.0" @@ -6040,7 +5999,7 @@ mdast-util-frontmatter@^2.0.0: mdast-util-gfm-autolink-literal@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz#abd557630337bd30a6d5a4bd8252e1c2dc0875d5" integrity sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ== dependencies: "@types/mdast" "^4.0.0" @@ -6050,9 +6009,9 @@ mdast-util-gfm-autolink-literal@^2.0.0: micromark-util-character "^2.0.0" mdast-util-gfm-footnote@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz" - integrity sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ== + version "2.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz#7778e9d9ca3df7238cc2bd3fa2b1bf6a65b19403" + integrity sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ== dependencies: "@types/mdast" "^4.0.0" devlop "^1.1.0" @@ -6062,7 +6021,7 @@ mdast-util-gfm-footnote@^2.0.0: mdast-util-gfm-strikethrough@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz#d44ef9e8ed283ac8c1165ab0d0dfd058c2764c16" integrity sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg== dependencies: "@types/mdast" "^4.0.0" @@ -6071,7 +6030,7 @@ mdast-util-gfm-strikethrough@^2.0.0: mdast-util-gfm-table@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz#7a435fb6223a72b0862b33afbd712b6dae878d38" integrity sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg== dependencies: "@types/mdast" "^4.0.0" @@ -6082,7 +6041,7 @@ mdast-util-gfm-table@^2.0.0: mdast-util-gfm-task-list-item@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz#e68095d2f8a4303ef24094ab642e1047b991a936" integrity sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ== dependencies: "@types/mdast" "^4.0.0" @@ -6091,9 +6050,9 @@ mdast-util-gfm-task-list-item@^2.0.0: mdast-util-to-markdown "^2.0.0" mdast-util-gfm@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz" - integrity sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw== + version "3.1.0" + resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz#2cdf63b92c2a331406b0fb0db4c077c1b0331751" + integrity sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ== dependencies: mdast-util-from-markdown "^2.0.0" mdast-util-gfm-autolink-literal "^2.0.0" @@ -6105,7 +6064,7 @@ mdast-util-gfm@^3.0.0: mdast-util-mdx-expression@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz#43f0abac9adc756e2086f63822a38c8d3c3a5096" integrity sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ== dependencies: "@types/estree-jsx" "^1.0.0" @@ -6117,7 +6076,7 @@ mdast-util-mdx-expression@^2.0.0: mdast-util-mdx-jsx@^3.0.0: version "3.2.0" - resolved "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz#fd04c67a2a7499efb905a8a5c578dddc9fdada0d" integrity sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q== dependencies: "@types/estree-jsx" "^1.0.0" @@ -6135,7 +6094,7 @@ mdast-util-mdx-jsx@^3.0.0: mdast-util-mdx@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz#792f9cf0361b46bee1fdf1ef36beac424a099c41" integrity sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w== dependencies: mdast-util-from-markdown "^2.0.0" @@ -6146,7 +6105,7 @@ mdast-util-mdx@^3.0.0: mdast-util-mdxjs-esm@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz#019cfbe757ad62dd557db35a695e7314bcc9fa97" integrity sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg== dependencies: "@types/estree-jsx" "^1.0.0" @@ -6158,7 +6117,7 @@ mdast-util-mdxjs-esm@^2.0.0: mdast-util-phrasing@^4.0.0: version "4.1.0" - resolved "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz#7cc0a8dec30eaf04b7b1a9661a92adb3382aa6e3" integrity sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w== dependencies: "@types/mdast" "^4.0.0" @@ -6166,7 +6125,7 @@ mdast-util-phrasing@^4.0.0: mdast-util-to-hast@^13.0.0: version "13.2.0" - resolved "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz#5ca58e5b921cc0a3ded1bc02eed79a4fe4fe41f4" integrity sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA== dependencies: "@types/hast" "^3.0.0" @@ -6181,7 +6140,7 @@ mdast-util-to-hast@^13.0.0: mdast-util-to-markdown@^2.0.0: version "2.1.2" - resolved "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz#f910ffe60897f04bb4b7e7ee434486f76288361b" integrity sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA== dependencies: "@types/mdast" "^4.0.0" @@ -6196,57 +6155,57 @@ mdast-util-to-markdown@^2.0.0: mdast-util-to-string@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz#7a5121475556a04e7eddeb67b264aae79d312814" integrity sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg== dependencies: "@types/mdast" "^4.0.0" mdn-data@2.0.28: version "2.0.28" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== mdn-data@2.0.30: version "2.0.30" - resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== media-typer@0.3.0: version "0.3.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== memfs@^3.1.2, memfs@^3.4.3: version "3.6.0" - resolved "https://registry.npmjs.org/memfs/-/memfs-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" integrity sha512-EGowvkkgbMcIChjMTMkESFDbZeSh8xZ7kNSF0hAiAN4Jh6jgHCRS0Ga/+C8y6Au+oqpezRHCfPsmJ2+DwAgiwQ== dependencies: fs-monkey "^1.0.4" merge-descriptors@1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5" integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== methods@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== micromark-core-commonmark@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.2.tgz" - integrity sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w== + version "2.0.3" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz#c691630e485021a68cf28dbc2b2ca27ebf678cd4" + integrity sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg== dependencies: decode-named-character-reference "^1.0.0" devlop "^1.0.0" @@ -6267,7 +6226,7 @@ micromark-core-commonmark@^2.0.0: micromark-extension-directive@^3.0.0: version "3.0.2" - resolved "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/micromark-extension-directive/-/micromark-extension-directive-3.0.2.tgz#2eb61985d1995a7c1ff7621676a4f32af29409e8" integrity sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA== dependencies: devlop "^1.0.0" @@ -6280,7 +6239,7 @@ micromark-extension-directive@^3.0.0: micromark-extension-frontmatter@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz#651c52ffa5d7a8eeed687c513cd869885882d67a" integrity sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg== dependencies: fault "^2.0.0" @@ -6290,7 +6249,7 @@ micromark-extension-frontmatter@^2.0.0: micromark-extension-gfm-autolink-literal@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz#6286aee9686c4462c1e3552a9d505feddceeb935" integrity sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw== dependencies: micromark-util-character "^2.0.0" @@ -6300,7 +6259,7 @@ micromark-extension-gfm-autolink-literal@^2.0.0: micromark-extension-gfm-footnote@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz#4dab56d4e398b9853f6fe4efac4fc9361f3e0750" integrity sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw== dependencies: devlop "^1.0.0" @@ -6314,7 +6273,7 @@ micromark-extension-gfm-footnote@^2.0.0: micromark-extension-gfm-strikethrough@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz#86106df8b3a692b5f6a92280d3879be6be46d923" integrity sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw== dependencies: devlop "^1.0.0" @@ -6325,9 +6284,9 @@ micromark-extension-gfm-strikethrough@^2.0.0: micromark-util-types "^2.0.0" micromark-extension-gfm-table@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.0.tgz" - integrity sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g== + version "2.1.1" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz#fac70bcbf51fe65f5f44033118d39be8a9b5940b" + integrity sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg== dependencies: devlop "^1.0.0" micromark-factory-space "^2.0.0" @@ -6337,14 +6296,14 @@ micromark-extension-gfm-table@^2.0.0: micromark-extension-gfm-tagfilter@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz#f26d8a7807b5985fba13cf61465b58ca5ff7dc57" integrity sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg== dependencies: micromark-util-types "^2.0.0" micromark-extension-gfm-task-list-item@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz#bcc34d805639829990ec175c3eea12bb5b781f2c" integrity sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw== dependencies: devlop "^1.0.0" @@ -6355,7 +6314,7 @@ micromark-extension-gfm-task-list-item@^2.0.0: micromark-extension-gfm@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz#3e13376ab95dd7a5cfd0e29560dfe999657b3c5b" integrity sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w== dependencies: micromark-extension-gfm-autolink-literal "^2.0.0" @@ -6368,9 +6327,9 @@ micromark-extension-gfm@^3.0.0: micromark-util-types "^2.0.0" micromark-extension-mdx-expression@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz" - integrity sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ== + version "3.0.1" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz#43d058d999532fb3041195a3c3c05c46fa84543b" + integrity sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q== dependencies: "@types/estree" "^1.0.0" devlop "^1.0.0" @@ -6382,11 +6341,10 @@ micromark-extension-mdx-expression@^3.0.0: micromark-util-types "^2.0.0" micromark-extension-mdx-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.1.tgz" - integrity sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg== + version "3.0.2" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz#ffc98bdb649798902fa9fc5689f67f9c1c902044" + integrity sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ== dependencies: - "@types/acorn" "^4.0.0" "@types/estree" "^1.0.0" devlop "^1.0.0" estree-util-is-identifier-name "^3.0.0" @@ -6400,14 +6358,14 @@ micromark-extension-mdx-jsx@^3.0.0: micromark-extension-mdx-md@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz#1d252881ea35d74698423ab44917e1f5b197b92d" integrity sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ== dependencies: micromark-util-types "^2.0.0" micromark-extension-mdxjs-esm@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz#de21b2b045fd2059bd00d36746081de38390d54a" integrity sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A== dependencies: "@types/estree" "^1.0.0" @@ -6422,7 +6380,7 @@ micromark-extension-mdxjs-esm@^3.0.0: micromark-extension-mdxjs@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz#b5a2e0ed449288f3f6f6c544358159557549de18" integrity sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ== dependencies: acorn "^8.0.0" @@ -6436,7 +6394,7 @@ micromark-extension-mdxjs@^3.0.0: micromark-factory-destination@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz#8fef8e0f7081f0474fbdd92deb50c990a0264639" integrity sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA== dependencies: micromark-util-character "^2.0.0" @@ -6445,7 +6403,7 @@ micromark-factory-destination@^2.0.0: micromark-factory-label@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz#5267efa97f1e5254efc7f20b459a38cb21058ba1" integrity sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg== dependencies: devlop "^1.0.0" @@ -6454,9 +6412,9 @@ micromark-factory-label@^2.0.0: micromark-util-types "^2.0.0" micromark-factory-mdx-expression@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.2.tgz" - integrity sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw== + version "2.0.3" + resolved "https://registry.yarnpkg.com/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz#bb09988610589c07d1c1e4425285895041b3dfa9" + integrity sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ== dependencies: "@types/estree" "^1.0.0" devlop "^1.0.0" @@ -6470,7 +6428,7 @@ micromark-factory-mdx-expression@^2.0.0: micromark-factory-space@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz#c8f40b0640a0150751d3345ed885a080b0d15faf" integrity sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ== dependencies: micromark-util-character "^1.0.0" @@ -6478,7 +6436,7 @@ micromark-factory-space@^1.0.0: micromark-factory-space@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz#36d0212e962b2b3121f8525fc7a3c7c029f334fc" integrity sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg== dependencies: micromark-util-character "^2.0.0" @@ -6486,7 +6444,7 @@ micromark-factory-space@^2.0.0: micromark-factory-title@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz#237e4aa5d58a95863f01032d9ee9b090f1de6e94" integrity sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw== dependencies: micromark-factory-space "^2.0.0" @@ -6496,7 +6454,7 @@ micromark-factory-title@^2.0.0: micromark-factory-whitespace@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz#06b26b2983c4d27bfcc657b33e25134d4868b0b1" integrity sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ== dependencies: micromark-factory-space "^2.0.0" @@ -6506,7 +6464,7 @@ micromark-factory-whitespace@^2.0.0: micromark-util-character@^1.0.0, micromark-util-character@^1.1.0: version "1.2.0" - resolved "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz#4fedaa3646db249bc58caeb000eb3549a8ca5dcc" integrity sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg== dependencies: micromark-util-symbol "^1.0.0" @@ -6514,7 +6472,7 @@ micromark-util-character@^1.0.0, micromark-util-character@^1.1.0: micromark-util-character@^2.0.0: version "2.1.1" - resolved "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz#2f987831a40d4c510ac261e89852c4e9703ccda6" integrity sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q== dependencies: micromark-util-symbol "^2.0.0" @@ -6522,14 +6480,14 @@ micromark-util-character@^2.0.0: micromark-util-chunked@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz#47fbcd93471a3fccab86cff03847fc3552db1051" integrity sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA== dependencies: micromark-util-symbol "^2.0.0" micromark-util-classify-character@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz#d399faf9c45ca14c8b4be98b1ea481bced87b629" integrity sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q== dependencies: micromark-util-character "^2.0.0" @@ -6538,7 +6496,7 @@ micromark-util-classify-character@^2.0.0: micromark-util-combine-extensions@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz#2a0f490ab08bff5cc2fd5eec6dd0ca04f89b30a9" integrity sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg== dependencies: micromark-util-chunked "^2.0.0" @@ -6546,14 +6504,14 @@ micromark-util-combine-extensions@^2.0.0: micromark-util-decode-numeric-character-reference@^2.0.0: version "2.0.2" - resolved "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz#fcf15b660979388e6f118cdb6bf7d79d73d26fe5" integrity sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw== dependencies: micromark-util-symbol "^2.0.0" micromark-util-decode-string@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz#6cb99582e5d271e84efca8e61a807994d7161eb2" integrity sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ== dependencies: decode-named-character-reference "^1.0.0" @@ -6563,15 +6521,14 @@ micromark-util-decode-string@^2.0.0: micromark-util-encode@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz#0d51d1c095551cfaac368326963cf55f15f540b8" integrity sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw== micromark-util-events-to-acorn@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz" - integrity sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA== + version "2.0.3" + resolved "https://registry.yarnpkg.com/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz#e7a8a6b55a47e5a06c720d5a1c4abae8c37c98f3" + integrity sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg== dependencies: - "@types/acorn" "^4.0.0" "@types/estree" "^1.0.0" "@types/unist" "^3.0.0" devlop "^1.0.0" @@ -6582,26 +6539,26 @@ micromark-util-events-to-acorn@^2.0.0: micromark-util-html-tag-name@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz#e40403096481986b41c106627f98f72d4d10b825" integrity sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA== micromark-util-normalize-identifier@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz#c30d77b2e832acf6526f8bf1aa47bc9c9438c16d" integrity sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q== dependencies: micromark-util-symbol "^2.0.0" micromark-util-resolve-all@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz#e1a2d62cdd237230a2ae11839027b19381e31e8b" integrity sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg== dependencies: micromark-util-types "^2.0.0" micromark-util-sanitize-uri@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz#ab89789b818a58752b73d6b55238621b7faa8fd7" integrity sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ== dependencies: micromark-util-character "^2.0.0" @@ -6609,9 +6566,9 @@ micromark-util-sanitize-uri@^2.0.0: micromark-util-symbol "^2.0.0" micromark-util-subtokenize@^2.0.0: - version "2.0.3" - resolved "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.3.tgz" - integrity sha512-VXJJuNxYWSoYL6AJ6OQECCFGhIU2GGHMw8tahogePBrjkG8aCCas3ibkp7RnVOSTClg2is05/R7maAhF1XyQMg== + version "2.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz#d8ade5ba0f3197a1cf6a2999fbbfe6357a1a19ee" + integrity sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA== dependencies: devlop "^1.0.0" micromark-util-chunked "^2.0.0" @@ -6620,28 +6577,28 @@ micromark-util-subtokenize@^2.0.0: micromark-util-symbol@^1.0.0, micromark-util-symbol@^1.0.1: version "1.1.0" - resolved "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz#813cd17837bdb912d069a12ebe3a44b6f7063142" integrity sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag== micromark-util-symbol@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz#e5da494e8eb2b071a0d08fb34f6cefec6c0a19b8" integrity sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q== micromark-util-types@^1.0.0: version "1.1.0" - resolved "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz#e6676a8cae0bb86a2171c498167971886cb7e283" integrity sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg== micromark-util-types@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz" - integrity sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ== + version "2.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-2.0.2.tgz#f00225f5f5a0ebc3254f96c36b6605c4b393908e" + integrity sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA== micromark@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/micromark/-/micromark-4.0.1.tgz" - integrity sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw== + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-4.0.2.tgz#91395a3e1884a198e62116e33c9c568e39936fdb" + integrity sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA== dependencies: "@types/debug" "^4.0.0" debug "^4.0.0" @@ -6663,64 +6620,64 @@ micromark@^4.0.0: micromatch@^4.0.2, micromatch@^4.0.5, micromatch@^4.0.8: version "4.0.8" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== dependencies: braces "^3.0.3" picomatch "^2.3.1" +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + "mime-db@>= 1.43.0 < 2": - version "1.53.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz" - integrity sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg== + version "1.54.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5" + integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ== mime-db@~1.33.0: version "1.33.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== +mime-types@2.1.18: + version "2.1.18" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" + integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== + dependencies: + mime-db "~1.33.0" mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" -mime-types@2.1.18: - version "2.1.18" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz" - integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== - dependencies: - mime-db "~1.33.0" - mime@1.6.0: version "1.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== mimic-fn@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== mimic-response@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== mimic-response@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== mini-css-extract-plugin@^2.9.1: version "2.9.2" - resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz#966031b468917a5446f4c24a80854b2947503c5b" integrity sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w== dependencies: schema-utils "^4.0.0" @@ -6728,89 +6685,89 @@ mini-css-extract-plugin@^2.9.1: minimalistic-assert@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== +minimatch@3.1.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + minimatch@^10.0.0: version "10.0.1" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.0.1.tgz#ce0521856b453c86e25f2c4c0d03e6ff7ddc440b" integrity sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ== dependencies: brace-expansion "^2.0.1" -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - minimist@^1.2.0: version "1.2.8" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== minipass@^7.1.2: version "7.1.2" - resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== mitt@3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1" integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== mrmime@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz" - integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw== - -ms@^2.1.3, ms@2.1.3: - version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + version "2.0.1" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.1.tgz#bc3e87f7987853a54c9850eeb1f1078cd44adddc" + integrity sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ== ms@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== +ms@2.1.3, ms@^2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + multicast-dns@^7.2.5: version "7.2.5" - resolved "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-7.2.5.tgz#77eb46057f4d7adbd16d9290fa7299f6fa64cced" integrity sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg== dependencies: dns-packet "^5.2.2" thunky "^1.0.2" nanoid@^3.3.8: - version "3.3.8" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz" - integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== - -negotiator@~0.6.4: - version "0.6.4" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz" - integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w== + version "3.3.11" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" + integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== negotiator@0.6.3: version "0.6.3" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== +negotiator@~0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.4.tgz#777948e2452651c570b712dd01c23e262713fff7" + integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w== + neo-async@^2.6.2: version "2.6.2" - resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== netmask@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== no-case@^3.0.4: version "3.0.4" - resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== dependencies: lower-case "^2.0.2" @@ -6818,7 +6775,7 @@ no-case@^3.0.4: node-emoji@^2.1.0: version "2.2.0" - resolved "https://registry.npmjs.org/node-emoji/-/node-emoji-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-2.2.0.tgz#1d000e3c76e462577895be1b436f4aa2d6760eb0" integrity sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw== dependencies: "@sindresorhus/is" "^4.6.0" @@ -6828,51 +6785,51 @@ node-emoji@^2.1.0: node-forge@^1: version "1.3.1" - resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== node-releases@^2.0.19: version "2.0.19" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-range@^0.1.2: version "0.1.2" - resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== normalize-url@^8.0.0: version "8.0.1" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.1.tgz#9b7d96af9836577c58f5883e939365fa15623a4a" integrity sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w== npm-run-path@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" nprogress@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" integrity sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA== nth-check@^2.0.1: version "2.1.1" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: boolbase "^1.0.0" null-loader@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/null-loader/-/null-loader-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/null-loader/-/null-loader-4.0.1.tgz#8e63bd3a2dd3c64236a4679428632edd0a6dbc6a" integrity sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg== dependencies: loader-utils "^2.0.0" @@ -6880,22 +6837,22 @@ null-loader@^4.0.1: object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-inspect@^1.13.3: - version "1.13.3" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz" - integrity sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA== + version "1.13.4" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" + integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object.assign@^4.1.0: version "4.1.7" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.7.tgz#8c14ca1a424c6a561b0bb2a22f66f5049a945d3d" integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw== dependencies: call-bind "^1.0.8" @@ -6907,38 +6864,38 @@ object.assign@^4.1.0: obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== on-finished@2.4.1: version "2.4.1" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== dependencies: ee-first "1.1.1" on-headers@~1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" onetime@^5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" open@^8.0.9, open@^8.4.0: version "8.4.2" - resolved "https://registry.npmjs.org/open/-/open-8.4.2.tgz" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== dependencies: define-lazy-prop "^2.0.0" @@ -6947,73 +6904,73 @@ open@^8.0.9, open@^8.4.0: opener@^1.5.2: version "1.5.2" - resolved "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== p-cancelable@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-limit@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== dependencies: yocto-queue "^1.0.0" p-locate@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== dependencies: p-limit "^2.0.0" p-locate@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: p-limit "^2.2.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" p-locate@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== dependencies: p-limit "^4.0.0" p-map@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: aggregate-error "^3.0.0" p-retry@^4.5.0: version "4.6.2" - resolved "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.2.tgz#9baae7184057edd4e17231cee04264106e092a16" integrity sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ== dependencies: "@types/retry" "0.12.0" @@ -7021,13 +6978,13 @@ p-retry@^4.5.0: p-try@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== pac-proxy-agent@^7.1.0: - version "7.1.0" - resolved "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.1.0.tgz" - integrity sha512-Z5FnLVVZSnX7WjBg0mhDtydeRZ1xMcATZThjySQUHqr+0ksP8kqaw23fNKkaaN/Z8gwLUs/W7xdl0I75eP2Xyw== + version "7.2.0" + resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz#9cfaf33ff25da36f6147a20844230ec92c06e5df" + integrity sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA== dependencies: "@tootallnate/quickjs-emscripten" "^0.23.0" agent-base "^7.1.2" @@ -7040,7 +6997,7 @@ pac-proxy-agent@^7.1.0: pac-resolver@^7.0.1: version "7.0.1" - resolved "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-7.0.1.tgz#54675558ea368b64d210fd9c92a640b5f3b8abb6" integrity sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg== dependencies: degenerator "^5.0.0" @@ -7048,12 +7005,12 @@ pac-resolver@^7.0.1: package-json-from-dist@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== package-json@^8.1.0: version "8.1.1" - resolved "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-8.1.1.tgz#3e9948e43df40d1e8e78a85485f1070bf8f03dc8" integrity sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA== dependencies: got "^12.1.0" @@ -7063,7 +7020,7 @@ package-json@^8.1.0: param-case@^3.0.4: version "3.0.4" - resolved "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== dependencies: dot-case "^3.0.4" @@ -7071,14 +7028,14 @@ param-case@^3.0.4: parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" parse-entities@^4.0.0: version "4.0.2" - resolved "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-4.0.2.tgz#61d46f5ed28e4ee62e9ddc43d6b010188443f159" integrity sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw== dependencies: "@types/unist" "^2.0.0" @@ -7091,7 +7048,7 @@ parse-entities@^4.0.0: parse-json@^5.0.0, parse-json@^5.2.0: version "5.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== dependencies: "@babel/code-frame" "^7.0.0" @@ -7101,32 +7058,32 @@ parse-json@^5.0.0, parse-json@^5.2.0: parse-numeric-range@^1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz#7c63b61190d61e4d53a1197f0c83c47bb670ffa3" integrity sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ== parse5-htmlparser2-tree-adapter@^7.0.0: version "7.1.0" - resolved "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz" + resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz#b5a806548ed893a43e24ccb42fbb78069311e81b" integrity sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g== dependencies: domhandler "^5.0.3" parse5 "^7.0.0" parse5@^7.0.0: - version "7.2.1" - resolved "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz" - integrity sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ== + version "7.3.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.3.0.tgz#d7e224fa72399c7a175099f45fc2ad024b05ec05" + integrity sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw== dependencies: - entities "^4.5.0" + entities "^6.0.0" parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" - resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== pascal-case@^3.1.2: version "3.1.2" - resolved "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== dependencies: no-case "^3.0.4" @@ -7134,115 +7091,115 @@ pascal-case@^3.1.2: path-exists@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-exists@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-is-inside@1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-scurry@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.0.tgz#9f052289f23ad8bf9397a2a0425e7b8615c58580" integrity sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg== dependencies: lru-cache "^11.0.0" minipass "^7.1.2" -path-to-regexp@^1.7.0: - version "1.9.0" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz" - integrity sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g== - dependencies: - isarray "0.0.1" - path-to-regexp@0.1.12: version "0.1.12" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7" integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== path-to-regexp@3.3.0: version "3.3.0" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-3.3.0.tgz#f7f31d32e8518c2660862b644414b6d5c63a611b" integrity sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw== +path-to-regexp@^1.7.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.9.0.tgz#5dc0753acbf8521ca2e0f137b4578b917b10cf24" + integrity sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g== + dependencies: + isarray "0.0.1" + path-type@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== pend@~1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== -picocolors@^1.0.0, picocolors@^1.0.1, picocolors@^1.1.1: +picocolors@^1.0.0, picocolors@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pkg-dir@^4.1.0: version "4.2.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" pkg-dir@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-7.0.0.tgz#8f0c08d6df4476756c5ff29b3282d0bab7517d11" integrity sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA== dependencies: find-up "^6.3.0" pkg-up@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== dependencies: find-up "^3.0.0" postcss-attribute-case-insensitive@^7.0.1: version "7.0.1" - resolved "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-7.0.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-7.0.1.tgz#0c4500e3bcb2141848e89382c05b5a31c23033a3" integrity sha512-Uai+SupNSqzlschRyNx3kbCTWgY/2hcwtHEI/ej2LJWc9JJ77qKgGptd8DHwY1mXtZ7Aoh4z4yxfwMBue9eNgw== dependencies: postcss-selector-parser "^7.0.0" postcss-calc@^9.0.1: version "9.0.1" - resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-9.0.1.tgz#a744fd592438a93d6de0f1434c572670361eb6c6" integrity sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ== dependencies: postcss-selector-parser "^6.0.11" @@ -7250,25 +7207,25 @@ postcss-calc@^9.0.1: postcss-clamp@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-clamp/-/postcss-clamp-4.1.0.tgz#7263e95abadd8c2ba1bd911b0b5a5c9c93e02363" integrity sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow== dependencies: postcss-value-parser "^4.2.0" -postcss-color-functional-notation@^7.0.7: - version "7.0.7" - resolved "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.7.tgz" - integrity sha512-EZvAHsvyASX63vXnyXOIynkxhaHRSsdb7z6yiXKIovGXAolW4cMZ3qoh7k3VdTsLBS6VGdksGfIo3r6+waLoOw== +postcss-color-functional-notation@^7.0.9: + version "7.0.9" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.9.tgz#2be1abbdd68fc7e8906a7a4ae6e6c8484aae8485" + integrity sha512-WScwD3pSsIz+QP97sPkGCeJm7xUH0J18k6zV5o8O2a4cQJyv15vLUx/WFQajuJVgZhmJL5awDu8zHnqzAzm4lw== dependencies: - "@csstools/css-color-parser" "^3.0.7" + "@csstools/css-color-parser" "^3.0.9" "@csstools/css-parser-algorithms" "^3.0.4" "@csstools/css-tokenizer" "^3.0.3" - "@csstools/postcss-progressive-custom-properties" "^4.0.0" + "@csstools/postcss-progressive-custom-properties" "^4.0.1" "@csstools/utilities" "^2.0.0" postcss-color-hex-alpha@^10.0.0: version "10.0.0" - resolved "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-10.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-10.0.0.tgz#5dd3eba1f8facb4ea306cba6e3f7712e876b0c76" integrity sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w== dependencies: "@csstools/utilities" "^2.0.0" @@ -7276,7 +7233,7 @@ postcss-color-hex-alpha@^10.0.0: postcss-color-rebeccapurple@^10.0.0: version "10.0.0" - resolved "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-10.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-10.0.0.tgz#5ada28406ac47e0796dff4056b0a9d5a6ecead98" integrity sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ== dependencies: "@csstools/utilities" "^2.0.0" @@ -7284,7 +7241,7 @@ postcss-color-rebeccapurple@^10.0.0: postcss-colormin@^6.1.0: version "6.1.0" - resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-6.1.0.tgz#076e8d3fb291fbff7b10e6b063be9da42ff6488d" integrity sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw== dependencies: browserslist "^4.23.0" @@ -7294,7 +7251,7 @@ postcss-colormin@^6.1.0: postcss-convert-values@^6.1.0: version "6.1.0" - resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz#3498387f8efedb817cbc63901d45bd1ceaa40f48" integrity sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w== dependencies: browserslist "^4.23.0" @@ -7302,7 +7259,7 @@ postcss-convert-values@^6.1.0: postcss-custom-media@^11.0.5: version "11.0.5" - resolved "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.5.tgz" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-11.0.5.tgz#2fcd88a9b1d4da41c67dac6f2def903063a3377d" integrity sha512-SQHhayVNgDvSAdX9NQ/ygcDQGEY+aSF4b/96z7QUX6mqL5yl/JgG/DywcF6fW9XbnCRE+aVYk+9/nqGuzOPWeQ== dependencies: "@csstools/cascade-layer-name-parser" "^2.0.4" @@ -7312,7 +7269,7 @@ postcss-custom-media@^11.0.5: postcss-custom-properties@^14.0.4: version "14.0.4" - resolved "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.4.tgz" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-14.0.4.tgz#de9c663285a98833a946d7003a34369d3ce373a9" integrity sha512-QnW8FCCK6q+4ierwjnmXF9Y9KF8q0JkbgVfvQEMa93x1GT8FvOiUevWCN2YLaOWyByeDX8S6VFbZEeWoAoXs2A== dependencies: "@csstools/cascade-layer-name-parser" "^2.0.4" @@ -7323,7 +7280,7 @@ postcss-custom-properties@^14.0.4: postcss-custom-selectors@^8.0.4: version "8.0.4" - resolved "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-8.0.4.tgz" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-8.0.4.tgz#95ef8268fdbbbd84f34cf84a4517c9d99d419c5a" integrity sha512-ASOXqNvDCE0dAJ/5qixxPeL1aOVGHGW2JwSy7HyjWNbnWTQCl+fDc968HY1jCmZI0+BaYT5CxsOiUhavpG/7eg== dependencies: "@csstools/cascade-layer-name-parser" "^2.0.4" @@ -7333,109 +7290,109 @@ postcss-custom-selectors@^8.0.4: postcss-dir-pseudo-class@^9.0.1: version "9.0.1" - resolved "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-9.0.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-9.0.1.tgz#80d9e842c9ae9d29f6bf5fd3cf9972891d6cc0ca" integrity sha512-tRBEK0MHYvcMUrAuYMEOa0zg9APqirBcgzi6P21OhxtJyJADo/SWBwY1CAwEohQ/6HDaa9jCjLRG7K3PVQYHEA== dependencies: postcss-selector-parser "^7.0.0" postcss-discard-comments@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz#e768dcfdc33e0216380623652b0a4f69f4678b6c" integrity sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw== postcss-discard-duplicates@^6.0.3: version "6.0.3" - resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz#d121e893c38dc58a67277f75bb58ba43fce4c3eb" integrity sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw== postcss-discard-empty@^6.0.3: version "6.0.3" - resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz#ee39c327219bb70473a066f772621f81435a79d9" integrity sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ== postcss-discard-overridden@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz#4e9f9c62ecd2df46e8fdb44dc17e189776572e2d" integrity sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ== postcss-discard-unused@^6.0.5: version "6.0.5" - resolved "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz" + resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz#c1b0e8c032c6054c3fbd22aaddba5b248136f338" integrity sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA== dependencies: postcss-selector-parser "^6.0.16" -postcss-double-position-gradients@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.0.tgz" - integrity sha512-JkIGah3RVbdSEIrcobqj4Gzq0h53GG4uqDPsho88SgY84WnpkTpI0k50MFK/sX7XqVisZ6OqUfFnoUO6m1WWdg== +postcss-double-position-gradients@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.1.tgz#5fde3de9fb78b467244d8c4fde39f60397beb0ce" + integrity sha512-ZitCwmvOR4JzXmKw6sZblTgwV1dcfLvClcyjADuqZ5hU0Uk4SVNpvSN9w8NcJ7XuxhRYxVA8m8AB3gy+HNBQOA== dependencies: - "@csstools/postcss-progressive-custom-properties" "^4.0.0" + "@csstools/postcss-progressive-custom-properties" "^4.0.1" "@csstools/utilities" "^2.0.0" postcss-value-parser "^4.2.0" postcss-focus-visible@^10.0.1: version "10.0.1" - resolved "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-10.0.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-10.0.1.tgz#1f7904904368a2d1180b220595d77b6f8a957868" integrity sha512-U58wyjS/I1GZgjRok33aE8juW9qQgQUNwTSdxQGuShHzwuYdcklnvK/+qOWX1Q9kr7ysbraQ6ht6r+udansalA== dependencies: postcss-selector-parser "^7.0.0" postcss-focus-within@^9.0.1: version "9.0.1" - resolved "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-9.0.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-9.0.1.tgz#ac01ce80d3f2e8b2b3eac4ff84f8e15cd0057bc7" integrity sha512-fzNUyS1yOYa7mOjpci/bR+u+ESvdar6hk8XNK/TRR0fiGTp2QT5N+ducP0n3rfH/m9I7H/EQU6lsa2BrgxkEjw== dependencies: postcss-selector-parser "^7.0.0" postcss-font-variant@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz#efd59b4b7ea8bb06127f2d031bfbb7f24d32fa66" integrity sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA== postcss-gap-properties@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-6.0.0.tgz#d5ff0bdf923c06686499ed2b12e125fe64054fed" integrity sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw== postcss-image-set-function@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-7.0.0.tgz#538e94e16716be47f9df0573b56bbaca86e1da53" integrity sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA== dependencies: "@csstools/utilities" "^2.0.0" postcss-value-parser "^4.2.0" -postcss-lab-function@^7.0.7: - version "7.0.7" - resolved "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.7.tgz" - integrity sha512-+ONj2bpOQfsCKZE2T9VGMyVVdGcGUpr7u3SVfvkJlvhTRmDCfY25k4Jc8fubB9DclAPR4+w8uVtDZmdRgdAHig== +postcss-lab-function@^7.0.9: + version "7.0.9" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-7.0.9.tgz#09052f22cc2b8c589e9b29b5c0a10be105b29b69" + integrity sha512-IGbsIXbqMDusymJAKYX+f9oakPo89wL9Pzd/qRBQOVf3EIQWT9hgvqC4Me6Dkzxp3KPuIBf6LPkjrLHe/6ZMIQ== dependencies: - "@csstools/css-color-parser" "^3.0.7" + "@csstools/css-color-parser" "^3.0.9" "@csstools/css-parser-algorithms" "^3.0.4" "@csstools/css-tokenizer" "^3.0.3" - "@csstools/postcss-progressive-custom-properties" "^4.0.0" + "@csstools/postcss-progressive-custom-properties" "^4.0.1" "@csstools/utilities" "^2.0.0" postcss-loader@^7.3.3: version "7.3.4" - resolved "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.4.tgz" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.3.4.tgz#aed9b79ce4ed7e9e89e56199d25ad1ec8f606209" integrity sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A== dependencies: cosmiconfig "^8.3.5" jiti "^1.20.0" semver "^7.5.4" -postcss-logical@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/postcss-logical/-/postcss-logical-8.0.0.tgz" - integrity sha512-HpIdsdieClTjXLOyYdUPAX/XQASNIwdKt5hoZW08ZOAiI+tbV0ta1oclkpVkW5ANU+xJvk3KkA0FejkjGLXUkg== +postcss-logical@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-8.1.0.tgz#4092b16b49e3ecda70c4d8945257da403d167228" + integrity sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA== dependencies: postcss-value-parser "^4.2.0" postcss-merge-idents@^6.0.3: version "6.0.3" - resolved "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz" + resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz#7b9c31c7bc823c94bec50f297f04e3c2b838ea65" integrity sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g== dependencies: cssnano-utils "^4.0.2" @@ -7443,7 +7400,7 @@ postcss-merge-idents@^6.0.3: postcss-merge-longhand@^6.0.5: version "6.0.5" - resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz#ba8a8d473617c34a36abbea8dda2b215750a065a" integrity sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w== dependencies: postcss-value-parser "^4.2.0" @@ -7451,7 +7408,7 @@ postcss-merge-longhand@^6.0.5: postcss-merge-rules@^6.1.1: version "6.1.1" - resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz#7aa539dceddab56019469c0edd7d22b64c3dea9d" integrity sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ== dependencies: browserslist "^4.23.0" @@ -7461,14 +7418,14 @@ postcss-merge-rules@^6.1.1: postcss-minify-font-values@^6.1.0: version "6.1.0" - resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz#a0e574c02ee3f299be2846369211f3b957ea4c59" integrity sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg== dependencies: postcss-value-parser "^4.2.0" postcss-minify-gradients@^6.0.3: version "6.0.3" - resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz#ca3eb55a7bdb48a1e187a55c6377be918743dbd6" integrity sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q== dependencies: colord "^2.9.3" @@ -7477,7 +7434,7 @@ postcss-minify-gradients@^6.0.3: postcss-minify-params@^6.1.0: version "6.1.0" - resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz#54551dec77b9a45a29c3cb5953bf7325a399ba08" integrity sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA== dependencies: browserslist "^4.23.0" @@ -7486,19 +7443,19 @@ postcss-minify-params@^6.1.0: postcss-minify-selectors@^6.0.4: version "6.0.4" - resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz#197f7d72e6dd19eed47916d575d69dc38b396aff" integrity sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ== dependencies: postcss-selector-parser "^6.0.16" postcss-modules-extract-imports@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz#b4497cb85a9c0c4b5aabeb759bb25e8d89f15002" integrity sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q== postcss-modules-local-by-default@^4.0.5: version "4.2.0" - resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz#d150f43837831dae25e4085596e84f6f5d6ec368" integrity sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw== dependencies: icss-utils "^5.0.0" @@ -7507,21 +7464,21 @@ postcss-modules-local-by-default@^4.0.5: postcss-modules-scope@^3.2.0: version "3.2.1" - resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz#1bbccddcb398f1d7a511e0a2d1d047718af4078c" integrity sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA== dependencies: postcss-selector-parser "^7.0.0" postcss-modules-values@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== dependencies: icss-utils "^5.0.0" postcss-nesting@^13.0.1: version "13.0.1" - resolved "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-13.0.1.tgz#c405796d7245a3e4c267a9956cacfe9670b5d43e" integrity sha512-VbqqHkOBOt4Uu3G8Dm8n6lU5+9cJFxiuty9+4rcoyRPO9zZS1JIs6td49VIoix3qYqELHlJIn46Oih9SAKo+yQ== dependencies: "@csstools/selector-resolve-nested" "^3.0.0" @@ -7530,47 +7487,47 @@ postcss-nesting@^13.0.1: postcss-normalize-charset@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz#1ec25c435057a8001dac942942a95ffe66f721e1" integrity sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ== postcss-normalize-display-values@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz#54f02764fed0b288d5363cbb140d6950dbbdd535" integrity sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg== dependencies: postcss-value-parser "^4.2.0" postcss-normalize-positions@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz#e982d284ec878b9b819796266f640852dbbb723a" integrity sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q== dependencies: postcss-value-parser "^4.2.0" postcss-normalize-repeat-style@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz#f8006942fd0617c73f049dd8b6201c3a3040ecf3" integrity sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ== dependencies: postcss-value-parser "^4.2.0" postcss-normalize-string@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz#e3cc6ad5c95581acd1fc8774b309dd7c06e5e363" integrity sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ== dependencies: postcss-value-parser "^4.2.0" postcss-normalize-timing-functions@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz#40cb8726cef999de984527cbd9d1db1f3e9062c0" integrity sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA== dependencies: postcss-value-parser "^4.2.0" postcss-normalize-unicode@^6.1.0: version "6.1.0" - resolved "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz#aaf8bbd34c306e230777e80f7f12a4b7d27ce06e" integrity sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg== dependencies: browserslist "^4.23.0" @@ -7578,26 +7535,26 @@ postcss-normalize-unicode@^6.1.0: postcss-normalize-url@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz#292792386be51a8de9a454cb7b5c58ae22db0f79" integrity sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ== dependencies: postcss-value-parser "^4.2.0" postcss-normalize-whitespace@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz#fbb009e6ebd312f8b2efb225c2fcc7cf32b400cd" integrity sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q== dependencies: postcss-value-parser "^4.2.0" postcss-opacity-percentage@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-opacity-percentage/-/postcss-opacity-percentage-3.0.0.tgz#0b0db5ed5db5670e067044b8030b89c216e1eb0a" integrity sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ== postcss-ordered-values@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz#366bb663919707093451ab70c3f99c05672aaae5" integrity sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q== dependencies: cssnano-utils "^4.0.2" @@ -7605,83 +7562,83 @@ postcss-ordered-values@^6.0.2: postcss-overflow-shorthand@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-6.0.0.tgz#f5252b4a2ee16c68cd8a9029edb5370c4a9808af" integrity sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q== dependencies: postcss-value-parser "^4.2.0" postcss-page-break@^3.0.4: version "3.0.4" - resolved "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-3.0.4.tgz#7fbf741c233621622b68d435babfb70dd8c1ee5f" integrity sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ== postcss-place@^10.0.0: version "10.0.0" - resolved "https://registry.npmjs.org/postcss-place/-/postcss-place-10.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-10.0.0.tgz#ba36ee4786ca401377ced17a39d9050ed772e5a9" integrity sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw== dependencies: postcss-value-parser "^4.2.0" postcss-preset-env@^10.1.0: - version "10.1.3" - resolved "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.1.3.tgz" - integrity sha512-9qzVhcMFU/MnwYHyYpJz4JhGku/4+xEiPTmhn0hj3IxnUYlEF9vbh7OC1KoLAnenS6Fgg43TKNp9xcuMeAi4Zw== + version "10.1.6" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-10.1.6.tgz#0f5456ea55a6bcbd0fd3c5f41e194881f42b17e5" + integrity sha512-1jRD7vttKLJ7o0mcmmYWKRLm7W14rI8K1I7Y41OeXUPEVc/CAzfTssNUeJ0zKbR+zMk4boqct/gwS/poIFF5Lg== dependencies: "@csstools/postcss-cascade-layers" "^5.0.1" - "@csstools/postcss-color-function" "^4.0.7" - "@csstools/postcss-color-mix-function" "^3.0.7" - "@csstools/postcss-content-alt-text" "^2.0.4" - "@csstools/postcss-exponential-functions" "^2.0.6" + "@csstools/postcss-color-function" "^4.0.9" + "@csstools/postcss-color-mix-function" "^3.0.9" + "@csstools/postcss-content-alt-text" "^2.0.5" + "@csstools/postcss-exponential-functions" "^2.0.8" "@csstools/postcss-font-format-keywords" "^4.0.0" - "@csstools/postcss-gamut-mapping" "^2.0.7" - "@csstools/postcss-gradients-interpolation-method" "^5.0.7" - "@csstools/postcss-hwb-function" "^4.0.7" - "@csstools/postcss-ic-unit" "^4.0.0" - "@csstools/postcss-initial" "^2.0.0" + "@csstools/postcss-gamut-mapping" "^2.0.9" + "@csstools/postcss-gradients-interpolation-method" "^5.0.9" + "@csstools/postcss-hwb-function" "^4.0.9" + "@csstools/postcss-ic-unit" "^4.0.1" + "@csstools/postcss-initial" "^2.0.1" "@csstools/postcss-is-pseudo-class" "^5.0.1" - "@csstools/postcss-light-dark-function" "^2.0.7" + "@csstools/postcss-light-dark-function" "^2.0.8" "@csstools/postcss-logical-float-and-clear" "^3.0.0" "@csstools/postcss-logical-overflow" "^2.0.0" "@csstools/postcss-logical-overscroll-behavior" "^2.0.0" "@csstools/postcss-logical-resize" "^3.0.0" "@csstools/postcss-logical-viewport-units" "^3.0.3" - "@csstools/postcss-media-minmax" "^2.0.6" + "@csstools/postcss-media-minmax" "^2.0.8" "@csstools/postcss-media-queries-aspect-ratio-number-values" "^3.0.4" "@csstools/postcss-nested-calc" "^4.0.0" "@csstools/postcss-normalize-display-values" "^4.0.0" - "@csstools/postcss-oklab-function" "^4.0.7" - "@csstools/postcss-progressive-custom-properties" "^4.0.0" - "@csstools/postcss-random-function" "^1.0.2" - "@csstools/postcss-relative-color-syntax" "^3.0.7" + "@csstools/postcss-oklab-function" "^4.0.9" + "@csstools/postcss-progressive-custom-properties" "^4.0.1" + "@csstools/postcss-random-function" "^2.0.0" + "@csstools/postcss-relative-color-syntax" "^3.0.9" "@csstools/postcss-scope-pseudo-class" "^4.0.1" - "@csstools/postcss-sign-functions" "^1.1.1" - "@csstools/postcss-stepped-value-functions" "^4.0.6" - "@csstools/postcss-text-decoration-shorthand" "^4.0.1" - "@csstools/postcss-trigonometric-functions" "^4.0.6" + "@csstools/postcss-sign-functions" "^1.1.3" + "@csstools/postcss-stepped-value-functions" "^4.0.8" + "@csstools/postcss-text-decoration-shorthand" "^4.0.2" + "@csstools/postcss-trigonometric-functions" "^4.0.8" "@csstools/postcss-unset-value" "^4.0.0" - autoprefixer "^10.4.19" - browserslist "^4.23.1" + autoprefixer "^10.4.21" + browserslist "^4.24.4" css-blank-pseudo "^7.0.1" css-has-pseudo "^7.0.2" css-prefers-color-scheme "^10.0.0" - cssdb "^8.2.3" + cssdb "^8.2.5" postcss-attribute-case-insensitive "^7.0.1" postcss-clamp "^4.1.0" - postcss-color-functional-notation "^7.0.7" + postcss-color-functional-notation "^7.0.9" postcss-color-hex-alpha "^10.0.0" postcss-color-rebeccapurple "^10.0.0" postcss-custom-media "^11.0.5" postcss-custom-properties "^14.0.4" postcss-custom-selectors "^8.0.4" postcss-dir-pseudo-class "^9.0.1" - postcss-double-position-gradients "^6.0.0" + postcss-double-position-gradients "^6.0.1" postcss-focus-visible "^10.0.1" postcss-focus-within "^9.0.1" postcss-font-variant "^5.0.0" postcss-gap-properties "^6.0.0" postcss-image-set-function "^7.0.0" - postcss-lab-function "^7.0.7" - postcss-logical "^8.0.0" + postcss-lab-function "^7.0.9" + postcss-logical "^8.1.0" postcss-nesting "^13.0.1" postcss-opacity-percentage "^3.0.0" postcss-overflow-shorthand "^6.0.0" @@ -7693,21 +7650,21 @@ postcss-preset-env@^10.1.0: postcss-pseudo-class-any-link@^10.0.1: version "10.0.1" - resolved "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-10.0.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-10.0.1.tgz#06455431171bf44b84d79ebaeee9fd1c05946544" integrity sha512-3el9rXlBOqTFaMFkWDOkHUTQekFIYnaQY55Rsp8As8QQkpiSgIYEcF/6Ond93oHiDsGb4kad8zjt+NPlOC1H0Q== dependencies: postcss-selector-parser "^7.0.0" postcss-reduce-idents@^6.0.3: version "6.0.3" - resolved "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz" + resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz#b0d9c84316d2a547714ebab523ec7d13704cd486" integrity sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA== dependencies: postcss-value-parser "^4.2.0" postcss-reduce-initial@^6.1.0: version "6.1.0" - resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz#4401297d8e35cb6e92c8e9586963e267105586ba" integrity sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw== dependencies: browserslist "^4.23.0" @@ -7715,57 +7672,49 @@ postcss-reduce-initial@^6.1.0: postcss-reduce-transforms@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz#6fa2c586bdc091a7373caeee4be75a0f3e12965d" integrity sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA== dependencies: postcss-value-parser "^4.2.0" postcss-replace-overflow-wrap@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz#d2df6bed10b477bf9c52fab28c568b4b29ca4319" integrity sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw== postcss-selector-not@^8.0.1: version "8.0.1" - resolved "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-8.0.1.tgz" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-8.0.1.tgz#f2df9c6ac9f95e9fe4416ca41a957eda16130172" integrity sha512-kmVy/5PYVb2UOhy0+LqUYAhKj7DUGDpSWa5LZqlkWJaaAV+dxxsOG3+St0yNLu6vsKD7Dmqx+nWQt0iil89+WA== dependencies: postcss-selector-parser "^7.0.0" -postcss-selector-parser@^6.0.11: - 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== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-selector-parser@^6.0.16: +postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.16: version "6.1.2" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" postcss-selector-parser@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz" - integrity sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ== + version "7.1.0" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz#4d6af97eba65d73bc4d84bcb343e865d7dd16262" + integrity sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" postcss-sort-media-queries@^5.2.0: version "5.2.0" - resolved "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz#4556b3f982ef27d3bac526b99b6c0d3359a6cf97" integrity sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA== dependencies: sort-css-media-queries "2.2.0" postcss-svgo@^6.0.3: version "6.0.3" - resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-6.0.3.tgz#1d6e180d6df1fa8a3b30b729aaa9161e94f04eaa" integrity sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g== dependencies: postcss-value-parser "^4.2.0" @@ -7773,25 +7722,25 @@ postcss-svgo@^6.0.3: postcss-unique-selectors@^6.0.4: version "6.0.4" - resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz#983ab308896b4bf3f2baaf2336e14e52c11a2088" integrity sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg== dependencies: postcss-selector-parser "^6.0.16" postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== postcss-zindex@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-6.0.2.tgz#e498304b83a8b165755f53db40e2ea65a99b56e1" integrity sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg== -"postcss@^7.0.0 || ^8.0.1", postcss@^8, postcss@^8.0.3, postcss@^8.0.9, postcss@^8.1.0, postcss@^8.2.2, postcss@^8.4, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.24, postcss@^8.4.26, postcss@^8.4.31, postcss@^8.4.33, postcss@^8.4.38, postcss@^8.4.6: - version "8.5.1" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz" - integrity sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ== +postcss@^8.4.21, postcss@^8.4.24, postcss@^8.4.26, postcss@^8.4.33, postcss@^8.4.38: + version "8.5.3" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.3.tgz#1463b6f1c7fb16fe258736cba29a2de35237eafb" + integrity sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A== dependencies: nanoid "^3.3.8" picocolors "^1.1.1" @@ -7799,7 +7748,7 @@ postcss-zindex@^6.0.2: pretty-error@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6" integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw== dependencies: lodash "^4.17.20" @@ -7807,35 +7756,35 @@ pretty-error@^4.0.0: pretty-time@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e" integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA== prism-react-renderer@^2.3.0: version "2.4.1" - resolved "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.4.1.tgz" + resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-2.4.1.tgz#ac63b7f78e56c8f2b5e76e823a976d5ede77e35f" integrity sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig== dependencies: "@types/prismjs" "^1.26.0" clsx "^2.0.0" prismjs@^1.29.0: - version "1.29.0" - resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz" - integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q== + version "1.30.0" + resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.30.0.tgz#d9709969d9d4e16403f6f348c63553b19f0975a9" + integrity sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw== process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== progress@^2.0.3: version "2.0.3" - resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== prompts@^2.4.2: version "2.4.2" - resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== dependencies: kleur "^3.0.3" @@ -7843,7 +7792,7 @@ prompts@^2.4.2: prop-types@^15.6.2, prop-types@^15.7.2: version "15.8.1" - resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== dependencies: loose-envify "^1.4.0" @@ -7852,17 +7801,22 @@ prop-types@^15.6.2, prop-types@^15.7.2: property-information@^6.0.0: version "6.5.0" - resolved "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.5.0.tgz#6212fbb52ba757e92ef4fb9d657563b933b7ffec" integrity sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig== +property-information@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-7.0.0.tgz#3508a6d6b0b8eb3ca6eb2c6623b164d2ed2ab112" + integrity sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg== + proto-list@~1.2.1: version "1.2.4" - resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" + resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== proxy-addr@~2.0.7: version "2.0.7" - resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== dependencies: forwarded "0.2.0" @@ -7870,7 +7824,7 @@ proxy-addr@~2.0.7: proxy-agent@^6.5.0: version "6.5.0" - resolved "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz" + resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-6.5.0.tgz#9e49acba8e4ee234aacb539f89ed9c23d02f232d" integrity sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A== dependencies: agent-base "^7.1.2" @@ -7884,12 +7838,12 @@ proxy-agent@^6.5.0: proxy-from-env@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== pump@^3.0.0: version "3.0.2" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.2.tgz#836f3edd6bc2ee599256c924ffe0d88573ddcbf8" integrity sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw== dependencies: end-of-stream "^1.1.0" @@ -7897,19 +7851,19 @@ pump@^3.0.0: punycode@^2.1.0: version "2.3.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== pupa@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-3.1.0.tgz#f15610274376bbcc70c9a3aa8b505ea23f41c579" integrity sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug== dependencies: escape-goat "^4.0.0" puppeteer-core@23.11.1: version "23.11.1" - resolved "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-23.11.1.tgz" + resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-23.11.1.tgz#3e064de11b3cb3a2df1a8060ff2d05b41be583db" integrity sha512-3HZ2/7hdDKZvZQ7dhhITOUg4/wOrDRjyK2ZBllRB0ZCOi9u0cwq1ACHDjBB+nX+7+kltHjQvBRdeY7+W0T+7Gg== dependencies: "@puppeteer/browsers" "2.6.1" @@ -7921,7 +7875,7 @@ puppeteer-core@23.11.1: puppeteer@^23.3.0: version "23.11.1" - resolved "https://registry.npmjs.org/puppeteer/-/puppeteer-23.11.1.tgz" + resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-23.11.1.tgz#98fd9040786b1219b1a4f639c270377586e8899c" integrity sha512-53uIX3KR5en8l7Vd8n5DUv90Ae9QDQsyIthaUFVzwV6yU750RjqRznEtNMBT20VthqAdemnJN+hxVdmMHKt7Zw== dependencies: "@puppeteer/browsers" "2.6.1" @@ -7933,53 +7887,48 @@ puppeteer@^23.3.0: qs@6.13.0: version "6.13.0" - resolved "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== dependencies: side-channel "^1.0.6" queue-microtask@^1.2.2: version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -queue-tick@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz" - integrity sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag== - queue@6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/queue/-/queue-6.0.2.tgz#b91525283e2315c7553d2efa18d83e76432fed65" integrity sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA== dependencies: inherits "~2.0.3" quick-lru@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== randombytes@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - range-parser@1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" integrity sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A== +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + raw-body@2.5.2: version "2.5.2" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== dependencies: bytes "3.1.2" @@ -7989,7 +7938,7 @@ raw-body@2.5.2: rc@1.2.8: version "1.2.8" - resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== dependencies: deep-extend "^0.6.0" @@ -7999,7 +7948,7 @@ rc@1.2.8: react-dev-utils@^12.0.1: version "12.0.1" - resolved "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz#ba92edb4a1f379bd46ccd6bcd4e7bc398df33e73" integrity sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ== dependencies: "@babel/code-frame" "^7.16.0" @@ -8027,27 +7976,27 @@ react-dev-utils@^12.0.1: strip-ansi "^6.0.1" text-table "^0.2.0" -react-dom@*, "react-dom@^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", react-dom@^18.0.0, "react-dom@^18.0.0 || ^19.0.0", "react-dom@>= 16.8.0 < 19.0.0": +react-dom@^18.0.0: version "18.3.1" - resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4" integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== dependencies: loose-envify "^1.1.0" scheduler "^0.23.2" react-error-overlay@^6.0.11: - version "6.0.11" - resolved "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz" - integrity sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg== + version "6.1.0" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.1.0.tgz#22b86256beb1c5856f08a9a228adb8121dd985f2" + integrity sha512-SN/U6Ytxf1QGkw/9ve5Y+NxBbZM6Ht95tuXNMKs8EJyFa/Vy/+Co3stop3KBHARfn/giv+Lj1uUnTfOJ3moFEQ== react-fast-compare@^3.2.0: version "3.2.2" - resolved "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz#929a97a532304ce9fee4bcae44234f1ce2c21d49" integrity sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ== "react-helmet-async@npm:@slorber/react-helmet-async@*", "react-helmet-async@npm:@slorber/react-helmet-async@1.3.0": version "1.3.0" - resolved "https://registry.npmjs.org/@slorber/react-helmet-async/-/react-helmet-async-1.3.0.tgz" + resolved "https://registry.yarnpkg.com/@slorber/react-helmet-async/-/react-helmet-async-1.3.0.tgz#11fbc6094605cf60aa04a28c17e0aab894b4ecff" integrity sha512-e9/OK8VhwUSc67diWI8Rb3I0YgI9/SBQtnhe9aEuK6MhZm7ntZZimXgwXnd8W96YTmSOb9M4d8LwhRZyhWr/1A== dependencies: "@babel/runtime" "^7.12.5" @@ -8058,38 +8007,38 @@ react-fast-compare@^3.2.0: react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0: version "16.13.1" - resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== react-json-view-lite@^1.2.0: version "1.5.0" - resolved "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-1.5.0.tgz" + resolved "https://registry.yarnpkg.com/react-json-view-lite/-/react-json-view-lite-1.5.0.tgz#377cc302821717ac79a1b6d099e1891df54c8662" integrity sha512-nWqA1E4jKPklL2jvHWs6s+7Na0qNgw9HCP6xehdQJeg6nPBTFZgGwyko9Q0oj+jQWKTTVRS30u0toM5wiuL3iw== react-loadable-ssr-addon-v5-slorber@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz#2cdc91e8a744ffdf9e3556caabeb6e4278689883" integrity sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A== dependencies: "@babel/runtime" "^7.10.3" -react-loadable@*, "react-loadable@npm:@docusaurus/react-loadable@6.0.0": +"react-loadable@npm:@docusaurus/react-loadable@6.0.0": version "6.0.0" - resolved "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz#de6c7f73c96542bd70786b8e522d535d69069dc4" integrity sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ== dependencies: "@types/react" "*" react-router-config@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz" + resolved "https://registry.yarnpkg.com/react-router-config/-/react-router-config-5.1.1.tgz#0f4263d1a80c6b2dc7b9c1902c9526478194a988" integrity sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg== dependencies: "@babel/runtime" "^7.1.2" react-router-dom@^5.3.4: version "5.3.4" - resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.3.4.tgz#2ed62ffd88cae6db134445f4a0c0ae8b91d2e5e6" integrity sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ== dependencies: "@babel/runtime" "^7.12.13" @@ -8100,9 +8049,9 @@ react-router-dom@^5.3.4: tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react-router@^5.3.4, react-router@>=5, react-router@5.3.4: +react-router@5.3.4, react-router@^5.3.4: version "5.3.4" - resolved "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.3.4.tgz#8ca252d70fcc37841e31473c7a151cf777887bb5" integrity sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA== dependencies: "@babel/runtime" "^7.12.13" @@ -8115,16 +8064,16 @@ react-router@^5.3.4, react-router@>=5, react-router@5.3.4: tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react@*, "react@^16.13.1 || ^17.0.0 || ^18.0.0", "react@^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", react@^18.0.0, "react@^18.0.0 || ^19.0.0", react@^18.3.1, "react@>= 16.8.0 < 19.0.0", react@>=15, react@>=16, react@>=16.0.0: +react@^18.0.0: version "18.3.1" - resolved "https://registry.npmjs.org/react/-/react-18.3.1.tgz" + resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891" integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== dependencies: loose-envify "^1.1.0" readable-stream@^2.0.1: version "2.3.8" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== dependencies: core-util-is "~1.0.0" @@ -8137,7 +8086,7 @@ readable-stream@^2.0.1: readable-stream@^3.0.6: version "3.6.2" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: inherits "^2.0.3" @@ -8146,26 +8095,26 @@ readable-stream@^3.0.6: readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" reading-time@^1.5.0: version "1.5.0" - resolved "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz" + resolved "https://registry.yarnpkg.com/reading-time/-/reading-time-1.5.0.tgz#d2a7f1b6057cb2e169beaf87113cc3411b5bc5bb" integrity sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg== rechoir@^0.6.2: version "0.6.2" - resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== dependencies: resolve "^1.1.6" recma-build-jsx@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz#c02f29e047e103d2fab2054954e1761b8ea253c4" integrity sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew== dependencies: "@types/estree" "^1.0.0" @@ -8174,7 +8123,7 @@ recma-build-jsx@^1.0.0: recma-jsx@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/recma-jsx/-/recma-jsx-1.0.0.tgz#f7bef02e571a49d6ba3efdfda8e2efab48dbe3aa" integrity sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q== dependencies: acorn-jsx "^5.0.0" @@ -8185,7 +8134,7 @@ recma-jsx@^1.0.0: recma-parse@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/recma-parse/-/recma-parse-1.0.0.tgz#c351e161bb0ab47d86b92a98a9d891f9b6814b52" integrity sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ== dependencies: "@types/estree" "^1.0.0" @@ -8195,7 +8144,7 @@ recma-parse@^1.0.0: recma-stringify@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/recma-stringify/-/recma-stringify-1.0.0.tgz#54632030631e0c7546136ff9ef8fde8e7b44f130" integrity sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g== dependencies: "@types/estree" "^1.0.0" @@ -8205,38 +8154,38 @@ recma-stringify@^1.0.0: recursive-readdir@^2.2.2: version "2.2.3" - resolved "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.3.tgz#e726f328c0d69153bcabd5c322d3195252379372" integrity sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA== dependencies: minimatch "^3.0.5" regenerate-unicode-properties@^10.2.0: version "10.2.0" - resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz#626e39df8c372338ea9b8028d1f99dc3fd9c3db0" integrity sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA== dependencies: regenerate "^1.4.2" regenerate@^1.4.2: version "1.4.2" - resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== regenerator-runtime@^0.14.0: version "0.14.1" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== regenerator-transform@^0.15.2: version "0.15.2" - resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== dependencies: "@babel/runtime" "^7.8.4" regexpu-core@^6.2.0: version "6.2.0" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.2.0.tgz#0e5190d79e542bf294955dccabae04d3c7d53826" integrity sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA== dependencies: regenerate "^1.4.2" @@ -8247,34 +8196,34 @@ regexpu-core@^6.2.0: unicode-match-property-value-ecmascript "^2.1.0" registry-auth-token@^5.0.1: - version "5.0.3" - resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.3.tgz" - integrity sha512-1bpc9IyC+e+CNFRaWyn77tk4xGG4PPUyfakSmA6F6cvUDjrm58dfyJ3II+9yb10EDkHoy1LaPSmHaWLOH3m6HA== + version "5.1.0" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-5.1.0.tgz#3c659047ecd4caebd25bc1570a3aa979ae490eca" + integrity sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw== dependencies: "@pnpm/npm-conf" "^2.1.0" registry-url@^6.0.0: version "6.0.1" - resolved "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-6.0.1.tgz#056d9343680f2f64400032b1e199faa692286c58" integrity sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q== dependencies: rc "1.2.8" regjsgen@^0.8.0: version "0.8.0" - resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab" integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== regjsparser@^0.12.0: version "0.12.0" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.12.0.tgz#0e846df6c6530586429377de56e0475583b088dc" integrity sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ== dependencies: jsesc "~3.0.2" rehype-raw@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/rehype-raw/-/rehype-raw-7.0.0.tgz#59d7348fd5dbef3807bbaa1d443efd2dd85ecee4" integrity sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww== dependencies: "@types/hast" "^3.0.0" @@ -8283,7 +8232,7 @@ rehype-raw@^7.0.0: rehype-recma@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/rehype-recma/-/rehype-recma-1.0.0.tgz#d68ef6344d05916bd96e25400c6261775411aa76" integrity sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw== dependencies: "@types/estree" "^1.0.0" @@ -8292,13 +8241,13 @@ rehype-recma@^1.0.0: relateurl@^0.2.7: version "0.2.7" - resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== remark-directive@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/remark-directive/-/remark-directive-3.0.0.tgz" - integrity sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA== + version "3.0.1" + resolved "https://registry.yarnpkg.com/remark-directive/-/remark-directive-3.0.1.tgz#689ba332f156cfe1118e849164cc81f157a3ef0a" + integrity sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A== dependencies: "@types/mdast" "^4.0.0" mdast-util-directive "^3.0.0" @@ -8307,7 +8256,7 @@ remark-directive@^3.0.0: remark-emoji@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/remark-emoji/-/remark-emoji-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/remark-emoji/-/remark-emoji-4.0.1.tgz#671bfda668047689e26b2078c7356540da299f04" integrity sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg== dependencies: "@types/mdast" "^4.0.2" @@ -8318,7 +8267,7 @@ remark-emoji@^4.0.0: remark-frontmatter@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz#b68d61552a421ec412c76f4f66c344627dc187a2" integrity sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ== dependencies: "@types/mdast" "^4.0.0" @@ -8327,9 +8276,9 @@ remark-frontmatter@^5.0.0: unified "^11.0.0" remark-gfm@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz" - integrity sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA== + version "4.0.1" + resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-4.0.1.tgz#33227b2a74397670d357bf05c098eaf8513f0d6b" + integrity sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg== dependencies: "@types/mdast" "^4.0.0" mdast-util-gfm "^3.0.0" @@ -8340,7 +8289,7 @@ remark-gfm@^4.0.0: remark-mdx@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-3.1.0.tgz#f979be729ecb35318fa48e2135c1169607a78343" integrity sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA== dependencies: mdast-util-mdx "^3.0.0" @@ -8348,7 +8297,7 @@ remark-mdx@^3.0.0: remark-parse@^11.0.0: version "11.0.0" - resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-11.0.0.tgz#aa60743fcb37ebf6b069204eb4da304e40db45a1" integrity sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA== dependencies: "@types/mdast" "^4.0.0" @@ -8357,9 +8306,9 @@ remark-parse@^11.0.0: unified "^11.0.0" remark-rehype@^11.0.0: - version "11.1.1" - resolved "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.1.tgz" - integrity sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ== + version "11.1.2" + resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-11.1.2.tgz#2addaadda80ca9bd9aa0da763e74d16327683b37" + integrity sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw== dependencies: "@types/hast" "^3.0.0" "@types/mdast" "^4.0.0" @@ -8369,7 +8318,7 @@ remark-rehype@^11.0.0: remark-stringify@^11.0.0: version "11.0.0" - resolved "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-11.0.0.tgz#4c5b01dd711c269df1aaae11743eb7e2e7636fd3" integrity sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw== dependencies: "@types/mdast" "^4.0.0" @@ -8378,7 +8327,7 @@ remark-stringify@^11.0.0: renderkid@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg== dependencies: css-select "^4.1.3" @@ -8389,47 +8338,47 @@ renderkid@^3.0.0: repeat-string@^1.0.0: version "1.6.1" - resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-from-string@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== "require-like@>= 0.1.1": version "0.1.2" - resolved "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz" + resolved "https://registry.yarnpkg.com/require-like/-/require-like-0.1.2.tgz#ad6f30c13becd797010c468afa775c0c0a6b47fa" integrity sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A== requires-port@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== resolve-alpn@^1.2.0: version "1.2.1" - resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-pathname@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== resolve@^1.1.6, resolve@^1.14.2: version "1.22.10" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== dependencies: is-core-module "^2.16.0" @@ -8438,31 +8387,31 @@ resolve@^1.1.6, resolve@^1.14.2: responselike@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== dependencies: lowercase-keys "^3.0.0" retry@^0.13.1: version "0.13.1" - resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + version "1.1.0" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" + integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" rtlcss@^4.1.0: version "4.3.0" - resolved "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/rtlcss/-/rtlcss-4.3.0.tgz#f8efd4d5b64f640ec4af8fa25b65bacd9e07cc97" integrity sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig== dependencies: escalade "^3.1.1" @@ -8472,50 +8421,50 @@ rtlcss@^4.1.0: run-parallel@^1.1.9: version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: queue-microtask "^1.2.2" -safe-buffer@^5.1.0, safe-buffer@>=5.1.0, safe-buffer@~5.2.0, safe-buffer@5.2.1: +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== "safer-buffer@>= 2.1.2 < 3": version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sax@^1.2.4: version "1.4.1" - resolved "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f" integrity sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg== scheduler@^0.23.2: version "0.23.2" - resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3" integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== dependencies: loose-envify "^1.1.0" -schema-utils@^3.0.0: - version "3.3.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" - integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== +schema-utils@2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" -schema-utils@^3.2.0: +schema-utils@^3.0.0: version "3.3.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== dependencies: "@types/json-schema" "^7.0.8" @@ -8523,32 +8472,18 @@ schema-utils@^3.2.0: ajv-keywords "^3.5.2" schema-utils@^4.0.0, schema-utils@^4.0.1, schema-utils@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz" - integrity sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g== + version "4.3.2" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.3.2.tgz#0c10878bf4a73fd2b1dfd14b9462b26788c806ae" + integrity sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ== dependencies: "@types/json-schema" "^7.0.9" ajv "^8.9.0" ajv-formats "^2.1.1" ajv-keywords "^5.1.0" -schema-utils@2.7.0: - version "2.7.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz" - integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== - dependencies: - "@types/json-schema" "^7.0.4" - ajv "^6.12.2" - ajv-keywords "^3.4.1" - -"search-insights@>= 1 < 3": - version "2.17.3" - resolved "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz" - integrity sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ== - section-matter@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== dependencies: extend-shallow "^2.0.1" @@ -8556,12 +8491,12 @@ section-matter@^1.0.0: select-hose@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== selfsigned@^2.1.1: version "2.4.1" - resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0" integrity sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q== dependencies: "@types/node-forge" "^1.3.0" @@ -8569,44 +8504,24 @@ selfsigned@^2.1.1: semver-diff@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-4.0.0.tgz#3afcf5ed6d62259f5c72d0d5d50dffbdc9680df5" integrity sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA== dependencies: semver "^7.3.5" semver@^6.0.0, semver@^6.3.1: version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.2: - version "7.6.3" - resolved "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz" - integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== - -semver@^7.3.5: - version "7.6.3" - resolved "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz" - integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== - -semver@^7.3.7: - version "7.6.3" - resolved "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz" - integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== - -semver@^7.5.4: - version "7.6.3" - resolved "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz" - integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== - -semver@^7.6.3: - version "7.6.3" - resolved "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz" - integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== +semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.5.4, semver@^7.6.3: + version "7.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.1.tgz#abd5098d82b18c6c81f6074ff2647fd3e7220c9f" + integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA== send@0.19.0: version "0.19.0" - resolved "https://registry.npmjs.org/send/-/send-0.19.0.tgz" + resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== dependencies: debug "2.6.9" @@ -8625,14 +8540,14 @@ send@0.19.0: serialize-javascript@^6.0.0, serialize-javascript@^6.0.1, serialize-javascript@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== dependencies: randombytes "^2.1.0" serve-handler@^6.1.6: version "6.1.6" - resolved "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.6.tgz" + resolved "https://registry.yarnpkg.com/serve-handler/-/serve-handler-6.1.6.tgz#50803c1d3e947cd4a341d617f8209b22bd76cfa1" integrity sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ== dependencies: bytes "3.0.0" @@ -8645,7 +8560,7 @@ serve-handler@^6.1.6: serve-index@^1.9.1: version "1.9.1" - resolved "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== dependencies: accepts "~1.3.4" @@ -8658,7 +8573,7 @@ serve-index@^1.9.1: serve-static@1.16.2: version "1.16.2" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296" integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== dependencies: encodeurl "~2.0.0" @@ -8668,7 +8583,7 @@ serve-static@1.16.2: set-function-length@^1.2.2: version "1.2.2" - resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== dependencies: define-data-property "^1.1.4" @@ -8680,46 +8595,46 @@ set-function-length@^1.2.2: setprototypeof@1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== setprototypeof@1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== shallow-clone@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== dependencies: kind-of "^6.0.2" shallowequal@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shell-quote@^1.7.3, shell-quote@^1.8.1: version "1.8.2" - resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.2.tgz#d2d83e057959d53ec261311e9e9b8f51dcb2934a" integrity sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA== shelljs@^0.8.5: version "0.8.5" - resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== dependencies: glob "^7.0.0" @@ -8728,7 +8643,7 @@ shelljs@^0.8.5: side-channel-list@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad" integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== dependencies: es-errors "^1.3.0" @@ -8736,7 +8651,7 @@ side-channel-list@^1.0.0: side-channel-map@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42" integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== dependencies: call-bound "^1.0.2" @@ -8746,7 +8661,7 @@ side-channel-map@^1.0.1: side-channel-weakmap@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea" integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== dependencies: call-bound "^1.0.2" @@ -8757,7 +8672,7 @@ side-channel-weakmap@^1.0.2: side-channel@^1.0.6: version "1.1.0" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== dependencies: es-errors "^1.3.0" @@ -8768,17 +8683,17 @@ side-channel@^1.0.6: signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== signal-exit@^4.0.1: version "4.1.0" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== sirv@^2.0.3: version "2.0.4" - resolved "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.4.tgz#5dd9a725c578e34e449f332703eb2a74e46a29b0" integrity sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ== dependencies: "@polka/url" "^1.0.0-next.24" @@ -8787,12 +8702,12 @@ sirv@^2.0.3: sisteransi@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== sitemap@^7.1.1: version "7.1.2" - resolved "https://registry.npmjs.org/sitemap/-/sitemap-7.1.2.tgz" + resolved "https://registry.yarnpkg.com/sitemap/-/sitemap-7.1.2.tgz#6ce1deb43f6f177c68bc59cf93632f54e3ae6b72" integrity sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw== dependencies: "@types/node" "^17.0.5" @@ -8802,29 +8717,29 @@ sitemap@^7.1.1: skin-tone@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/skin-tone/-/skin-tone-2.0.0.tgz#4e3933ab45c0d4f4f781745d64b9f4c208e41237" integrity sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA== dependencies: unicode-emoji-modifier-base "^1.0.0" slash@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== slash@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== smart-buffer@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== snake-case@^3.0.4: version "3.0.4" - resolved "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== dependencies: dot-case "^3.0.4" @@ -8832,7 +8747,7 @@ snake-case@^3.0.4: sockjs@^0.3.24: version "0.3.24" - resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" integrity sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ== dependencies: faye-websocket "^0.11.3" @@ -8841,7 +8756,7 @@ sockjs@^0.3.24: socks-proxy-agent@^8.0.5: version "8.0.5" - resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz#b9cdb4e7e998509d7659d689ce7697ac21645bee" integrity sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw== dependencies: agent-base "^7.1.2" @@ -8849,26 +8764,26 @@ socks-proxy-agent@^8.0.5: socks "^2.8.3" socks@^2.8.3: - version "2.8.3" - resolved "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz" - integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw== + version "2.8.4" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.4.tgz#07109755cdd4da03269bda4725baa061ab56d5cc" + integrity sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ== dependencies: ip-address "^9.0.5" smart-buffer "^4.2.0" sort-css-media-queries@2.2.0: version "2.2.0" - resolved "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz#aa33cf4a08e0225059448b6c40eddbf9f1c8334c" integrity sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA== source-map-js@^1.0.1, source-map-js@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== source-map-support@~0.5.20: version "0.5.21" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== dependencies: buffer-from "^1.0.0" @@ -8876,22 +8791,22 @@ source-map-support@~0.5.20: source-map@^0.6.0, source-map@~0.6.0, source-map@~0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== source-map@^0.7.0: version "0.7.4" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== space-separated-tokens@^2.0.0: version "2.0.2" - resolved "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== spdy-transport@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== dependencies: debug "^4.1.0" @@ -8903,7 +8818,7 @@ spdy-transport@^3.0.0: spdy@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== dependencies: debug "^4.1.0" @@ -8914,62 +8829,47 @@ spdy@^4.0.2: sprintf-js@^1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== srcset@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/srcset/-/srcset-4.0.0.tgz#336816b665b14cd013ba545b6fe62357f86e65f4" integrity sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw== -"statuses@>= 1.4.0 < 2": - version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - statuses@2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + std-env@^3.7.0: - version "3.8.0" - resolved "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz" - integrity sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w== + version "3.9.0" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.9.0.tgz#1a6f7243b339dca4c9fd55e1c7504c77ef23e8f1" + integrity sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw== streamx@^2.15.0, streamx@^2.21.0: - version "2.21.1" - resolved "https://registry.npmjs.org/streamx/-/streamx-2.21.1.tgz" - integrity sha512-PhP9wUnFLa+91CPy3N6tiQsK+gnYyUNuk15S3YG/zjYE7RuPeCjJngqnzpC31ow0lzBHQ+QGO4cNJnd0djYUsw== + version "2.22.0" + resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.22.0.tgz#cd7b5e57c95aaef0ff9b2aef7905afa62ec6e4a7" + integrity sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw== dependencies: fast-fifo "^1.3.2" - queue-tick "^1.0.1" text-decoder "^1.1.0" optionalDependencies: bare-events "^2.2.0" -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - "string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -8978,34 +8878,39 @@ string_decoder@~1.1.1: string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^5.0.1: +string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: eastasianwidth "^0.2.0" emoji-regex "^9.2.2" strip-ansi "^7.0.1" -string-width@^5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" stringify-entities@^4.0.0: version "4.0.4" - resolved "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.4.tgz#b3b79ef5f277cc4ac73caeb0236c5ba939b3a4f3" integrity sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg== dependencies: character-entities-html4 "^2.0.0" @@ -9013,7 +8918,7 @@ stringify-entities@^4.0.0: stringify-object@^3.3.0: version "3.3.0" - resolved "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== dependencies: get-own-enumerable-property-symbols "^3.0.0" @@ -9022,62 +8927,69 @@ stringify-object@^3.3.0: "strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-ansi@^7.0.1: version "7.1.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== dependencies: ansi-regex "^6.0.1" strip-bom-string@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== strip-final-newline@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== strip-json-comments@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== strip-json-comments@~2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== strip-outer@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== dependencies: escape-string-regexp "^1.0.2" -style-to-object@^1.0.0: +style-to-js@^1.0.0: + version "1.1.16" + resolved "https://registry.yarnpkg.com/style-to-js/-/style-to-js-1.1.16.tgz#e6bd6cd29e250bcf8fa5e6591d07ced7575dbe7a" + integrity sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw== + dependencies: + style-to-object "1.0.8" + +style-to-object@1.0.8: version "1.0.8" - resolved "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-1.0.8.tgz#67a29bca47eaa587db18118d68f9d95955e81292" integrity sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g== dependencies: inline-style-parser "0.2.4" stylehacks@^6.1.1: version "6.1.1" - resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-6.1.1.tgz#543f91c10d17d00a440430362d419f79c25545a6" integrity sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg== dependencies: browserslist "^4.23.0" @@ -9085,31 +8997,31 @@ stylehacks@^6.1.1: supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" supports-color@^8.0.0: version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== dependencies: has-flag "^4.0.0" supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== svg-parser@^2.0.4: version "2.0.4" - resolved "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== svgo@^3.0.2, svgo@^3.2.0: version "3.3.2" - resolved "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.3.2.tgz#ad58002652dffbb5986fc9716afe52d869ecbda8" integrity sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw== dependencies: "@trysound/sax" "0.2.0" @@ -9122,17 +9034,17 @@ svgo@^3.0.2, svgo@^3.2.0: tapable@^1.0.0: version "1.1.3" - resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: version "2.2.1" - resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== tar-fs@^3.0.6: version "3.0.8" - resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.8.tgz" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.0.8.tgz#8f62012537d5ff89252d01e48690dc4ebed33ab7" integrity sha512-ZoROL70jptorGAlgAYiLoBLItEKw/fUxg9BSYK/dF/GAGYFJOJJJMvjPAKDJraCXFwadD456FCuvLWgfhMsPwg== dependencies: pump "^3.0.0" @@ -9143,17 +9055,17 @@ tar-fs@^3.0.6: tar-stream@^3.1.5: version "3.1.7" - resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.1.7.tgz#24b3fb5eabada19fe7338ed6d26e5f7c482e792b" integrity sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ== dependencies: b4a "^1.6.4" fast-fifo "^1.2.0" streamx "^2.15.0" -terser-webpack-plugin@^5.3.10, terser-webpack-plugin@^5.3.9: - version "5.3.11" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz" - integrity sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ== +terser-webpack-plugin@^5.3.11, terser-webpack-plugin@^5.3.9: + version "5.3.14" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz#9031d48e57ab27567f02ace85c7d690db66c3e06" + integrity sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw== dependencies: "@jridgewell/trace-mapping" "^0.3.25" jest-worker "^27.4.5" @@ -9162,9 +9074,9 @@ terser-webpack-plugin@^5.3.10, terser-webpack-plugin@^5.3.9: terser "^5.31.1" terser@^5.10.0, terser@^5.15.1, terser@^5.31.1: - version "5.37.0" - resolved "https://registry.npmjs.org/terser/-/terser-5.37.0.tgz" - integrity sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA== + version "5.39.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.39.0.tgz#0e82033ed57b3ddf1f96708d123cca717d86ca3a" + integrity sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -9173,98 +9085,98 @@ terser@^5.10.0, terser@^5.15.1, terser@^5.31.1: text-decoder@^1.1.0: version "1.2.3" - resolved "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz" + resolved "https://registry.yarnpkg.com/text-decoder/-/text-decoder-1.2.3.tgz#b19da364d981b2326d5f43099c310cc80d770c65" integrity sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA== dependencies: b4a "^1.6.4" text-table@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== through@^2.3.8: version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== thunky@^1.0.2: version "1.1.0" - resolved "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== tiny-invariant@^1.0.2: version "1.3.3" - resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.3.tgz#46680b7a873a0d5d10005995eb90a70d74d60127" integrity sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg== tiny-warning@^1.0.0: version "1.0.3" - resolved "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" toidentifier@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== totalist@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8" integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== trim-lines@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== trim-repeated@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" integrity sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg== dependencies: escape-string-regexp "^1.0.2" trough@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/trough/-/trough-2.2.0.tgz#94a60bd6bd375c152c1df911a4b11d5b0256f50f" integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw== tslib@^2.0.1, tslib@^2.0.3, tslib@^2.6.0: version "2.8.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== tunnel@^0.0.6: version "0.0.6" - resolved "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz" + resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== type-fest@^0.21.3: version "0.21.3" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== type-fest@^1.0.1: version "1.4.0" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== type-fest@^2.13.0, type-fest@^2.5.0: version "2.19.0" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== type-is@~1.6.18: version "1.6.18" - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== dependencies: media-typer "0.3.0" @@ -9272,54 +9184,49 @@ type-is@~1.6.18: typed-query-selector@^2.12.0: version "2.12.0" - resolved "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz" + resolved "https://registry.yarnpkg.com/typed-query-selector/-/typed-query-selector-2.12.0.tgz#92b65dbc0a42655fccf4aeb1a08b1dddce8af5f2" integrity sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg== typedarray-to-buffer@^3.1.5: version "3.1.5" - resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== dependencies: is-typedarray "^1.0.0" -"typescript@>= 2.7", typescript@>=4.9.5: - version "5.7.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz" - integrity sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw== - unbzip2-stream@^1.4.3: version "1.4.3" - resolved "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz" + resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== dependencies: buffer "^5.2.1" through "^2.3.8" -undici-types@~6.20.0: - version "6.20.0" - resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz" - integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg== +undici-types@~6.21.0: + version "6.21.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" + integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== undici@^5.25.4: - version "5.28.4" - resolved "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz" - integrity sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g== + version "5.29.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.29.0.tgz#419595449ae3f2cdcba3580a2e8903399bd1f5a3" + integrity sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg== dependencies: "@fastify/busboy" "^2.0.0" unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz#cb3173fe47ca743e228216e4a3ddc4c84d628cc2" integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== unicode-emoji-modifier-base@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz#dbbd5b54ba30f287e2a8d5a249da6c0cef369459" integrity sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g== unicode-match-property-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== dependencies: unicode-canonical-property-names-ecmascript "^2.0.0" @@ -9327,17 +9234,17 @@ unicode-match-property-ecmascript@^2.0.0: unicode-match-property-value-ecmascript@^2.1.0: version "2.2.0" - resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz#a0401aee72714598f739b68b104e4fe3a0cb3c71" integrity sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg== unicode-property-aliases-ecmascript@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== unified@^11.0.0, unified@^11.0.3, unified@^11.0.4: version "11.0.5" - resolved "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz" + resolved "https://registry.yarnpkg.com/unified/-/unified-11.0.5.tgz#f66677610a5c0a9ee90cab2b8d4d66037026d9e1" integrity sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA== dependencies: "@types/unist" "^3.0.0" @@ -9350,42 +9257,42 @@ unified@^11.0.0, unified@^11.0.3, unified@^11.0.4: unique-string@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a" integrity sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ== dependencies: crypto-random-string "^4.0.0" unist-util-is@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-6.0.0.tgz#b775956486aff107a9ded971d996c173374be424" integrity sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw== dependencies: "@types/unist" "^3.0.0" unist-util-position-from-estree@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz#d94da4df596529d1faa3de506202f0c9a23f2200" integrity sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ== dependencies: "@types/unist" "^3.0.0" unist-util-position@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-5.0.0.tgz#678f20ab5ca1207a97d7ea8a388373c9cf896be4" integrity sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA== dependencies: "@types/unist" "^3.0.0" unist-util-stringify-position@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz#449c6e21a880e0855bf5aabadeb3a740314abac2" integrity sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ== dependencies: "@types/unist" "^3.0.0" unist-util-visit-parents@^6.0.0: version "6.0.1" - resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz#4d5f85755c3b8f0dc69e21eca5d6d82d22162815" integrity sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw== dependencies: "@types/unist" "^3.0.0" @@ -9393,7 +9300,7 @@ unist-util-visit-parents@^6.0.0: unist-util-visit@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-5.0.0.tgz#a7de1f31f72ffd3519ea71814cccf5fd6a9217d6" integrity sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg== dependencies: "@types/unist" "^3.0.0" @@ -9402,25 +9309,25 @@ unist-util-visit@^5.0.0: universalify@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -unpipe@~1.0.0, unpipe@1.0.0: +unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== update-browserslist-db@^1.1.1: - version "1.1.2" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz" - integrity sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg== + version "1.1.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420" + integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== dependencies: escalade "^3.2.0" picocolors "^1.1.1" update-notifier@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-6.0.2.tgz#a6990253dfe6d5a02bd04fbb6a61543f55026b60" integrity sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og== dependencies: boxen "^7.0.0" @@ -9440,14 +9347,14 @@ update-notifier@^6.0.2: uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" url-loader@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== dependencies: loader-utils "^2.0.0" @@ -9456,42 +9363,42 @@ url-loader@^4.1.1: util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== utila@~0.4: version "0.4.0" - resolved "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== utility-types@^3.10.0: version "3.11.0" - resolved "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz" + resolved "https://registry.yarnpkg.com/utility-types/-/utility-types-3.11.0.tgz#607c40edb4f258915e901ea7995607fdf319424c" integrity sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw== utils-merge@1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== uuid@^8.3.2: version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== value-equal@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== vary@~1.1.2: version "1.1.2" - resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== vfile-location@^5.0.0: version "5.0.3" - resolved "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-5.0.3.tgz#cb9eacd20f2b6426d19451e0eafa3d0a846225c3" integrity sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg== dependencies: "@types/unist" "^3.0.0" @@ -9499,7 +9406,7 @@ vfile-location@^5.0.0: vfile-message@^4.0.0: version "4.0.2" - resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-4.0.2.tgz#c883c9f677c72c166362fd635f21fc165a7d1181" integrity sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw== dependencies: "@types/unist" "^3.0.0" @@ -9507,7 +9414,7 @@ vfile-message@^4.0.0: vfile@^6.0.0, vfile@^6.0.1: version "6.0.3" - resolved "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-6.0.3.tgz#3652ab1c496531852bf55a6bac57af981ebc38ab" integrity sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q== dependencies: "@types/unist" "^3.0.0" @@ -9515,7 +9422,7 @@ vfile@^6.0.0, vfile@^6.0.1: watchpack@^2.4.1: version "2.4.2" - resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.2.tgz#2feeaed67412e7c33184e5a79ca738fbd38564da" integrity sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw== dependencies: glob-to-regexp "^0.4.1" @@ -9523,19 +9430,19 @@ watchpack@^2.4.1: wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" - resolved "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== dependencies: minimalistic-assert "^1.0.0" web-namespaces@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-2.0.1.tgz#1010ff7c650eccb2592cebeeaf9a1b253fd40692" integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ== webpack-bundle-analyzer@^4.10.2: version "4.10.2" - resolved "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz#633af2862c213730be3dbdf40456db171b60d5bd" integrity sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw== dependencies: "@discoveryjs/json-ext" "0.5.7" @@ -9553,7 +9460,7 @@ webpack-bundle-analyzer@^4.10.2: webpack-dev-middleware@^5.3.4: version "5.3.4" - resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz#eb7b39281cbce10e104eb2b8bf2b63fce49a3517" integrity sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q== dependencies: colorette "^2.0.10" @@ -9564,7 +9471,7 @@ webpack-dev-middleware@^5.3.4: webpack-dev-server@^4.15.2: version "4.15.2" - resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz#9e0c70a42a012560860adb186986da1248333173" integrity sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g== dependencies: "@types/bonjour" "^3.5.9" @@ -9600,7 +9507,7 @@ webpack-dev-server@^4.15.2: webpack-merge@^5.9.0: version "5.10.0" - resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.10.0.tgz#a3ad5d773241e9c682803abf628d4cd62b8a4177" integrity sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA== dependencies: clone-deep "^4.0.1" @@ -9609,7 +9516,7 @@ webpack-merge@^5.9.0: webpack-merge@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-6.0.1.tgz#50c776868e080574725abc5869bd6e4ef0a16c6a" integrity sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg== dependencies: clone-deep "^4.0.1" @@ -9618,13 +9525,13 @@ webpack-merge@^6.0.1: webpack-sources@^3.2.3: version "3.2.3" - resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -"webpack@^4 || ^5", "webpack@^4.0.0 || ^5.0.0", "webpack@^4.37.0 || ^5.0.0", webpack@^5.0.0, webpack@^5.1.0, webpack@^5.20.0, webpack@^5.88.1, webpack@^5.95.0, "webpack@>= 4", "webpack@>=4.41.1 || 5.x", webpack@>=5, "webpack@3 || 4 || 5": - version "5.97.1" - resolved "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz" - integrity sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg== +webpack@^5.88.1, webpack@^5.95.0: + version "5.99.6" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.99.6.tgz#0d6ba7ce1d3609c977f193d2634d54e5cf36379d" + integrity sha512-TJOLrJ6oeccsGWPl7ujCYuc0pIq2cNsuD6GZDma8i5o5Npvcco/z+NKvZSFsP0/x6SShVb0+X2JK/JHUjKY9dQ== dependencies: "@types/eslint-scope" "^3.7.7" "@types/estree" "^1.0.6" @@ -9644,15 +9551,15 @@ webpack-sources@^3.2.3: loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" - schema-utils "^3.2.0" + schema-utils "^4.3.0" tapable "^2.1.1" - terser-webpack-plugin "^5.3.10" + terser-webpack-plugin "^5.3.11" watchpack "^2.4.1" webpack-sources "^3.2.3" webpackbar@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/webpackbar/-/webpackbar-6.0.1.tgz" + resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-6.0.1.tgz#5ef57d3bf7ced8b19025477bc7496ea9d502076b" integrity sha512-TnErZpmuKdwWBdMoexjio3KKX6ZtoKHRVvLIU0A47R0VVBDtx3ZyOJDktgYixhoJokZTYTt1Z37OkO9pnGJa9Q== dependencies: ansi-escapes "^4.3.2" @@ -9664,9 +9571,9 @@ webpackbar@^6.0.1: std-env "^3.7.0" wrap-ansi "^7.0.0" -websocket-driver@^0.7.4, websocket-driver@>=0.5.1: +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" - resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== dependencies: http-parser-js ">=0.5.1" @@ -9675,38 +9582,38 @@ websocket-driver@^0.7.4, websocket-driver@>=0.5.1: websocket-extensions@>=0.1.1: version "0.1.4" - resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== which@^1.3.1: version "1.3.1" - resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" which@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" widest-line@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-4.0.1.tgz#a0fc673aaba1ea6f0a0d35b3c2795c9a9cc2ebf2" integrity sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig== dependencies: string-width "^5.0.1" wildcard@^2.0.0, wildcard@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -9715,7 +9622,7 @@ wildcard@^2.0.0, wildcard@^2.0.1: wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -9724,7 +9631,7 @@ wrap-ansi@^7.0.0: wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: version "8.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== dependencies: ansi-styles "^6.1.0" @@ -9733,12 +9640,12 @@ wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: wrappy@1: version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== write-file-atomic@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== dependencies: imurmurhash "^0.1.4" @@ -9748,49 +9655,49 @@ write-file-atomic@^3.0.3: ws@^7.3.1: version "7.5.10" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== ws@^8.13.0, ws@^8.18.0: - version "8.18.0" - resolved "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz" - integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== + version "8.18.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.1.tgz#ea131d3784e1dfdff91adb0a4a116b127515e3cb" + integrity sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w== xdg-basedir@^5.0.1, xdg-basedir@^5.1.0: version "5.1.0" - resolved "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9" integrity sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ== xml-js@^1.6.11: version "1.6.11" - resolved "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz" + resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== dependencies: sax "^1.2.4" y18n@^5.0.5: version "5.0.8" - resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yallist@^3.0.2: version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yaml@^1.7.2: version "1.10.2" - resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== yargs-parser@^21.1.1: version "21.1.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs@^17.7.2: version "17.7.2" - resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: cliui "^8.0.1" @@ -9803,7 +9710,7 @@ yargs@^17.7.2: yauzl@^2.10.0: version "2.10.0" - resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== dependencies: buffer-crc32 "~0.2.3" @@ -9811,20 +9718,20 @@ yauzl@^2.10.0: yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== yocto-queue@^1.0.0: - version "1.1.1" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz" - integrity sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g== + version "1.2.1" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.2.1.tgz#36d7c4739f775b3cbc28e6136e21aa057adec418" + integrity sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg== zod@3.23.8: version "3.23.8" - resolved "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d" integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== zwitch@^2.0.0: version "2.0.4" - resolved "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== From 5c9ca7d48beaaff6eaef0c68b945ca5dfcc6f3bd Mon Sep 17 00:00:00 2001 From: Jiu-hong Date: Tue, 29 Apr 2025 15:34:11 +0800 Subject: [PATCH 12/97] change condor to 2.0 --- condor/devnet-info.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/condor/devnet-info.md b/condor/devnet-info.md index 47431e245..1573fcff1 100644 --- a/condor/devnet-info.md +++ b/condor/devnet-info.md @@ -2,7 +2,7 @@ ## What is Devnet? -The Casper Condor release is being rolled out in a phased fashion, allowing people to test their code, SDKs and smart contracts, before migrating to Mainnet. The first phase of this is rolling out to Devnet. +The Casper 2.0 release is being rolled out in a phased fashion, allowing people to test their code, SDKs and smart contracts, before migrating to Mainnet. The first phase of this is rolling out to Devnet. This article/FAQ is a guide to the process for gaining access to Devnet, what to expect when you do access Devnet, and any other concerns. From 7c17b9e659bccbdd2bb7a2a6f2c4ebc78f514647 Mon Sep 17 00:00:00 2001 From: Jiu-hong Date: Tue, 29 Apr 2025 15:48:51 +0800 Subject: [PATCH 13/97] update current commit-hash --- condor/devnet-info.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/condor/devnet-info.md b/condor/devnet-info.md index 1573fcff1..aefcfbbcd 100644 --- a/condor/devnet-info.md +++ b/condor/devnet-info.md @@ -25,11 +25,11 @@ Once your request has been processed, you will be notified and provided with a l **casper-sidecar:** - Release Candidate : `v1.0.4` - - Branch/Repo : [casper-sidecar-v1.0.4](https://github.com/casper-network/casper-sidecar/commit/a7b552832aa44390d90b96c3ace67fdefce24670) + - Branch/Repo : [casper-sidecar-v1.0.4](https://github.com/casper-network/casper-sidecar/tree/v1.0.4) **casper-client-rs:** - Release Candidate : `v3.0.1` - - Branch/Repo : [casper-client-v3.0.1](https://github.com/casper-ecosystegitm/casper-client-rs/commit/305adf13a08d6b0dac016fa30cec77841ca0a8ca) + - Branch/Repo : [casper-client-v3.0.1](https://github.com/casper-ecosystem/casper-client-rs/commits/v3.0.1) **NCTL:** - New NCTL image with `v200-rc10` available on Docker Hub: @@ -54,17 +54,13 @@ Once your request has been processed, you will be notified and provided with a l - Go - Github release : [casper-go-sdk-2.0.3-beta1](https://github.com/make-software/casper-go-sdk/releases/tag/v2.0.3-beta1) -- Java (WIP) -- Python (WIP) -- Rust (WIP) -- PHP (WIP) NOTE: The SDKs have a couple of known serialisation issues. We're working on patch updates to address these issues. ## How can I explore the transactions in Devnet? -You can explore using the DevNet mini-explorer that points to the Devnet (RC6) at https://devnet.make.services/ +You can explore https://devnet.cspr.live/ Please note that SSE is listening at 52.90.123.125. From bfb55e192b31e3d8a3ac10ad35679df90ef53668 Mon Sep 17 00:00:00 2001 From: Devendran Date: Tue, 29 Apr 2025 18:27:31 +0530 Subject: [PATCH 14/97] Fix review comments in Casper 2.0 release notes --- condor/index.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/condor/index.md b/condor/index.md index b27eff1b0..971d45a96 100644 --- a/condor/index.md +++ b/condor/index.md @@ -53,11 +53,12 @@ A detailed discussion of the Zug consensus may be found in the [Casper documenta In Casper 2.0, we are introducing a change to the execution engine which allows transactors to specify which of many possible VMs they wish to target with their transaction. ### CSPR Burn function -In Casper 2.0 users can burn CSPR token ([CEP-92](https://github.com/casper-network/ceps/blob/master/text/0092-cspr-burn.md). This function is exposed as a `burn` function in the mint contract. +In Casper 2.0 users can burn CSPR token [CEP-92](https://github.com/casper-network/ceps/blob/master/text/0092-cspr-burn.md). This function is exposed as a `burn` function in the mint contract. -### Contract Level Events -In Casper 1.X, there was no native option for emitting contract-level events in the node software. The best option available to developers looking to use this kind of functionality was the [Casper Event Standard (CES)](https://github.com/make-software/casper-event-standard) created by MAKE and Odra. In Casper 2.0, We have provided host side support for the emission of events. Smart contract developers may still opt to use the CES standard, however, the native implementation is recommneded as the go-forward for the contract level events -The CEP-88 refernce implementation provides the template for contract level events [CEP-88](https://github.com/casper-network/ceps/blob/master/text/0088-contract-level-messages.md). CEP-88 establishes a secure, one-way messaging channel between contracts and entities listening to a node's event stream. This standardized method of emitting contract-level events is built into the existing Casper Event Stream, requiring no additional features to Casper's SDKs. +### Contract-Level Events +In Casper 1.X, there was no option for emitting contract-level events in the node software. The best option available to developers looking to use this kind of functionality was the [Casper Event Standard (CES)](https://github.com/make-software/casper-event-standard) created by MAKE and Odra. In Casper 2.0, We have provided host side support for the emission of events. Smart contract developers may still opt to use the CES standard, however, the native implementation is recommended as the go-forward for the contract-level events + +The CEP-88 reference implementation provides the template for contract-level events [CEP-88](https://github.com/casper-network/ceps/blob/master/text/0088-contract-level-messages.md). CEP-88 establishes a secure, one-way messaging channel between contracts and entities listening to a node's event stream. This standardized method of emitting contract-level events is built into the existing Casper Event Stream, requiring no additional features to Casper's SDKs. Messages are passed by the execution engine to the node that sends them out on the event stream after execution is complete and committed. The messages sent out on the event stream contain the identity of the entity that emitted the message, the topic on which the message was emitted, the index of the message within the topic and the actual message payload. The contents of the event itself are *not* stored on-chain, but proofs are stored to allow for verification of events. @@ -93,9 +94,9 @@ Casper v2.0 introduces a number of improvements aimed at removing some limitatio ### Casper Sidecar In Casper 2.0, the existing RPC service has been moved outside of the node software itself. In Casper 1.X, the RPC service existed as an HTTP server which was built into the node software itself. This meant that the RPC server was tightly coupled to the node software, could not be updated without updating the node software, and executed in the same process space as the node. The result of this was that any extension of the RPC surface necessitated a full network upgrade to deliver. -In Casper 2.0, the JSON RPC has been moved to a separate process, known as the [Sidecar](https://docs.casper.network/operators/setup/casper-sidecar/). This step brings a few improvements: - - It allows for better process isolation and makes it easier to run and debug node processes. - - The Sidecar provides a way to surface Contract Level Events, which opens up some interesting possibilities for node interactions. +In Casper 2.0, the JSON RPC has been moved to a separate application, known as the [Sidecar](https://docs.casper.network/operators/setup/casper-sidecar/). This step brings a few improvements: + - It allows for better process isolation and makes it easier to run and debug node instances. + - The Sidecar provides a way to interact with Contract-Level Events produced by node, which opens up some interesting possibilities for node interactions. - The separation of the Sidecar into a new codebase means that enhancements to the RPC API can now be accomplished without changing the node binary, necessitating a network upgrade. ### Binary Port @@ -153,7 +154,7 @@ The effective amount of the hold is reduced linearly over the course of the hold --- ## Deprecations -The `get_state_item` RPC endpoint, while not yet deprecated, will be deprecated in a future release cycle uin favour of the more flexible get_global_state endpoint. This endpoint was initially deprecated, but was left in to the v2.0 release to maintain backwards compatibility while downstream development teams upgrade their code to reflect this change. For more details please see [here](https://github.com/casper-network/condor-info/discussions/2). +The `get_state_item` RPC endpoint is deprecated in favour of the more flexible `get_global_state` endpoint. The deprecated `get_state_item` endpoint will be removed in a future release. Downstream development teams can continue to use it in the interim; however, it is recommended that they upgrade their code to reflect this change before the deprecated endpoint is removed. For more details please see [here](https://github.com/casper-network/condor-info/discussions/2). --- From fee0b5e4d3f1c69dfc86ffa6fa0e8d6aa1f81664 Mon Sep 17 00:00:00 2001 From: Devendran Date: Tue, 29 Apr 2025 20:50:43 +0530 Subject: [PATCH 15/97] Resolve parantheses around CEP-92 --- condor/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/condor/index.md b/condor/index.md index 971d45a96..d58dcb3cf 100644 --- a/condor/index.md +++ b/condor/index.md @@ -53,7 +53,7 @@ A detailed discussion of the Zug consensus may be found in the [Casper documenta In Casper 2.0, we are introducing a change to the execution engine which allows transactors to specify which of many possible VMs they wish to target with their transaction. ### CSPR Burn function -In Casper 2.0 users can burn CSPR token [CEP-92](https://github.com/casper-network/ceps/blob/master/text/0092-cspr-burn.md). This function is exposed as a `burn` function in the mint contract. +In Casper 2.0 users can burn CSPR token ([CEP-92](https://github.com/casper-network/ceps/blob/master/text/0092-cspr-burn.md)). This function is exposed as a `burn` function in the mint contract. ### Contract-Level Events In Casper 1.X, there was no option for emitting contract-level events in the node software. The best option available to developers looking to use this kind of functionality was the [Casper Event Standard (CES)](https://github.com/make-software/casper-event-standard) created by MAKE and Odra. In Casper 2.0, We have provided host side support for the emission of events. Smart contract developers may still opt to use the CES standard, however, the native implementation is recommended as the go-forward for the contract-level events From 73521b63c5daf76d4178548ecd5616dedf9dd72d Mon Sep 17 00:00:00 2001 From: Devendran Date: Wed, 30 Apr 2025 16:27:49 +0530 Subject: [PATCH 16/97] Remove fee-elimination and update disclaimer --- condor/fee-elimination.md | 138 ----- condor/index.md | 2 +- condor/jsonrpc-comp/state_get_balance.md | 2 - condor/local-setup.md | 4 +- config/sidebar.config.js | 18 +- docs/concepts/about.md | 5 +- .../reading-and-writing-to-the-blockchain.md | 2 +- docs/concepts/dictionaries.md | 2 +- .../concepts/economics/dynamic-gas-pricing.md | 6 +- docs/concepts/economics/fee-elimination.md | 93 --- docs/concepts/economics/gas-concepts.md | 2 +- docs/concepts/economics/index.md | 4 +- docs/concepts/economics/runtime.md | 26 +- docs/concepts/glossary/A.md | 2 +- docs/concepts/glossary/D.md | 2 +- docs/concepts/glossary/T.md | 2 +- docs/concepts/serialization/structures.md | 6 +- docs/concepts/serialization/types.md | 6 +- docs/concepts/transactions.md | 4 +- docs/developers/cli/opcode-costs.md | 1 - docs/developers/cli/sending-transactions.md | 7 +- docs/developers/dapps/setup-nctl.md | 2 +- docs/disclaimer.md | 73 ++- docs/index.md | 18 +- docs/operators/index.md | 1 - docs/operators/setup-network/chain-spec.md | 311 ---------- .../operators/setup-network/create-private.md | 562 ------------------ docs/operators/setup-network/genesis.md | 24 - docs/operators/setup-network/index.md | 10 - .../staging-files-for-new-network.md | 176 ------ docs/resources/changelog.md | 7 +- src/pages/condor/addressable-entity.md | 8 +- src/pages/condor/fee-elimination.md | 138 ----- src/pages/condor/hello-blogworld.md | 2 +- src/pages/condor/index.md | 210 +++---- .../condor/jsonrpc-comp/state_get_balance.md | 2 - src/pages/condor/rpc-changes.md | 8 +- src/pages/condor/setting-up-condor-local.md | 266 ++++++--- src/pages/condor/transactions.md | 2 +- src/pages/condor/validator-rewards.md | 2 +- src/pages/condor/zug.md | 2 +- .../developers/cli/opcode-costs.md | 2 - .../operators/setup-network/chain-spec.md | 261 -------- .../operators/setup-network/create-private.md | 547 ----------------- .../operators/setup-network/genesis.md | 24 - .../operators/setup-network/index.md | 10 - .../staging-files-for-new-network.md | 177 ------ .../resources/condor-for-exchanges.md | 107 ---- .../reading-and-writing-to-the-blockchain.md | 2 +- .../version-2.0.0/concepts/dictionaries.md | 2 +- .../concepts/economics/dynamic-gas-pricing.md | 6 +- .../concepts/economics/fee-elimination.md | 93 --- .../concepts/economics/gas-concepts.md | 2 +- .../version-2.0.0/concepts/economics/index.md | 4 +- .../concepts/economics/runtime.md | 28 +- .../version-2.0.0/concepts/glossary/A.md | 2 +- .../version-2.0.0/concepts/glossary/D.md | 2 +- .../version-2.0.0/concepts/glossary/T.md | 2 +- .../concepts/serialization/structures.md | 6 +- .../concepts/serialization/types.md | 6 +- .../version-2.0.0/concepts/transactions.md | 4 +- .../developers/cli/opcode-costs.md | 1 - .../developers/cli/sending-transactions.md | 8 +- .../developers/dapps/setup-nctl.md | 2 +- versioned_docs/version-2.0.0/index.md | 18 +- .../operators/setup-network/chain-spec.md | 311 ---------- .../operators/setup-network/create-private.md | 562 ------------------ .../operators/setup-network/genesis.md | 24 - .../operators/setup-network/index.md | 10 - .../staging-files-for-new-network.md | 176 ------ .../version-2.0.0/resources/changelog.md | 7 +- .../version-1.5.X-sidebars.json | 18 +- .../version-2.0.0-sidebars.json | 21 +- 73 files changed, 453 insertions(+), 4150 deletions(-) delete mode 100644 condor/fee-elimination.md delete mode 100644 docs/concepts/economics/fee-elimination.md delete mode 100644 docs/operators/setup-network/chain-spec.md delete mode 100644 docs/operators/setup-network/create-private.md delete mode 100644 docs/operators/setup-network/genesis.md delete mode 100644 docs/operators/setup-network/index.md delete mode 100644 docs/operators/setup-network/staging-files-for-new-network.md delete mode 100644 src/pages/condor/fee-elimination.md delete mode 100644 versioned_docs/version-1.5.X/operators/setup-network/chain-spec.md delete mode 100644 versioned_docs/version-1.5.X/operators/setup-network/create-private.md delete mode 100644 versioned_docs/version-1.5.X/operators/setup-network/genesis.md delete mode 100644 versioned_docs/version-1.5.X/operators/setup-network/index.md delete mode 100644 versioned_docs/version-1.5.X/operators/setup-network/staging-files-for-new-network.md delete mode 100644 versioned_docs/version-1.5.X/resources/condor-for-exchanges.md delete mode 100644 versioned_docs/version-2.0.0/concepts/economics/fee-elimination.md delete mode 100644 versioned_docs/version-2.0.0/operators/setup-network/chain-spec.md delete mode 100644 versioned_docs/version-2.0.0/operators/setup-network/create-private.md delete mode 100644 versioned_docs/version-2.0.0/operators/setup-network/genesis.md delete mode 100644 versioned_docs/version-2.0.0/operators/setup-network/index.md delete mode 100644 versioned_docs/version-2.0.0/operators/setup-network/staging-files-for-new-network.md diff --git a/condor/fee-elimination.md b/condor/fee-elimination.md deleted file mode 100644 index 65f62ae39..000000000 --- a/condor/fee-elimination.md +++ /dev/null @@ -1,138 +0,0 @@ ---- -title: Fee Elimination in Casper v2.0 -description: A discussion of the Fee Elimination feature in Casper 2.0 -slug: fee-elimination -date: 2024-07-16T22:00 -authors: [ dylanireland, melpadden ] -tags: [v2, features, tokenomics] -hide_table_of_contents: false ---- -# Fee Elimination in Casper 2.0 - -The Casper 2.0 network upgrade introduces new options to the way a Casper Network can be configured to handle gas consumption. Scheduled along with the release of Condor into Mainnet is a change in the configuration of the Casper Network to use a model known as **Fee Elimination** for gas payments. The purpose of this article is to introduce this model, and describe how Fee Elimination will affect the behavior of the Casper Network once Condor is released. - - - -## Concepts -Public distributed blockchain networks that support smart contracts generally employ a concept known as "[gas](https://docs.casper.network/concepts/glossary/G/#gas)", which can be thought of as "the ability to do work on-chain". The problem addressed by this mechanism is that **any finite resource on a publicly accessible computer network must be rate-limited**, because a resource made available without limit is a denial of service attack vector. - -Gas is acquired in finite quantities and used to meter and limit resource consumption by individual transactors. A transactor's available gas is consumed by their on-chain usage of computation, data storage, and possibly other chain-specific resources. The public Casper Network and its testnet have used such a gas model since their geneses. - -## Payment, Gas Price, Fees -On Casper 1.x, every transaction is subject to gas consumption. The transactor must specify an amount of token that is converted to gas and used to pay for execution. All gas consumed in each block is allotted to the [proposer](#proposer) of that block in the form of transaction [fees](#fees). The model also includes tables to allow calculation of gas costs, and support for some portion of unconsumed gas to be refunded to transactors. We refer to these concepts using the following terms: - -* **Gas Limit**: An amount of gas, specified by the transactor, at which to cancel a transaction. -* **Gas Price**: The network gas price; the ratio between the cost of 1 unit of gas and 1 mote. -* **Gas Cost**: The amount of gas needed to pay for execution of a transaction. -* **Payment**: The amount of token specified by the transactor to pay for the execution of a transaction. -* **Refund**: All or a portion of the remaining token after gas is purchased for execution. - -> -> The Casper node software supports a number of configurable options which govern how gas may be calculated for a given transaction. A discussion of these is outside the scope of this article. This article is concerned with how these gas costs are dealt with, once calculated. Gas cost options will be the subject of another article. - -## Fee Elimination - -> __Fee Elimination is the strategy of placing temporary holds on transactor balances corresponding to their incurred gas costs, instead of taking those costs from their on-chain balances__. - -Under 1.x, transactors must pay for gas directly from their purse balances. With Fee Elimination on Casper 2.0, a hold is placed on the calculated **Gas Cost** for a configurable period of time known as the **Hold Period**. Fees are therefore not forfeited by transactors, and funds are not spent to execute transactions. - -### Holds - -A hold may be thought of as a temporary freeze on some portion of the funds in an account. The funds never leave the purse upon which the hold is placed, but the owner of those funds may not spend them as long as the hold is in effect, and the funds held are not counted towards the available balance of that purse. - -### Hold Release - -The Casper Node 2.0 software currently supports two hold release models: **Accrued** and **Amortized**. - -> -> The Casper 2.0 node architecture allows for any time-based function to be developed and used to calculate hold releases. However, for simplicity, this article will deal with the two currently available options. - -#### Accrued -100% of the hold is held until the hold expires. At any given point in the duration of the hold, the effective amount of the hold is 100%. At expiry, all of the funds are again made available to the transactor. - -#### Amortized -The effective amount of the hold is reduced linearly over the course of the hold duration. At any point in the duration of the hold, the effective hold *amount* is proportional to the percentage of the hold *duration* that remains before expiry. - -For example, if: -- A hold of 180 CSPR is placed on an purse which holds 1000 CSPR -- The configured hold period is 90 days -- The hold release model is configured to use amortization - -Then, 9 days after the hold was placed, the current effective amount of the hold may be calculated by - - $\frac{\text{Hold Duration} - \text{Time Elapsed}}{\text{Hold Duration}} = \frac{90 - 9}{90} = 0.9$ - - Multiplied by the hold amount: $180 \times 0.9 = 162$ - -The effective balance in that purse, at that point in time, is $1000 - 162 = 838 \ \text{CSPR}$ - -Over the course of the hold's duration, this calculation gives us: -| Hold Amount | Hold Period | Time Elapsed | Effective Hold | -| --- | --- | --- | --- | -| 180 | 90 | 1 | 178 | -| 180 | 90 | 9 | 162 | -| 180 | 90 | 45 | 90 | -| 180 | 90 | 89 | 2 | - -### More about Gas holds -The duration of gas holds is defined [here](https://github.com/casper-network/casper-node/blob/feat-2.0/resources/production/chainspec.toml#L166) in the [casper-node](https://github.com/casper-network/casper-node) chainspec: - -```toml -# If fee_handling is set to 'no_fee', the system places a balance hold on the payer -# equal to the value the fee would have been. Such balance holds expire after a time -# interval has elapsed. This setting controls how long that interval is. The available -# balance of a purse equals its total balance minus the held amount(s) of non-expired -# holds (see gas_hold_balance_handling setting for details of how that is calculated). -# -# For instance, if gas_hold_interval is 24 hours and 100 gas is used from a purse, -# a hold for 100 is placed on that purse and is considered when calculating total balance -# for 24 hours starting from the block_time when the hold was placed. -gas_hold_interval = '24 hours' -``` - - -### Preventing Exploitation -The ultimate goal of any gas mechanism is to prevent exploitation of a network's resources. Aside from incentivizing validators, there is no fundamental reason to charge users for making transactions if their honesty can be guaranteed. By designing a system that disincentivizes wasteful transactions without charging a fee, resistance to exploitation can be maintained while allowing users to transact freely. - -However, any gas mechanism that doesn't charge users could be vulnerable to denial-of-service attacks. Provided a large enough bankroll, a user could deploy enough transactions to slow the network for the amount of time needed for his or her previous gas payments to unlock, and use these unlocked funds to deploy more transactions, and thus repeat the process ad infinitum. In this way, one could theoretically deploy infinite transactions, cycling through their locked and unlocked balances. - -Attacking the network in this way is a challenge of economic feasibility, much like many other aspects of blockchains. To prevent an attack like this from taking place, it must be made prohibitively expensive to mount such an attack, with little to no incentive to the attacker. Casper's approach involves using a long locking period, combined with 16 second blocktimes. The Casper 2.0 mainnet is slated to roll out with a 30 day locking period, but if increased, the cost to attack would scale linearly. - -Considering a token locking period of 30 days and the **Accrued** unlocking schedule, purchasing just 1% of the total block space of each block would cost: - -$\frac{T}{B} \cdot \frac{G}{100} = 5,346,000 \, \text{CSPR}$ - -Where: - -* `T` = 30 day locking period -* `B` = 16 second blocktime -* `G` = 3300 CSPR block gas limit - -If this proves to be too cheap, the locking period can be extended or the block gas limit increased. - -#### Opportunity Cost -In addition to the necessity to maintain large amounts of CSPR token in order to facilitate a DoS attack as laid out above, any prospective attacker would also incur the opportunity cost of being unable to use their CSPR for the duration of the hold period. Simply put, while their CSPR is locked up attacking the network, it cannot be used to earn rewards by staking. Given the amount of CSPR necessarily involved, and assuming any non-trivial potential annualized return on staking CSPR tokens, the ratio of opportunity cost of mounting such an attack versus the incentive to do so swiftly becomes prohibitively high. - -### Incentivizing Validators - -The Casper Network, like any truly decentralized blockchain, allows nodes to act in their greatest economic interest when it comes to validating transactions. The purpose of this is to incentivize validators as much as possible, encouraging more to come online. Part of the income a validator earns comes from fees paid by a deployer, which entices validators to pick up their transactions. When no fee is paid by the deployer at all, however, another incentive must be provided to the validators. - -Casper's solution is quite simple, but requires understanding how validators are selected and compensated. On Casper Networks, 100 validators are weightily selected to validate all the blocks within the current "[era](https://docs.casper.network/concepts/glossary/E/#era)", which advances every 2 hours. At the end of each era, validator rewards are calculated, put into a pot, and distributed to validators based on the amount of token staked by each. Additionally, a "validator credit" is added to validators who propose populated blocks, proportional to the size of the blocks they propose. This validator credit is then applied to the payout scheme, awarding more of the pot to the hardest-working nodes. Additionally, the validator credit is considered as additional staking weight for the next era when the next [booking block](https://docs.casper.network/concepts/glossary/B/#booking-block) appears. - -## Looking Forward - -By introducing Fee Elimination to the Casper Network, we hope to make transacting with the blockchain more accessible and less financially cumbersome. With this new model, interacting with smart contracts can become effectively free for users, inviting larger audiences to participate in new and exciting protocols. - -As the model is rolled out to Casper's mainnet and testnet, economists and engineers will study its effects on Casper's transaction economy. The data observed will be used to devise proposals and improvements, need they be implemented. - ---- -### Further Reading/Terms - -#### Proposer -A validator proposing a block to the network for execution -[Consensus](https://docs.casper.network/concepts/economics/consensus/) -[Validator](https://docs.casper.network/concepts/glossary/V/#validator) - -#### Fees -A portion of a transaction's gas costs given over to the proposer of the block containing that transaction. -[Gas Concepts](https://docs.casper.network/concepts/economics/gas-concepts/) -[Runtime Economics](https://docs.casper.network/runtime/) -[Validator Rewards](https://docs.casper.network/concepts/glossary/R/#reward) diff --git a/condor/index.md b/condor/index.md index d58dcb3cf..15d3ee3c3 100644 --- a/condor/index.md +++ b/condor/index.md @@ -139,7 +139,7 @@ Among the improvements in VM 2.0 are: Subject to a governance vote by the Casper Network validators on behalf of their delegators, configuration changes in a future minor release of Casper 2.0 will activate a gas fee model known as **Fee Elimination**. -[Fee Elimination](/condor/fee-elimination.md) is the strategy of placing temporary holds on transactor balances corresponding to their incurred gas costs, instead of taking those costs from their on-chain balances. +Fee Elimination is the strategy of placing temporary holds on transactor balances corresponding to their incurred gas costs, instead of taking those costs from their on-chain balances. Under 1.x, transactors must pay for gas directly from their purse balances. With Fee Elimination on Casper 2.0, a hold is placed on the calculated **Gas Cost** for a configurable period of time known as the **Hold Period**. Fees are therefore not forfeited by transactors, and funds are not spent to execute transactions. The scheduled release of funds placed under a hold in this way is governed by the configuration of the chainspec. There are two options: diff --git a/condor/jsonrpc-comp/state_get_balance.md b/condor/jsonrpc-comp/state_get_balance.md index dda5f93c2..c507ecf82 100644 --- a/condor/jsonrpc-comp/state_get_balance.md +++ b/condor/jsonrpc-comp/state_get_balance.md @@ -1,8 +1,6 @@ ## state_get_balance The [state_get_balance](./rpc-2.0/state_get_balance.json.md) method does not have any changes to parameters or return types. However, it is important to note that the balance reflected in the return value now reflects all active holds on that balance. -[More on balances, and fee elimination in Casper 2.0](../fee-elimination.md) - diff --git a/condor/local-setup.md b/condor/local-setup.md index 5d0d99298..622e0578e 100644 --- a/condor/local-setup.md +++ b/condor/local-setup.md @@ -1,9 +1,9 @@ --- title: Setting Up a Local Casper v2.0 Network for Development -description: How to set up a local Casper v2.0 Network for Development using CCTL and the Rust Casper client. +description: How to set up a local Casper v2.0 Network for Development using NCTL and the Rust Casper client. slug: local-setup date: 2024-07-16T18:00 -authors: [ sczembor ] +authors: [ sczembor,jiu-hong ] tags: [v2, setup] hide_table_of_contents: false --- diff --git a/config/sidebar.config.js b/config/sidebar.config.js index 3ddd8847f..558c007d1 100644 --- a/config/sidebar.config.js +++ b/config/sidebar.config.js @@ -273,23 +273,7 @@ module.exports = { "operators/becoming-a-validator/recovering", "operators/becoming-a-validator/inactive-vs-faulty", ], - }, - { - type: "category", - label: "Private Networks", - collapsible: true, - collapsed: true, - link: { - type: "doc", - id: "operators/setup-network/index", - }, - items: [ - "operators/setup-network/genesis", - "operators/setup-network/chain-spec", - "operators/setup-network/create-private", - "operators/setup-network/staging-files-for-new-network", - ], - }, + }, { type: "category", label: "Maintenance", diff --git a/docs/concepts/about.md b/docs/concepts/about.md index e598e2537..9e77b83ad 100644 --- a/docs/concepts/about.md +++ b/docs/concepts/about.md @@ -4,7 +4,7 @@ title: What is Casper? ## What is Casper? {#what-is-casper} -Casper is a [Turing-complete](../concepts/glossary/T.md#turing-complete-blockchain) smart-contracting platform, backed by a Proof-of-Stake (PoS) consensus algorithm and WebAssembly (Wasm). The network is a [permissionless](../concepts/glossary/P.md#permissionless), decentralized, public blockchain. +Casper is a pseudo-[Turing-complete](../concepts/glossary/T.md#turing-complete-blockchain) smart-contracting platform, backed by a Proof-of-Stake (PoS) consensus algorithm and WebAssembly (Wasm). The network is a [permissionless](../concepts/glossary/P.md#permissionless), decentralized, public blockchain. The network's consensus protocol is called [Zug](./design/zug.md), and it has several benefits over classic Byzantine Fault Tolerant (BFT) consensus protocols. First, Zug allows networks to reach higher thresholds of _finality_, meaning that every block gets finalized within seconds, as fast as the network connections allow. Second, the protocol achieves flexibility by expressing block finality in ways not possible in BFT models. This protocol is built on the following research: [From Weakly-terminating Binary Agreement and Reliable Broadcast to Atomic Broadcast](https://arxiv.org/abs/2205.06314). @@ -20,4 +20,5 @@ To understand the design further, read [this article](../concepts/design/casper- ## Disclaimer -Read the [Legal Disclaimer](../disclaimer.md) regarding this CasperLabs Tech Spec (this "Whitepaper"). +Read the [Legal Disclaimer](../disclaimer.md) regarding this documentation. Use of this documentation and the Casper network is subject to this disclaimer. + diff --git a/docs/concepts/design/reading-and-writing-to-the-blockchain.md b/docs/concepts/design/reading-and-writing-to-the-blockchain.md index 2d1994b3a..e776ef875 100644 --- a/docs/concepts/design/reading-and-writing-to-the-blockchain.md +++ b/docs/concepts/design/reading-and-writing-to-the-blockchain.md @@ -8,7 +8,7 @@ Casper features several means of reading and writing data to global state, depen :::note -Casper's Condor release shifts `NamedKeys` to a top-level key type, making them more viable for larger data sets. +Casper 2.0 release shifts `NamedKeys` to a top-level key type, making them more viable for larger data sets. ::: diff --git a/docs/concepts/dictionaries.md b/docs/concepts/dictionaries.md index 519eaf2b1..39a79c7f6 100644 --- a/docs/concepts/dictionaries.md +++ b/docs/concepts/dictionaries.md @@ -9,7 +9,7 @@ Individual value changes to data stored within the NamedKeys would require deser As a solution to this problem, the Casper platform provides the `Dictionary` feature, which allows users a more efficient and scalable means to aggregate data over time. -Casper's Condor release shifts `NamedKeys` to a top-level key, removing this restriction and making them viable for data storage. +Casper 2.0 release shifts `NamedKeys` to a top-level key, removing this restriction and making them viable for data storage. ## Seed URefs diff --git a/docs/concepts/economics/dynamic-gas-pricing.md b/docs/concepts/economics/dynamic-gas-pricing.md index 9bf5409ad..33c1fa37a 100644 --- a/docs/concepts/economics/dynamic-gas-pricing.md +++ b/docs/concepts/economics/dynamic-gas-pricing.md @@ -4,7 +4,7 @@ title: Dynamic Gas Pricing # Dynamic Gas Pricing on Mainnet -The Condor release introduced a configurable capability to calculate dynamic gas prices based on block vacancy (or consumption). The network chainspec configures the `vacancy`, as shown below, which refers to this feature. This capability prevents malicious actors from filling the blocks with useless transactions and ensures network integrity. +The Casper 2.0 release introduced a configurable capability to calculate dynamic gas prices based on block vacancy (or consumption). The network chainspec configures the `vacancy`, as shown below, which refers to this feature. This capability prevents malicious actors from filling the blocks with useless transactions and ensures network integrity. When dynamic gas pricing is enabled, a calculation runs at the end of each era to average block usage within that era. This calculation determines the gas price the network will use for the next era. If overall consumption rises above a threshold, the gas price increases by 1. If consumption falls below a threshold, the gas price decreases by 1. The gas price remains the same if overall consumption remains within those thresholds. The gas price will not go up or down by more than 1 in a given era and will not go above the maximum or below the minimum threshold. @@ -16,9 +16,9 @@ The gas price is recorded in the block header and is easily discoverable for cur - `min_gas_price` - The minimum gas price -### Mainnet Condor Configurations +### Mainnet Casper 2.0 Configurations -These are the block vacancy (dynamic gas pricing) settings for the Condor release on Mainnet. Before Condor, the gas price was 1, meaning 1 unit of gas cost 1 mote. With Condor, the multiple is configured to adjust between 1 and 3. +These are the block vacancy (dynamic gas pricing) settings for the Casper 2.0 release on Mainnet. Before Casper 2.0, the gas price was 1, meaning 1 unit of gas cost 1 mote. With Casper 2.0, the multiple is configured to adjust between 1 and 3. diff --git a/docs/concepts/economics/fee-elimination.md b/docs/concepts/economics/fee-elimination.md deleted file mode 100644 index e651941c4..000000000 --- a/docs/concepts/economics/fee-elimination.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -title: Fee Elimination ---- - -# Fee Elimination on Mainnet - -Casper networks support configurable fee, refund, and pricing strategies. The Mainnet Condor release has enabled "fee elimination", also known as the "no fee mode", or "no fee transactions" to reduce operational costs for developers. This configurable feature places balance holds on a user's purse rather than taking fees for sending transactions to the network. This behavior benefits parties who send periodic transactions, as their gas costs are locked for some time and then either released all at once or linearly over time, depending on the chainspec settings. Recall that the network chainspec contains all the configuration choices on which every node must agree. - -Instead of paying for gas to execute transactions, the `no_fee` chainspec configuration instructs the network to place a balance hold on the paying purse without transferring tokens from the purse: `fee_handling = { type = 'no_fee'}`. The portion of a purse balance that is locked is not available to transfer or spend until it is released; it is marked with a timestamp equal to the block time. In the "no fee" mode, the available balance of a purse equals its actual total balance minus all non-expired balance holds on that purse. The configurable `gas_hold_interval` determines how long a balance hold remains in effect. The on-chain logic calculates the correct values for total balance and available balance. The [query_balance_details](../../developers/json-rpc/json-rpc-informational.md#query_balance_details) RPC endpoint provides details on available balances and hold records. - -:::note - -A processing hold is not the same as a gas (or balance) hold. The processing hold is a temporary hold that prevents double spend. For example, if you want to do a transfer, you also need to cover the cost of the transfer. - -::: - -## Chainspec Configurations - -The following [chainspec configurations](../../operators/setup-network/chain-spec.md) manage this feature: - -- `fee_handling` - Defines how fees are handled. To enable the "no fee" mode, set it to `{ type = 'no_fee'}`. -- `refund_handling` Defines how refunds of the unused portion of payment amounts are calculated and handled. For this setting to work with the "no fee" mode, set it to `{ type = 'no_refund'}`. If no fees are transferred from the paying purse, no refunds need to be paid out. -- `pricing_handling` - Defines how pricing is handled. For this setting to work with the `no_fee` mode, set it to `{ type = 'fixed'}`, which means that costs are fixed per the cost table, and senders do not specify how much they pay. -- `validator_credit_cap` - The validator credit cannot exceed this percentage of their total stake. -- `gas_hold_balance_handling - Defines how gas holds affect available balance calculations. Valid options are 'accrued' (the sum of the full value of all non-expired holds) and 'amortized' (the sum of each hold is amortized over the time remaining until expiry). -- `gas_hold_interval` - Defines how long gas holds last. - -### Mainnet Condor Configurations - -These are the fee elimination settings for the Condor release on Mainnet: - - -```toml -# Defines how refunds of the unused portion of payment amounts are calculated and handled. -# -# Valid options are: -# 'refund': a ratio of the unspent token is returned to the spender. -# 'burn': a ratio of the unspent token is burned. -# 'no_refund': no refunds are paid out; this is functionally equivalent to refund with 0% ratio. -# This causes excess payment amounts to be sent to either a -# pre-defined purse, or back to the sender. The refunded amount is calculated as the given ratio of the payment amount -# minus the execution costs. -refund_handling = { type = 'no_refund' } -# Defines how fees are handled. -# -# Valid options are: -# 'no_fee': fees are eliminated. -# 'pay_to_proposer': fees are paid to the block proposer -# 'accumulate': fees are accumulated in a special purse and distributed at the end of each era evenly among all -# administrator accounts -# 'burn': fees are burned -fee_handling = { type = 'no_fee' } -# If a validator would recieve a validator credit, it cannot exceed this percentage of their total stake. -validator_credit_cap = [1, 5] -# Defines how pricing is handled. -# -# Valid options are: -# 'classic': senders of transaction self-specify how much they pay. -# 'fixed': costs are fixed, per the cost table -# 'reserved': prepaid transaction (currently not supported) -pricing_handling = { type = 'fixed' } - -# Defines how gas holds affect available balance calculations. -# -# Valid options are: -# 'accrued': sum of full value of all non-expired holds. -# 'amortized': sum of each hold is amortized over the time remaining until expiry. -# -# For instance, if 12 hours remained on a gas hold with a 24-hour `gas_hold_interval`, -# with accrued, the full hold amount would be applied -# with amortized, half the hold amount would be applied -gas_hold_balance_handling = { type = 'accrued' } -# Defines how long gas holds last. -# -# If fee_handling is set to 'no_fee', the system places a balance hold on the payer -# equal to the value the fee would have been. Such balance holds expire after a time -# interval has elapsed. This setting controls how long that interval is. The available -# balance of a purse equals its total balance minus the held amount(s) of non-expired -# holds (see gas_hold_balance_handling setting for details of how that is calculated). -# -# For instance, if gas_hold_interval is 24 hours and 100 gas is used from a purse, -# a hold for 100 is placed on that purse and is considered when calculating total balance -# for 24 hours starting from the block_time when the hold was placed. -gas_hold_interval = '24 hours' -``` - -## Computational and Storage Costs - -Despite the introduction of fee elimination, the network continues to track [computational cost](../design/casper-design.md#measuring-computational-work-execution-semantics-gas) based on opcodes as defined in the chainspec, thus retaining the [gas pricing mechanism](./gas-concepts.md). Opcodes enable Casper nodes to agree on the computational cost of transactions, commonly known as gas. This mechanism is a solution to the halting problem in a distributed network, and it abstracts the computational cost in a way that is deterministically consistent across multiple machines. - -Storage costs are also tracked and calculated using gas. Data written to global state is recorded forever and has a cost; therefore, the network charges for the Wasm that stores data in global state. - -This feature complements the [dynamic gas pricing](./dynamic-gas-pricing.md) model introduced and configured to scale gas costs based on network utilization. diff --git a/docs/concepts/economics/gas-concepts.md b/docs/concepts/economics/gas-concepts.md index 283511696..3383662ba 100644 --- a/docs/concepts/economics/gas-concepts.md +++ b/docs/concepts/economics/gas-concepts.md @@ -10,7 +10,7 @@ title: Gas Cost Gas is a conceptual measure of resources used while executing transactions on the blockchain. Gas cost is the amount of gas consumed during the processing cycles that execute a transaction on the network. It correlates directly with the amount of computer processing a validator needs to provide to execute a transaction. -Gas fees are consumed on the network irrespective of whether a transaction was successful or not. Even when a transaction fails, the network measures [computational work as gas](../design/casper-design.md#measuring-computational-work-execution-semantics-gas) because it consumes resources and space on the block as the validator attempts to execute it. Depending on how the network was configured, the transaction fee may or may not be refunded, or a hold may placed on the paying purse. See [fee elimination](./fee-elimination.md) for more details. +Gas fees are consumed on the network irrespective of whether a transaction was successful or not. Even when a transaction fails, the network measures [computational work as gas](../design/casper-design.md#measuring-computational-work-execution-semantics-gas) because it consumes resources and space on the block as the validator attempts to execute it. Depending on how the network was configured, the transaction fee may or may not be refunded, or a hold may placed on the paying purse. ## How is gas cost determined? diff --git a/docs/concepts/economics/index.md b/docs/concepts/economics/index.md index 7bc7d3df7..b2c82ee78 100644 --- a/docs/concepts/economics/index.md +++ b/docs/concepts/economics/index.md @@ -45,7 +45,7 @@ _Users_ execute session and contract code using the platform's computational res ### Incentives (runtime layer) {#incentives-runtime-layer} -The Casper node software can be configured to support various fee, refund, and cost-handling strategies. The Condor release on Mainnet has enabled a [fee elimination](./fee-elimination.md) model by default, setting the `no_fee`,`no_refund`, and `fixed` pricing configurations in the network's chainspec. +The Casper node software can be configured to support various fee, refund, and cost-handling strategies. Subject to governance voting, a future release(after Casper 2.0 launch) will enable fee elimination model by default, setting the `no_fee`,`no_refund`, and `fixed` pricing configurations in the network's chainspec. The `no_fee` mode means the token is put on hold instead of being taken from the payer. The hold interval is configured in the chainspec. The hold release mechanism is based on the "accrued" or "amortized" settings in the chainspec. Accrued holds are released after a certain amount of time has passed. Amortized holds are released using a linear schedule over a specified period. @@ -55,7 +55,7 @@ Fixed pricing means the gas costs are determined using a cost table, and transac When fees are eliminated, the block proposer receives validator credits instead of transaction fees. These credits contribute to the validator's total weight, determining their chances of winning a slot in the next era. Validators get rewards for proposing a block and creating and publishing finality signatures. In essence, gas/balance holds ensure that the network still compensates validators for their computations. -The fee elimination model is different than the refund model introduced on Mainnet with release 1.5.6 and has replaced the refund behavior. Since all these behaviors are configurable, [private networks](../../operators/setup-network/create-private.md) can set their fee, refund, and pricing strategies. +The fee elimination model will be different from the refund model introduced on Mainnet with release 1.5.6. Since all these behaviors are configurable, [private networks](../../operators/setup-network/create-private.md) can set their fee, refund, and pricing strategies. ## Ecosystem {#ecosystem} diff --git a/docs/concepts/economics/runtime.md b/docs/concepts/economics/runtime.md index 51a931da4..02c230de2 100644 --- a/docs/concepts/economics/runtime.md +++ b/docs/concepts/economics/runtime.md @@ -5,9 +5,8 @@ slug: /runtime # Runtime Economics -The economics of the runtime layer should incentivize efficient allocation of computational resources, primarily CPU time, to users. The Condor release has introduced several new economic features: +The economics of the runtime layer should incentivize efficient allocation of computational resources, primarily CPU time, to users. The Casper 2.0 release has introduced several new economic features: -- A new mode of paying for computation in Mainnet, where tokens previously assessed as fees are now held for a predetermined period. Held tokens become available to users at the expiry of a predetermined time, or on a linear schedule over a specified period. Note: Increasing the duration of holds reduces the long-run equilibrium average available CSPR balance for an attacker. See [Fee Elimination](./fee-elimination.md) for more details. - A form of [dynamic pricing](#dynamic-gas-pricing) that increments or decrements the gas price in motes for a new era depending on blockchain utilization in the previous era. - Blocks are structured into [lanes](#lanes-lanes) that can only hold a particular number of transactions of specified types. @@ -47,7 +46,7 @@ There are several platform parameters that delineate the sets of transactions th - The block size limit imposes an absolute ceiling on the total byte size of included transactions. - Individual transaction size limits are also enforced. -These are the lane configuration settings for the Condor release on Mainnet: +These are the lane configuration settings for the Casper 2.0 release on Mainnet: ```toml @@ -62,16 +61,21 @@ These are the lane configuration settings for the Condor release on Mainnet: # Note: For the given mainnet implementation we specially reserve the label 2 for install and upgrades and # the lane must be present and defined. # Different casper networks may not impose such a restriction. -# [1] -> Max transaction size in bytes for a given transaction in a certain lane +# [1] -> Max serialized length of the entire transaction in bytes for a given transaction in a certain lane # [2] -> Max args length size in bytes for a given transaction in a certain lane -# [3] -> Transaction gas limit size in bytes for a given transaction in a certain lane +# [3] -> Transaction gas limit for a given transaction in a certain lane # [4] -> The maximum number of transactions the lane can contain -native_mint_lane = [0, 1024, 1024, 65_000_000_000, 650] -native_auction_lane = [1, 2048, 2048, 362_500_000_000, 145] -wasm_lanes = [[2, 1_048_576, 2048, 1_000_000_000_000, 1], [3, 344_064, 1024, 500_000_000_000, 3], [4, 172_032, 1024, 50_000_000_000, 7], [5, 12_288, 512, 1_500_000_000, 15]] +native_mint_lane = [0, 2048, 1024, 100_000_000, 650] +native_auction_lane = [1, 3096, 2048, 2_500_000_000, 650] +install_upgrade_lane = [2, 750_000, 2048, 1_000_000_000_000, 1] +wasm_lanes = [ + [3, 750_000, 2048, 1_000_000_000_000, 1], + [4, 131_072, 1024, 100_000_000_000, 2], + [5, 65_536, 512, 5_000_000_000, 80] +] ``` -These are the block gas and size limits for the Condor release on Mainnet: +These are the block gas and size limits for the Casper 2.0 release on Mainnet: ```toml @@ -87,6 +91,4 @@ block_gas_limit = 3_300_000_000_000 A [dynamic gas pricing](./dynamic-gas-pricing.md) system assigns the gas price based on block vacancy (or consumption), preventing malicious actors from flooding the network with useless transactions and ensuring network integrity. Dynamic gas pricing acts as a supply and demand-based check on the cost of network usage. If usage is low, the price multiple drifts down over time, incentivizing casual usage. If usage is high, the price multiple climbs up, incentivizing prioritized usage. Dynamic gas pricing also protects against long-range consumption attacks. An attacker attempting to fill blocks to deny usage drives the price up, which requires them to have increasing amounts of tokens available to cover rising gas costs to maintain their attack. -## Eliminating Gas Fees {#gas-fees} - -See [Gas](./gas-concepts.md) and [Fee Elimination](./fee-elimination.md) for more details. +See [Gas](./gas-concepts.md) for more details. diff --git a/docs/concepts/glossary/A.md b/docs/concepts/glossary/A.md index 983856a6a..9dfc6fd2f 100644 --- a/docs/concepts/glossary/A.md +++ b/docs/concepts/glossary/A.md @@ -8,7 +8,7 @@ ## Account {#account} -An Account is a structure that represents a user on a Casper network. Information on creating an account can be found [here](../design/casper-design.md#accounts-head). Casper's Condor release introduces the concept of an [addressable entity](#addressable-entity), which contains an account entity type that supersedes legacy accounts. +An Account is a structure that represents a user on a Casper network. Information on creating an account can be found [here](../design/casper-design.md#accounts-head). Casper 2.0 release introduces the concept of an [addressable entity](#addressable-entity), which contains an account entity type that supersedes legacy accounts. ## Account Hash {#account-hash} diff --git a/docs/concepts/glossary/D.md b/docs/concepts/glossary/D.md index e3f9f1125..3a62db6f8 100644 --- a/docs/concepts/glossary/D.md +++ b/docs/concepts/glossary/D.md @@ -22,7 +22,7 @@ Delegators are users who participate in the platform's security by delegating th Deploys are units of work when executed cause global state to be altered. Deploys can contain Wasm to be executed and/or Wasm to be stored on chain. Among many examples, Deploys can transfer tokens from one Account's purse to another, reward node validation, or execute Wasm on the network. -Casper's Condor release introduces the [Transaction](./T.md#transaction). Legacy deploys are a subset of the new transaction architecture and, in most cases, will continue to function as expected. +Casper 2.0 release introduces the [Transaction](./T.md#transaction). Legacy deploys are a subset of the new transaction architecture and, in most cases, will continue to function as expected. All deploys on a Casper network can be broadly categorized as some unit of work that, when executed and committed, affects change to the [global state](./G.md#global-state). diff --git a/docs/concepts/glossary/T.md b/docs/concepts/glossary/T.md index 495f87c9f..53e580ac8 100644 --- a/docs/concepts/glossary/T.md +++ b/docs/concepts/glossary/T.md @@ -12,7 +12,7 @@ A type of cryptocurrency that represents an asset. See [CSPR](./C.md#cspr). ## Transaction {#transaction} -Transactions are a unit of work sent by a client to the network, which when executed can cause global state to be altered. They were introduced with Casper's Condor release and supersede the concept of a [Deploy](./D.md#deploy). Transactions offer more efficient means of interacting with a Casper network, but legacy deploys will continue to function, in most cases. More information on transactions can be found [here](../transactions.md). +Transactions are a unit of work sent by a client to the network, which when executed can cause global state to be altered. They were introduced with Casper 2.0 release and supersede the concept of a [Deploy](./D.md#deploy). Transactions offer more efficient means of interacting with a Casper network, but legacy deploys will continue to function, in most cases. More information on transactions can be found [here](../transactions.md). ## Turing-complete blockchain {#turing-complete-blockchain} diff --git a/docs/concepts/serialization/structures.md b/docs/concepts/serialization/structures.md index c3c018c2c..dbd9f0f0a 100644 --- a/docs/concepts/serialization/structures.md +++ b/docs/concepts/serialization/structures.md @@ -2,7 +2,7 @@ ## Account {#serialization-standard-account} -An Account is a structure that represented a user on a legacy Casper network. Alongside the Condor protocol release, `Accounts` were replaced with `AddressableEntities` of the type `Account`. The account structure consists of the following fields: +An Account is a structure that represented a user on a legacy Casper network. Alongside the Casper 2.0 protocol release, `Accounts` were replaced with `AddressableEntities` of the type `Account`. The account structure consists of the following fields: - [`account_hash`](./types.md#account-hash) @@ -55,7 +55,7 @@ A block is structurally defined as follows: Further, a block may consist of one of the following types: -- `Version1`: A legacy block created prior to the Condor upgrade. +- `Version1`: A legacy block created prior to the Casper 2.0 upgrade. - `Version2`: A modern block. @@ -116,7 +116,7 @@ Note that `EraEndV2` is an optional field. Thus the above scheme only applies if ### BlockBodyV1 {#blockbodyV1} -The body portion of a block, prior to the Condor upgrade, is structurally defined as: +The body portion of a block, prior to the Casper 2.0 upgrade, is structurally defined as: - `proposer`: The PublicKey which proposed this block. - `deploy_hashes`: Is a vector of hex-encoded hashes identifying Deploys included in this block. diff --git a/docs/concepts/serialization/types.md b/docs/concepts/serialization/types.md index 37babce96..ec010403b 100644 --- a/docs/concepts/serialization/types.md +++ b/docs/concepts/serialization/types.md @@ -166,7 +166,7 @@ There are two possible versions for `BlockSignatures`, with a prefixed `u8` tag ### BlockSignaturesV1 {#block-signatures-v1} -`BlockSignaturesV1` is a legacy version of `BlockSignatures` that applies to blocks created before the Condor release. The structure is as follows: +`BlockSignaturesV1` is a legacy version of `BlockSignatures` that applies to blocks created before the Casper 2.0 release. The structure is as follows: - [`block_hash`](./structures.md#block-hash): The block hash of the associated block. It serializes as the byte representation of the hash itself. @@ -176,7 +176,7 @@ There are two possible versions for `BlockSignatures`, with a prefixed `u8` tag ### BlockSignaturesV2 {#block-signatures-v2} -`BlockSignaturesV2` is the current version of `BlockSignatures` that applies to blocks created after the Condor release. The structure is as follows: +`BlockSignaturesV2` is the current version of `BlockSignatures` that applies to blocks created after the Casper 2.0 release. The structure is as follows: - [`block_hash`](./structures.md#block-hash): The block hash of the associated block. It serializes as the byte representation of the hash itself. @@ -226,7 +226,7 @@ The type of byte code, serialized as a single `u8` value. A `0` indicates empty ## CallStackElement {#call-stack-element} -`CallStackElement` is a legacy `enum` created pre-Condor release that represents the origin of a sub-call in a call stack. It begins with a `u8` tag that describes the type of caller as follows: +`CallStackElement` is a legacy `enum` created pre-Casper 2.0 release that represents the origin of a sub-call in a call stack. It begins with a `u8` tag that describes the type of caller as follows: - `Session`: Session code, which serializes as a `u8` tag of 0 followed by the [`account_hash`](#account-hash) of the calling account. diff --git a/docs/concepts/transactions.md b/docs/concepts/transactions.md index 764a5077a..e691674da 100644 --- a/docs/concepts/transactions.md +++ b/docs/concepts/transactions.md @@ -4,9 +4,9 @@ title: Transactions # Transactions -Transactions are [a new structure](../developers/json-rpc/types_chain.md#transaction) that allows users to enact changes in global state on a Casper network. Introduced with the Condor release, Transactions supersede legacy [Deploys](./glossary/D.md#deploy), allowing for a variety of Wasm-less interactions with the blockchain. These new interactions are more efficient than Deploys and provide a level of convenience that was not previously available. +Transactions are [a new structure](../developers/json-rpc/types_chain.md#transaction) that allows users to enact changes in global state on a Casper network. Introduced with the Casper 2.0 release, Transactions supersede legacy [Deploys](./glossary/D.md#deploy), allowing for a variety of Wasm-less interactions with the blockchain. These new interactions are more efficient than Deploys and provide a level of convenience that was not previously available. -The existing Deploy model is deprecated as of Condor, and support will be removed entirely in a future major release. However, Condor will continue to accept valid Deploys and will attempt to execute them. Most existing deploys that function today will continue to do so. However, deploys that depend on a data type or FFI function that has been altered or removed will fail to execute. +The existing Deploy model is deprecated as of Casper 2.0, and support will be removed entirely in a future major release. However, Casper 2.0 will continue to accept valid Deploys and will attempt to execute them. Most existing deploys that function today will continue to do so. However, deploys that depend on a data type or FFI function that has been altered or removed will fail to execute. ## Transaction Types diff --git a/docs/developers/cli/opcode-costs.md b/docs/developers/cli/opcode-costs.md index 0795f7c68..31a4a05e1 100644 --- a/docs/developers/cli/opcode-costs.md +++ b/docs/developers/cli/opcode-costs.md @@ -6,7 +6,6 @@ title: OpCode Costs Tables The following tables outline the cost, in motes, for a given operation on Casper's Mainnet. If you are building for a private network or other instance of Casper, you will need to verify these costs in the associated `chainspec.toml`. -More information on `chainspec`s for private networks can be found [here](/operators/setup-network/chain-spec.md) :::note diff --git a/docs/developers/cli/sending-transactions.md b/docs/developers/cli/sending-transactions.md index 4550e69a5..166a8d365 100644 --- a/docs/developers/cli/sending-transactions.md +++ b/docs/developers/cli/sending-transactions.md @@ -1413,15 +1413,10 @@ A common question frequently arises: "How do I know what the payment amount (gas We recommend installing your contracts in a test environment, making sure the cost tables match those of the production Casper network to which you want to send the transaction. If you plan on sending a transaction to [Mainnet](https://cspr.live/), you can use the [Testnet](https://testnet.cspr.live/) to estimate the payment amount needed for the transaction. -:::note - -Casper's "Condor" release introduces a new payment system that includes the concept of [fee elimination](../../concepts/economics/fee-elimination.md). - -::: If your test configuration matches your production [chainspec](../../concepts/glossary/C.md#chainspec), you can check the transaction status and roughly see how much it would cost. You can estimate the costs in this way and then add a small buffer to be sure. Refer to the [runtime economics](../../concepts/economics/runtime.md#gas-allocation) section for more details about gas usage and fees. -Please be aware that sending a transaction always requires payment. This is true regardless of the validity of included Wasm. Depending on how the network was configured, the transaction payment may or may not be refunded, or a hold may placed on the paying purse. See [fee elimination](../../concepts/economics/fee-elimination.md) for more details. +Please be aware that sending a transaction always requires payment. This is true regardless of the validity of included Wasm. Depending on how the network was configured, the transaction payment may or may not be refunded. If the transaction failure occurs after session execution begins, the penalty payment of 2.5 CSPR is included in the gas costs of the [failed execution](../../concepts/serialization/types.md#executionresultv2). diff --git a/docs/developers/dapps/setup-nctl.md b/docs/developers/dapps/setup-nctl.md index b5543e5b9..b12a3b8c5 100644 --- a/docs/developers/dapps/setup-nctl.md +++ b/docs/developers/dapps/setup-nctl.md @@ -182,7 +182,7 @@ Assuming you have set up a small local network, you can speed up the process of ::: -**Step 14.** Clone the _casper-sidecar_ software in your working directory. As part of Casper's Condor release, the sidecar is now necessary to interact with a Casper network and will handle any API requests. +**Step 14.** Clone the _casper-sidecar_ software in your working directory. As part of Casper 2.0 release, the sidecar is now necessary to interact with a Casper network and will handle any API requests. Instructions for MacOS and Linux: diff --git a/docs/disclaimer.md b/docs/disclaimer.md index 4056490bd..7beffd185 100644 --- a/docs/disclaimer.md +++ b/docs/disclaimer.md @@ -2,58 +2,75 @@ id: disclaimer title: Disclaimer --- -# Disclaimer {#disclaimer} +# Legal Disclaimer {#disclaimer} -By accepting this CasperLabs Tech Spec (this "Whitepaper"), each recipient hereof acknowledges and agrees that is not authorised to, and may not, forward or deliver this Whitepaper, electronically or otherwise, to any other person or reproduce this Whitepaper in any manner whatsoever. Any forwarding, distribution or reproduction of this Whitepaper in whole or in part is unauthorised. Failure to comply with this directive may result in a violation of applicable laws of any affected or involved jurisdiction. +This disclaimer applies to all users of the Casper documentation and any releated use of the Casper network, including but not limited to Developers, Operators, Users, and researchers ("you"). It governs your use of any and all information, tools, code samples, APIs, SDKs, specifications, and other materials provided by or on behalf of the Casper Association or its contributors ("we", "us", or "our") in this documentation. -Nothing in this Whitepaper constitutes an offer to sell, or a solicitation to purchase, the tokens native to the Casper blockchain ("CSPR”). In any event, were this Whitepaper to be deemed to be such an offer or solicitation, no such offer or solicitation is intended or conveyed by this Whitepaper in any jurisdiction where it is unlawful to do so, where such an offer or solicitation would require a license or registration, or where such an offer or solicitation is subject to restrictions. In particular, any CSPR to be issued have not been, and, as of the date of issuance of this Whitepaper, are not intended to be, registered under the securities or similar laws of any jurisdiction, whether or not such jurisdiction considers the CSPR to be a security or similar instrument, and specifically, have not been, and, as of the date of issuance of this Whitepaper are not intended to be, registered under the U.S. Securities Act of 1933, as amended, or the securities laws of any state of the United States of America or any other jurisdiction and may not be offered or sold in any jurisdiction where to do so would constitute a violation of the relevant laws of such jurisdiction. +By accessing, browsing, or using this documentation in any way, you agree to be legally bound by the terms of this disclaimer in full. If you do not agree, you must not use this documentation. -This Whitepaper constitutes neither a prospectus according to Art. 652a of the Swiss Code of Obligations (the "CO”) or Art. 1156 CO nor a prospectus or basic information sheet according to the Swiss Financial Services Act (the "FinSA”) nor a listing prospectus nor a simplified prospectus according to Art. 5 of the Swiss Collective Investment Schemes Act (the "CISA”) nor any other prospectus according to CISA nor a prospectus under any other applicable laws. +The information shared in this documentation is not all-encompassing or comprehensive and does not in any way intend to create or put into implicit effect any elements of a contractual relationship. -The CSPR are not expected to be instruments in an offer and sale which are subject to the jurisdiction or oversight of the U.S. Securities Exchange Commission (the "SEC”). In any event, however, CSPR have not been approved or disapproved by, and are not expected to be approved or disapproved by, the SEC nor by the securities regulatory authority of any state of the United States of America or of any other jurisdiction, and neither the SEC nor any such securities regulatory authority has passed, or is expected to pass, upon the accuracy or adequacy of this Whitepaper. +**No Warranties** -The distribution of this Whitepaper and the purchase, holding, and/or disposal of CSPR may be restricted by law in certain jurisdictions. Persons reading this Whitepaper should inform themselves as to (i) the possible tax consequences, (ii) the legal and regulatory requirements, and (iii) any foreign exchange restrictions or exchange control requirements, which they might encounter under the laws of the countries of their citizenship, residence or domi-cile and which might be relevant to the purchase, holding or disposal of CSPR. No action has been taken to authorise the distribution of this Whitepaper in any jurisdiction in which such authorisation might be required. +All content is provided on an β€œas is” and β€œas available” basis. To the fullest extent permitted by law, we disclaim all warranties, representations, or guarantees of any kindβ€”express, implied, statutory, or otherwiseβ€”including, but not limited to, any implied warranties of merchantability, fitness for a particular purpose, non-infringement, or accuracy. No reliance should be placed on any information, code, or representations contained herein for making decisions or taking actions of any kind. -No action has been or is intended to be taken by CasperLabs Networks AG and/or any of its affiliates in any jurisdiction that would or is intended to, permit a public sale or offering of any CSPR, or possession or distribution of this Whitepaper (in preliminary, proof or final form) or any other sale, offering or publicity material relating to the CSPR, in any country or jurisdiction where action for that purpose is required. Each recipient of this Whitepaper is reminded that it has received this Whitepaper on the basis that it is a person into whose possession this Whitepaper may be lawfully delivered in accordance with the laws of the jurisdiction in which it is located and/or bound and it may not nor is it authorised to deliver this document, electronically or otherwise, to any other person. If the recipient receives this document by e-mail, then its use of this e-mail is at its own risk and it is the recipient’s responsibility to take precautions to ensure that such e-mail is free from viruses and other items of a destructive nature. +We do not warrant that: +- The documentation is complete, correct, current, or free from errors; +- Any code examples, APIs, or SDKs are secure or suitable for use; +- The functionality of the Casper network or related software will meet your requirements; +- Your use of the documentation will not result in unintended consequences, including security breaches, financial losses, or application failures. -#### Preliminary Nature of this Whitepaper {#preliminary-nature-of-this-whitepaper} +The content in this documentation speak only as of the date of this documentation and we may modify or update this documentation at our discretion but are not obligated to do so. -This Whitepaper is a draft and the information set out herein is of a preliminary nature. Consequently, neither CasperLabs Networks AG nor any of its affiliates assumes any responsibility that the information set out herein is final or correct and each of the foregoing disclaims, to the fullest extent permitted by applicable law, any and all liability whether arising in tort, contract or otherwise in respect of this Whitepaper. Neither this Whitepaper nor anything contained herein shall form the basis of or be relied on in connection with or act as an inducement to enter into any contract or commitment whatsoever. Recipients should note that the final structuring of CSPR and the Casper blockchain is subject to ongoing technical, legal, regulatory and tax considerations and each is, therefore, subject to material changes. In particular, neither the applicability nor the non-applicability of Swiss financial market regulations on the CSPR sale has not been confirmed by the Swiss Financial Market Supervisory Authority ("FINMA”). CasperLabs Networks AG and all its affiliates reserve the right to not assist in the completion of the software underlying CSPR and the CasperLabs blockchain, to not participate in the issuance or creation of CSPR or to change the structure of CSPR and/or the Casper blockchain for any reason, each at its sole discretion. +**Your Responsibility** -#### Forward-Looking Statements {#forward-looking-statements} +You are solely responsible for: +- Ensuring the correctness, security, and suitability of any code or architecture based on the documentation; +- Testing your smart contracts, dApps, integrations, and tooling thoroughly before deploying or using them in a live environment; +- Keeping up to date with changes to the Casper protocol, tooling, and security advisories; +- Complying with all applicable local, national, and international laws and regulations. -This Whitepaper includes "forward-looking statements”, which are all statements other than statements of historical facts included in this Whitepaper. Words like "believe”, "anticipate”, "expect”, "project”, "estimate”, "predict”, "intend”, "target”, "assume”, "may”, "might”, "could”, "should”, "will” and similar expressions are intended to identify such forward-looking statements. Such forward-looking statements involve known and unknown risks, uncertainties and other factors, which may cause the actual functionality, performance or features of the Casper blockchain and/or CSPR to be materially different from any future functionality, performance or features expressed or implied by such forward-looking statements. Such forward-looking statements are based on numerous assumptions regarding the CasperLabs Networks AG’s and/or any of its affiliates’ present and future expectations regarding the development of the Casper blockchain and the associated software. +We strongly recommend conducting your own due diligence and consulting with legal, financial, or technical professionals as appropriate. You are solely responsible for evaluating and using any information, tools, APIs, or code samples described herein. -These forward-looking statements speak only as of the date of this Whitepaper. CasperLabs Networks AG and its affiliates expressly disclaim any obligation or undertaking to release any updates of or revisions to any forward-looking statement contained herein to reflect any change in CasperLabs Networks AG’s and/or any of its affiliates’ expectations with regard thereto or any change in events, conditions or circumstances on which any such statement is based. +**No Advice** -#### Risk Factors {#risk-factors} +Nothing in this documentation constitutes legal, financial, investment, or professional advice of any kind. You should not act or refrain from acting based on information in this documentation without seeking advice from qualified professionals in relevant fields. -Furthermore, by accepting this Whitepaper, the recipient of hereof (the "Recipient”) acknowledges and agrees that it understands the inherent risks associated with blockchain and distributed ledger technology, tokens and cryptocurrencies in general and the CSPR in particular, including, but not limited to, those outlined hereinafter. +This documentation or any other associated content does not constitute any advice to buy or sell Casper tokens. -- **Risks associated with CasperLabs Networks AG’s experience**: the Recipient is aware that CasperLabs Networks AG and its affiliates constitute a start-up group of companies. Inability of such companies to manage their affairs, including any failure to attract and retain appropriate personnel, could affect the completion and functionality of the Casper blockchain. +**Risk** -- **Risks associated with CSPR relative value**: the Recipient understands and accepts that a purchaser of CSPR may experience financial losses relative to other assets, including fiat currency and/or any other cryptocurrency (including any cryptocurrency used to acquire CSPR). Potential purchasers and holders of CSPR are urged to carefully review this Whitepaper and assess and understand the risk factors relating to the CSPR and the Casper blockchain before acquiring CSPR (when and if CSPR become available). +You acknowledge and agree that you fully understand and accept the inherent risks associated with blockchain technology, distributed ledger systems, cryptocurrencies, and specifically the Casper network, its blockchain and its CSPR token. Key Risks Include (but are not limited to): -- **Risks associated with (intellectual) property rights**: the Recipient understands and accepts that, due to a lack of originality of the software and to the immaterial character of the CSPR, there may be no title of ownership in and to the intellectual property rights relating to CSPR. +- **Technical Risks**: The Casper network, blockchain and associated smart contracts remain under development and may contain undiscovered vulnerabilities, bugs, or be subject to unexpected failures or attacks; +- **Security Risks**: Loss of private keys, wallet mismanagement, and potential hacks may result in irreversible loss of CSPR token. +- **Regulatory Risks**: Evolving global regulations could impact the legality, accessibility, or operation of the Casper platform and the issuance or use of CSPR token. +- **Operational Risks**: Casper Association is an early-stage ventures with limited operational history, and their ability to deliver and maintain the Casper blockchain is not guaranteed. +- **Market and Liquidity Risks**: There is no assurance of a stable or liquid market for CSPR token. Value may fluctuate significantly or decline to zero. +- **Consensus and Network Governance Risks**: Validators control the Casper network’s operation and may make decisions that adversely affect the network or token holders, including forks or protocol changes. +- **Intellectual Property Risks**: Due to the open-source and digital nature of the project, no assurances are made regarding exclusivity or enforceable ownership of intellectual property. -- **Risks associated with blockchain**: the Recipient understands and accepts that the smart contract, the underlying software application and software platform (i.e. the Casper blockchain) is still in an early development stage and unproven. The Recipient understands and accepts that there is no warranty that the process for creating the CSPR and/or the Casper blockchain will be uninterrupted or error-free and acknowledges that there is an inherent risk that the software could contain weaknesses, vulnerabilities or bugs causing, inter alia, the complete loss of CSPR. The Recipient understands and accepts that, after launch of the Casper blockchain, the smart contract and/or underlying protocols and/or the Casper blockchain and/or any other software involved may either delay and/or not execute a contribution due to the overall contribution volume, mining attacks and/or similar events. +**Limitation of Liability** -- **Risk of weaknesses in the field of cryptography**: the Recipient understands and accepts that cryptography is a technology that evolves relatively fast over time. At the same time, methods and tools to decrypt, access and/or manipulate data stored on a distributed ledger or blockchain are highly likely to progress in parallel and in addition, new technological developments such as quantum computers may pose as of now unpredictable risks to the CSPR and the Casper blockchain that could increase the risk of theft or loss of CSPR (if and when CSPR are created and/or issued). +The Casper Association, its contributors, affiliates, directors, officers, employees, agents, contributors, operators or licensors shall have no liability for damages of any kind arising out of the use, reference to, or reliance on this documentation or any of the content contained herein, even if advised of the possibility of such damages. -- **Regulatory risks**: the Recipient understands and accepts that it is possible that certain jurisdictions will apply existing regulations on, or introduce new regulations addressing, distributed ledger technology and/or blockchain technology based applications, which may be contrary to the current setup of the smart contract or the CasperLabs Networks AG project and which may, inter alia, result in substantial modifications of the smart contract and/or the CasperLabs Networks AG project, including its termination and the loss of the CSPR, if and when created and/or issued, or entitlements to receive CSPR, for the Recipient. +In no event will the Casper Association, its contributors, affiliates, directors, officers, employees, agents, contributors, operators or licensors be liable to any person or entity for any damages, losses, liabilities, costs or expenses of any kind, whether direct or indirect, consequential, compensatory, incidental, actual, exemplary, punitive or special, for the use of, reference to, or reliance on this documentation or any of the content contained herein, including, without limitation, any loss of business, revenues, profits, data, use, goodwill, damages from security vulnerabilities or smart contract bugs or other intangible losses. -- **Risks associated with abandonment / lack of success**: the Recipient understands and accepts that the creation of the CSPR and the development of the Casper blockchain as well as the CasperLabs Networks AG project may be abandoned for a number of reasons, including lack of interest from the public, lack of funding, lack of prospects (e.g. caused by competing projects) and legal, tax or regulatory considerations. The Recipient therefore understands that there is no assurance that, even if the CSPR/CasperLabs blockchain project is partially or fully developed and launched, the Recipient will receive any benefits through the CSPR held by it (if and when created and/or issued). +This limitation applies whether the alleged liability is based on contract, tort, negligence, strict liability, or any other basis, even if advised of the possibility of such damages. -- **Risks associated with a loss of private key**: the Recipient understands and accepts that CSPR, if and when created and/or issued, will only be accessed by using a wallet technically compatible with CSPR and with a combination of the Recipient’s account information (address) and private key, seed or password. The Recipient understands and accepts that if its private key or password gets lost or stolen, the CSPR associated with the Recipient’s account (address) will be unrecoverable and will be permanently lost. +**Forward Looking Statements** -- **Risks associated with wallets**: the Recipient understands and accepts that CasperLabs Networks AG or any of its affiliates, employees, partners or advisors are in no way responsible for the wallet to which any CSPR are transferred. The Recipient understands and agrees that it is solely responsible for the access and security of its wallet, for any security breach of its wallet and/or with any loss of CSPR resulting from its wallet service provider, including any termination of the service by the wallet provider and/or bankruptcy of the wallet provider. +This documentation may contain forward-looking statements that reflect the Casper Association’s current views with respect to future events or performance. These statements are inherently subject to risks, uncertainties, and assumptions, many of which are beyond the Casper Association's control. Actual results may differ materially from those expressed or implied in any forward-looking statements. The Company undertakes no obligation to update or revise any forward-looking statements to reflect future events or circumstances. -- **Risks associated with theft/hacks**: the Recipient understands and accepts that the smart contract, the website, the underlying software application and software platform (i.e. the Casper blockchain), during its development and after its launch, may be exposed to attacks by hackers or other individuals that could result in an inability to launch the Casper blockchain or the theft or loss of CSPR. Any such event could also result in the loss of financial and other support of the CasperLabs Networks AG project impacting the ability to develop the CasperLabs Networks AG project and Casper blockchain. +**Third-Party Content** -- **Risks associated with mining attacks**: the Recipient understands and accepts that, as with other cryptocurrencies and tokens, if and when launched, the Casper blockchain is susceptible to attacks relating to validators. Any successful attack presents a risk to the smart contract, expected proper execution and sequencing of transactions, and expected proper execution and sequencing of contract computations. +This documentation may reference or link to third-party libraries, platforms, or resources. We are not responsible for and do not endorse the accuracy, security, or legality of such external resources. Your use of third-party content is at your own risk and subject to those parties' own terms and policies. -- **Risks associated with a lack of consensus**: the Recipient understands and accepts that the network of validators will be ultimately in control of the genesis block and future blocks and that there is no warranty or assurance that the network of validators will perform their functions and reach proper consensus and allocate the CSPR to the Recipient as proposed by any terms. The Recipient further understands that a majority of the validators could agree at any point to make changes to the software and/or smart contracts and to run the new version of the software and/or smart contracts. Such a scenario could lead to the CSPR losing intrinsic value. +**Changes and Updates** -- **Risks associated with liquidity of CSPR**: the Recipient understands and accepts that with regard to the CSPR, if and when created and/or issued, no market liquidity may be guaranteed and that the value of CSPR relative to other assets, including fiat currency and/or any other cryptocurrency (including any cryptocurrency used to acquire CSPR) over time may experience extreme volatility or depreciate in full (including to zero) resulting in loss that will be borne exclusively by the Recipient. +We may update, modify, or remove content from this documentation at any time without notice. It is your responsibility to regularly review this disclaimer and the documentation for changes. + +**Governing Law and Jurisdiction** + +This disclaimer shall be governed by and construed in accordance with the laws of Switzerland, without regard to its conflict of law principles. Any disputes arising from or related to the use of this documentation shall be subject to the exclusive jurisdiction of the competent courts of Zug, Switzerland. -- **Risks associated with forking**: the Recipient understands and accepts that hard and soft forks as well as similar events may, inter alia, lead to the creation of new or competing tokens to the CSPR, adversely affect the functionality, convertibility or transferability or result in a full or partial loss of units or reduction (including reduction to zero) of value of the Recipient’s CSPR (if and when created and/or issued). diff --git a/docs/index.md b/docs/index.md index d400820ec..c7be23e76 100644 --- a/docs/index.md +++ b/docs/index.md @@ -33,12 +33,18 @@ The Nav bar is along the top of your screen and contains the following elements - **Feedback** Allows you to submit requests for improvement to this docs site. -- **Condor** - This brings you to the blog posts tagged with "Condor". +- **Casper 2.0** + This brings you to the key Casper 2.0 pages. -- **Blog** - This brings you to the Blog section of the docs site, where long form articles can be published. +- **Tutorials** + This brings you to the Tutorials section of the docs site, where articles useful for developers can be found. -### Disclaimer +### Legal Disclaimer -[Legal Disclaimer](./disclaimer.md). +The information contained in this documentation is provided for general informational purposes only. The documentation is provided "as is" without warranty of any kind, express or implied. + +Use of this documentation and the Casper network is subject to both this summary disclaimer and the full disclaimer provided on the dedicated [Disclaimer](./disclaimer.md) page. By accessing or using this documentation in any capacity, you acknowledge and agree to be bound by both. + +Use of this documentation and the Casper network is at your own risk. Code examples, APIs, SDKs, and smart contract templates are provided "as is" and may contain errors, bugs, or vulnerabilities. You are responsible for testing, validating, and securing your applications before deploying them to any network. + +Casper Association and its affiliates shall have no liability for damages of any kind arising out of the use, reference to, or reliance on this documentation or any of the content contained herein. In no event will Casper Association and/or its affiliates be liable to any person or entity for any damages, losses, liabilities, costs or expenses of any kind, whether direct or indirect, consequential, compensatory, incidental, actual, exemplary, punitive or special for the use of, reference to, or reliance on this documentation including, without limitation, any loss of business, revenues, profits, data, use, goodwill or other intangible losses. This documentation or any other associated content does not constitute any advice to buy or sell Casper tokens. diff --git a/docs/operators/index.md b/docs/operators/index.md index a838169db..dad96ac71 100644 --- a/docs/operators/index.md +++ b/docs/operators/index.md @@ -19,5 +19,4 @@ Review the [node's configuration](./setup/basic-node-configuration.md) first. Th | ----------------------------------------------------------- | ----------------------------------------------- | |[Node Setup](./setup/index.md) | How to set up a Casper node | |[Becoming a Validator](./becoming-a-validator/index.md) | How to join a network and become a validator | -|[Private Network Setup](./setup-network/index.md) | How to set up a private Casper network | |[Maintenance](./maintenance/index.md) | Topics related to node maintenance | \ No newline at end of file diff --git a/docs/operators/setup-network/chain-spec.md b/docs/operators/setup-network/chain-spec.md deleted file mode 100644 index 651521be9..000000000 --- a/docs/operators/setup-network/chain-spec.md +++ /dev/null @@ -1,311 +0,0 @@ ---- -title: The Chainspec ---- - -# The Blockchain Specification {#the-chain-specification} - -The blockchain specification, or `chainspec`, is a collection of configuration settings describing the network state at genesis and upgrades to basic system functionality (including system contracts and gas costs) occurring after genesis. This page describes each field in the chainspec, based on version 2.0.0 of the Casper node. The chainspec can and should be customized for private networks. The chainspec attributes are divided into categories based on what they are configuring. - -## protocol - -These settings describe the active protocol version. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|version | The Casper node protocol version. | '2.0.0'| -|hard_reset | When set to true, clear blocks and transactions back to the switch block (the end of the last era) just before the activation point. Used during the upgrade process to reset the network progress. In most cases, this setting should be true.| true| -|activation_point | The protocol version that should become active.

If it is a timestamp string, it represents the timestamp for the genesis block. This is the beginning of Era 0. By this time, a sufficient majority (> 50% + F/2 β€” see the `finality_threshold_fraction` below) of validator nodes must be running to start the blockchain. This timestamp is also used in seeding the pseudo-random number generator used in the contract runtime for computing the genesis post-state hash.

If it is an integer, it represents an era ID, meaning the protocol version becomes active at the start of this era. | 11100| - - -## network - -The following settings configure the networking layer. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|name | Human readable network name for convenience. The state_root_hash of the genesis block is the true identifier. The name influences the genesis hash by contributing to seeding the pseudo-random number generator used in the contract runtime for computing the genesis post-state hash. | 'casper'| -|maximum_net_message_size | The maximum size of an acceptable networking message in bytes. Any message larger than this will be rejected at the networking level. | 25_165_824| - -## core - -These settings manage the core protocol behavior. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|era_duration | Era duration. | '120 minutes'| -|minimum_era_height | Minimum number of blocks per era. An era will take longer than `era_duration` if that is necessary to reach the minimum height. | 20 | -|minimum_block_time | Minimum difference between a block's and its child's timestamp. | '16384 ms'| -|validator_slots | Number of slots available in the validator auction. | 100| -|finality_threshold_fraction | A number between 0 and 1 representing the fault tolerance threshold as a fraction used by the internal finalizer.
It is the fraction of validators that would need to equivocate to make two honest nodes see two conflicting blocks as finalized.
Let's say this value is F. A higher value F makes it safer to rely on finalized blocks. It also makes it more difficult to finalize blocks, however, and requires strictly more than (F + 1)/2 validators to be working correctly. | [1, 3]| -|start_protocol_version_with_strict
_finality_signatures_required |Protocol version from which nodes are required to hold strict finality signatures.| '1.5.0'| -|legacy_required_finality|The finality required for legacy blocks. Options are 'Strict', 'Weak', and 'Any'.
Used to determine finality sufficiency for new joiners syncing blocks created in a protocol version before the start protocol version with strict finality signatures. |'Strict'| -|migrate_legacy_accounts| If true, the protocol upgrade will migrate ALL user accounts to addressable entity. If false, user accounts will be left as they are and will be lazily migrated on a per-account basis if / when that account is used during transaction execution. | true| -|migrate_legacy_contracts| If true, the protocol upgrade will migrate ALL user contracts to addressable entity. If false, user contracts will be left as they are and will be lazily migrated on a per-contract basis if / when that contract is used during transaction execution. | true| -|auction_delay | Number of eras before an auction defines the set of validators. If a validator bonds with a sufficient bid in era N, it will be a validator in era N + auction_delay + 1. | 1| -|locked_funds_period | The period after genesis during which a genesis validator's bid is locked. | '0 days'| -|vesting_schedule_period | The period in which the genesis validator's bid is released over time after it is unlocked. | '0 weeks'| -|unbonding_delay | Default number of eras that need to pass to be able to withdraw unbonded funds. | 7| -|round_seigniorage_rate | Round seigniorage rate represented as a fraction of the total supply.
- Annual issuance: 8%.
- Minimum block time: 2^15 milliseconds.
- Ticks per year: 31536000000.

(1+0.08)^((2^15)/31536000000)-1 is expressed as a fractional number below in Python:
`Fraction((1 + 0.08)**((2**15)/31536000000) - 1).limit_denominator(1000000000)` | [7, 175070816]| -|max_associated_keys | Maximum number of associated keys for a single account. | 100| -|max_runtime_call_stack_height | Maximum height of the contract runtime call stack. | 12| -|minimum_delegation_amount | Minimum allowed delegation amount in motes. | 500_000_000_000| -|maximum_delegation_amount | Maximum allowed delegation amount in motes. | 1_000_000_000_000_000_000| -|prune_batch_size | Global state prune batch size for tip pruning. Possible values:
- 0 when the feature is OFF
- Integer if the feature is ON, representing the number of eras to process per block.| 0| -|strict_argument_checking | Enables strict arguments checking when calling a contract; i.e., all non-optional args are provided and they are of the correct `CLType`. | false| -|simultaneous_peer_requests | Number of simultaneous peer requests. | 5| -|consensus_protocol | The consensus protocol to use. Options are 'Zug' or 'Highway'. | 'Zug'| -|max_delegators_per_validator | The maximum amount of delegators per validator. If the value is 0, there is no maximum capacity. | 1200| -|finders_fee | The split in finality signature rewards between block producer and participating signers. | [1, 5]| -|finality_signature_proportion | The proportion of baseline rewards going to reward finality signatures specifically. | [1, 2]| -|signature_rewards_max_delay | Lookback interval indicating how many past blocks we are looking at to reward. | 3| -|allow_unrestricted_transfers | Allows peer to peer transfers between users. Setting this to false makes sense only for private chains.| true| -|allow_auction_bids | Enables the auction entry points 'delegate' and 'add_bid'. Setting this to false makes sense only for private chains that don't need to auction new validator slots. These auction entry points will return an error if called, when this option is set to false. | true| -|compute_rewards | If set to false, then consensus doesn't compute rewards and always uses 0. | true| -|refund_handling | Defines how refunds of the unused portion of payment amounts are calculated and handled. Valid options are: refund (a ratio of the unspent token is returned to the spender); burn (a ratio of the unspent token is burned); no_refund (no refunds are paid out) | { type = 'no_refund' }| -|fee_handling | Defines how fees are handled. Valid options are: no_fee (fees are eliminated); pay_to_proposer (fees are paid to the block proposer); accumulate (fees are accumulated in a special purse and distributed at the end of each era evenly among all administrator accounts); burn (fees are burned) | { type = 'no_fee' } | -|validator_credit_cap | If a validator would recieve a validator credit, it cannot exceed this percentage of their total stake. | [1, 5] | -|pricing_handling | Defines how pricing is handled. Valid options are: classic (senders of transaction self-specify how much they pay); fixed (costs are fixed, per the cost table); reserved (prepaid transaction, currently not supported) | { type = 'fixed' } | -|allow_reservations | Does the network allow pre-payment / reservations for future execution? Currently not supported.| false | -|gas_hold_balance_handling | Defines how gas holds affect available balance calculations. Valid options are: accrued (sum of full value of all non-expired holds) and amortized (sum of each hold is amortized over the time remaining until expiry). | { type = 'accrued' } | -|gas_hold_interval | Defines how long gas holds last. | '24 hours'| -|administrators | List of public keys of administrator accounts. Setting this option makes only on private chains which require administrator accounts for regulatory reasons. | [] | - -See the [Fee Elimination](../../concepts/economics/fee-elimination.md) page for more details regarding `refund_handling`, `fee_handling`, `validator_credit_cap`, `pricing_handling`, `gas_hold_balance_handling`, and `gas_hold_interval`. - -## highway - -These settings configure the Highway Consensus protocol. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|maximum_round_length | Highway dynamically chooses its round length between `minimum_block_time` and `maximum_round_length`. | '66 seconds'| - -## transactions - -These settings manage transactions and their lifecycle. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|max_ttl | The duration after the transaction timestamp during which the transaction can be included in a block. | '2 hours'| -|block_max_approval_count | The maximum number of approvals permitted in a single block. | 2600| -|max_block_size | Maximum block size in bytes, including transactions contained by the block. 0 means unlimited. | 5_242_880| -|block_gas_limit | The upper limit of the total gas of all transactions in a block. | 3_300_000_000_000| -|native_transfer_minimum_motes | The minimum amount in motes for a valid native transfer. | 2_500_000_000| -|max_timestamp_leeway | The maximum value to which `transaction_acceptor.timestamp_leeway` can be set in the config.toml file. | '5 seconds' | - -### transactions.v1 - -These settings manage the transaction lanes including both native and Wasm based interactions. See [Lanes and gas costs](../../concepts/economics/runtime.md#lanes-and-gas-costs-lanes) for details. - -|Attribute | Mainnet Setting | -|----------------- |-----------------| -|native_mint_lane | [0, 1024, 1024, 65_000_000_000, 650] | -|native_auction_lane | [1, 2048, 2048, 362_500_000_000, 145] | -|wasm_lanes | [[2, 1_048_576, 2048, 1_000_000_000_000, 1], [3, 344_064, 1024, 500_000_000_000, 3], [4, 172_032, 1024, 50_000_000_000, 7], [5, 12_288, 512, 1_500_000_000, 15]] | - - -### transactions.deploy - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|max_payment_cost | The maximum number of motes allowed to be spent during payment. 0 means unlimited. | '0'| -|max_dependencies | The maximum number of other transactions a transaction can depend on (requiring them to have been executed before it can execute). | 10| -|payment_args_max_length | The limit of length of serialized payment code arguments. | 1024| -|session_args_max_length | The limit of length of serialized session code arguments. | 1024| - -## wasm - -The following are Wasm-related settings. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|max_memory | Amount of free memory (in 64 kB pages) each contract can use for its stack. | 64| -|max_stack_height | Max stack height (native WebAssembly stack limiter). | 500| - -### wasm.storage_costs - -These settings manage Wasm storage costs. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|gas_per_byte | Gas charged per byte stored in global state. | 1_117_587| - -### wasm.opcode_costs - -The following settings manage the cost table for Wasm opcodes. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|bit | Bit operations multiplier. | 300 | -|add | Arithmetic add operations multiplier. | 210| -|mul | Mul operations multiplier. | 240| -|div | Div operations multiplier. | 320| -|load | Memory load operation multiplier. | 2_500| -|store |Memory store operation multiplier. | 4_700| -|const | Const store operation multiplier. | 110| -|local | Local operations multiplier. | 390| -|global | Global operations multiplier. | 390| -|integer_comparison | Integer operations multiplier. | 250| -|conversion | Conversion operations multiplier. | 420| -|unreachable | Unreachable operation multiplier. | 270| -|nop | Nop operation multiplier. | 200| -|current_memory | Get the current memory operation multiplier. | 290| -|grow_memory | Grow memory cost per page (64 kB). | 240_000| - -### wasm.opcode_costs.control_flow - -These settings manage costs for control flow operations. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|block | Cost for `block` opcode. | 440| -|loop | Cost for `loop` opcode. | 440| -|if | Cost for `if` opcode. | 440| -|else | Cost for `else` opcode. | 440| -|end | Cost for `end` opcode. | 440| -|br | Cost for `br` opcode. | 35_000| -|br_if | Cost for `br_if` opcode. | 35_000| -|return | Cost for `return` opcode. | 440| -|select | Cost for `select` opcode. | 440| -|call | Cost for `call` opcode. | 68_000| -|call_indirect | Cost for `call_indirect` opcode. | 68_000| -|drop | Cost for `drop` opcode. | 440| - -### wasm.opcode_costs.control_flow.br_table - -The following settings manage `br_table` Wasm opcodes. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|cost | Fixed cost per `br_table` opcode. | 35_000| -|size_multiplier | Size of target labels in the `br_table` opcode will be multiplied by `size_multiplier`. | 100| - - -## wasm.messages_limits - -The following chainspec settings manage the cost of contract-level messages. - - -|Attribute |Description | Mainnet Setting | -|----------------------- |-----------------------------------------------|----------------------| -|max_topic_name_size | Maximum size of the topic name. | 256 | -|max_topics_per_contract | Maximum number of topics that can be added for each contract. | 128 | -|max_message_size | Maximum size in bytes of the serialized message payload. | 1_024| - - -### wasm.host_function_costs - -The following settings specify costs for low-level bindings for host-side ("external") functions. More documentation and host function declarations are located in [smart_contracts/contract/src/ext_ffi.rs](https://github.com/casper-network/casper-node/blob/release-1.5.2/smart_contracts/contract/src/ext_ffi.rs). - - -|Host-Side Function| Cost | Arguments | -| ---------------- | ---- | --------- | -| add | 5_800 | [0, 0, 0, 0] | -| add_associated_key | 1_200_000 | [0, 0, 0] | -| add_contract_version | 200 | [0, 0, 0, 0, 120_000, 0, 0, 0, 30_000, 0, 0] | -| blake2b | 1_200_000 | [0, 120_000, 0, 0] | -| call_contract | 300_000_000 | [0, 0, 0, 120_000, 0, 120_000, 0] | -| call_versioned_contract | 300_000_000 | [0, 0, 0, 0, 120_000, 0, 120_000, 0] | -| create_contract_package_at_hash | 200 | [0, 0] | -| create_contract_user_group | 200 | [0, 0, 0, 0, 0, 0, 0, 0] | -| create_purse | 2_500_000_000 | [0, 0] | -| disable_contract_version | 200 | [0, 0, 0, 0] | -| get_balance | 3_000_000 | [0, 0, 0] | -| get_blocktime | 330 | [0] | -| get_caller | 380 | [0] | -| get_key | 2_000 | [0, 440, 0, 0, 0] | -| get_main_purse | 1_300 | [0] | -| get_named_arg | 200 | [0, 120_000, 0, 120_000] | -| get_named_arg_size | 200 | [0, 0, 0] | -| get_phase | 710 | [0] | -| get_system_contract | 1_100 | [0, 0, 0] | -| has_key | 1_500 | [0, 840] | -| is_valid_uref | 760 | [0, 0] | -| load_named_keys | 42_000 | [0, 0] | -| new_uref | 17_000 | [0, 0, 590] | -| random_bytes | 200 | [0, 0] | -| print | 20_000 | [0, 4_600] | -| provision_contract_user_group_uref | 200 | [0, 0, 0, 0, 0] | -| put_key | 100_000_000 | [0, 120_000, 0, 120_000] | -| read_host_buffer | 3_500 | [0, 310, 0] | -| read_value | 60_000 | [0, 120_000, 0] | -| read_value_local | 5_500 | [0, 590, 0] | -| remove_associated_key | 4_200 | [0, 0] | -| remove_contract_user_group | 200 | [0, 0, 0, 0] | -| remove_contract_user_group_urefs | 200 | [0, 0, 0, 0, 0, 120_000] | -| remove_key | 61_000 | [0, 3_200] | -| ret | 23_000 | [0, 420_000] | -| revert | 500 | [0] | -| set_action_threshold | 74_000 | [0, 0] | -| transfer_from_purse_to_account | 2_500_000_000 | [0, 0, 0, 0, 0, 0, 0, 0, 0] | -| transfer_from_purse_to_purse | 82_000_000 | [0, 0, 0, 0, 0, 0, 0, 0] | -| transfer_to_account | 2_500_000_000 | [0, 0, 0, 0, 0, 0, 0] | -| update_associated_key | 4_200 | [0, 0, 0] | -| write | 14_000 | [0, 0, 0, 980] | -| dictionary_put | 9_500 | [0, 1_800, 0, 520] | -| enable_contract_version | 200 | [0, 0, 0, 0] | -| manage_message_topic | 200 | [0, 30_000, 0, 0] | -| emit_message | 200 | [0, 30_000, 0, 120_000] | -| cost_increase_per_message | 50 | | - - -## system_costs - -The following settings manage protocol operating costs. - -### system_costs.auction_costs - -These settings manage the costs of calling the `auction` system contract entrypoints. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|get_era_validators | Cost of calling the `get_era_validators` entrypoint. | 10_000| -|read_seigniorage_recipients | Cost of calling the `read_seigniorage_recipients` entrypoint. | 10_000| -|add_bid | Cost of calling the `add_bid` entrypoint. | 2_500_000_000| -|withdraw_bid | Cost of calling the `withdraw_bid` entrypoint. | 2_500_000_000| -|delegate | Cost of calling the `delegate` entrypoint. | 2_500_000_000| -|undelegate | Cost of calling the `undelegate` entrypoint. | 2_500_000_000| -|run_auction | Cost of calling the `run_auction` entrypoint. | 10_000| -|slash | Cost of calling the `slash` entrypoint. | 10_000| -|distribute | Cost of calling the `distribute` entrypoint. | 10_000| -|withdraw_delegator_reward | Cost of calling the `withdraw_delegator_reward` entrypoint. | 10_000| -|withdraw_validator_reward | Cost of calling the `withdraw_validator_reward` entrypoint. | 10_000| -|read_era_id | Cost of calling the `read_era_id` entrypoint. | 10_000| -|activate_bid | Cost of calling the `activate_bid` entrypoint. | 10_000| -|redelegate | Cost of calling the `redelegate` entrypoint. | 2_500_000_000| -|change_bid_public_key | Cost of calling the `change_bid_public_key` entrypoint. | 5_000_000_000 | - -### system_costs.mint_costs - -These settings manage the costs of calling the `mint` system contract entrypoints. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|mint | Cost of calling the `mint` entrypoint. | 2_500_000_000| -|reduce_total_supply | Cost of calling the `reduce_total_supply` entrypoint. | 10_000| -|create | Cost of calling the `create` entrypoint. | 2_500_000_000| -|balance | Cost of calling the `balance` entrypoint. | 10_000| -|burn | Cost of calling the `burn` entrypoint. | 10_000| -|transfer | Cost of calling the `transfer` entrypoint. | 10_000| -|read_base_round_reward | Cost of calling the `read_base_round_reward` entrypoint. | 10_000| -|mint_into_existing_purse | Cost of calling the `mint_into_existing_purse` entrypoint. | 2_500_000_000| - - -### system_costs.handle_payment_costs - -These settings manage the costs of calling entrypoints on the `handle_payment` system contract. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|get_payment_purse | Cost of calling the `get_payment_purse` entrypoint. |10_000| -|set_refund_purse | Cost of calling the `set_refund_purse` entrypoint. |10_000| -|get_refund_purse | Cost of calling the `get_refund_purse` entrypoint. |10_000| -|finalize_payment | Cost of calling the `finalize_payment` entrypoint. |10_000| - -### system_costs.standard_payment_costs - -These settings manage the costs of calling entrypoints on the `standard_payment` system contract. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|pay| Cost of calling the `pay` entrypoint and sending an amount to a payment purse. |10_000| \ No newline at end of file diff --git a/docs/operators/setup-network/create-private.md b/docs/operators/setup-network/create-private.md deleted file mode 100644 index e9c7bf56b..000000000 --- a/docs/operators/setup-network/create-private.md +++ /dev/null @@ -1,562 +0,0 @@ ---- -title: Private Network Setup ---- - -# Setting Up a Private Casper Network - -Casper private networks operate in a similar way to the Casper public network. The significant difference in private networks is a closed validator set and having administrator account(s) which can control regular accounts. Hence, there are specific configurations when setting up the genesis block and administrator accounts. Besides the main configuration options that the Casper platform provides, each customer may add other configuration options when setting up a private network. - -## Contents - -1) [Prerequisites](#prerequisites) - -2) [Setting up a Validator Node](#step-1-setting-up-a-validator-node) - -3) [Setting up the Directory](#step-2-setting-up-the-directory) - -4) [Configuring the Genesis Block](#step-3-configuring-the-genesis-block) - -5) [Configuring the Administrator Accounts](#step-4-configuring-the-administrator-accounts) - -6) [Starting the Casper Node](#step-5-starting-the-casper-node) - -7) [Testing the Private Network](#step-7-testing-the-private-network) - -8) [Setting up a Block Explorer](#setting-up-a-block-explorer) - -## Prerequisites -Follow these guides to set up the required environment and user accounts. -- [Setting up the Casper client](../../developers/prerequisites.md#install-casper-client) -- [Setting up the client for interacting with the network](https://github.com/casper-ecosystem/casper-client-rs/blob/dev/README.md#casper-client) -- [Setting up an Account](../../developers/prerequisites.md#setting-up-an-account) - - -## Step 1. Setting up a Validator Node -A [Casper node](../../concepts/glossary/N.md#node) is a physical or virtual device participating in a Casper network. You need to set up several [validator](../../concepts/glossary/V.md#validator) nodes on your private network. An [operator](../../concepts/glossary/O.md#operator) who has won an [auction](../../concepts/glossary/A.md#auction) bid will be a validator for the private network. - - -Use the below guides to set up and manage validator nodes. - -- [Casper node setup - GitHub guide](https://github.com/casper-network/casper-node/tree/master/resources/production#casper-node-setup): A guide to configuring a system with the new Rust node to operate within a network. -- [Basic node setup tutorial](../setup/basic-node-configuration.md): A guide on using the `casper-node-launcher`, generating directories and files needed for running casper-node versions and performing upgrades, generating keys, and setting up the configuration file for nodes. -- [Set up Mainnet and Testnet validator nodes](https://docs.cspr.community/): A set of guides for Mainnet and Testnet node-operators on setting up and configuring their Casper network validator nodes. - -Use these FAQ collections for tips and details for validators. -- [External FAQs on Mainnet and Testnet validator node setup](https://docs.cspr.community/docs/faq-validator.html) - -## Step 2. Setting up the Directory -Use these guides to set up your private network directories. You will find several main directories dedicated to different purposes. - -- Go through the [file location](../setup/basic-node-configuration.md#file-locations) section to understand how directories are created and managed in a Casper private network. -- Refer to the [setting up a new network](./chain-spec.md) guide to identify the required configuration files to set up a genesis block. - -## Step 3. Configuring the Genesis Block -A Casper private network contains a different set of configurations when compared to the public network. The [`chainspec.toml`](../../concepts/glossary/C.md#chainspec) file contains the required configurations for the genesis process in a private network. - -You should add the configuration options below to the `chainspec.toml` file inside the [private network directory](./create-private.md#step-2-setting-up-the-directory). - -### Unrestricted transfers configuration -This option disables unrestricted transfers between regular account purses. A regular account user cannot do a fund transfer when this attribute is set to false. Only administrators can transfer tokens freely between users and other administrators. - -```toml -[core] -allow_unrestricted_transfers = false -``` -In contrast, users in the public network can freely transfer funds to different accounts. - -:::note -A Casper private network doesn't support the minting process. Only admininstrator accounts can maintain funds. This is enabled by configuring these options: - -```toml -[core] -allow_unrestricted_transfers = false -compute_rewards = false -allow_auction_bids = false -refund_handling = { type = "refund", refund_ratio = [1, 1] } -fee_handling = { type = "accumulate" } -administrators = ["ADMIN_PUBLIC_KEY"] -``` - -The Casper Mainnet has different refund and fee handling configurations explained in more detail [here](../../concepts/economics/fee-elimination.md). - -```toml -[core] -allow_unrestricted_transfers = true -compute_rewards = true -allow_auction_bids = true -refund_handling = { type = 'no_refund' } -fee_handling = { type = 'no_fee' } -administrators = [] -``` - -::: - -### Refund handling configuration -This option manages the refund behavior at the finalization of a deploy execution. It changes the way the Wasm execution fees are distributed. After each deploy execution, the network calculates the amount of gas spent for the execution and manages to refund any remaining tokens to the user. - -A `refund_ratio` is specified as a proper fraction (the numerator must be lower or equal to the denominator). In the example below, the `refund_ratio` is 1:1. If 2.5 CSPR is paid upfront and the gas fee is 1 CSPR, 1.5 CSPR will be given back to the user. - - -```toml -[core] -refund_handling = { type = "refund", refund_ratio = [1, 1] } -``` - -Another example: a refund variant with `refund_ratio` of [0, 100] means that 0% is given back to the user after deducting gas fees. In other words, if a user paid 2.5 CSPR and the gas fee is 1 CSPR, the user will not get the remaining 1.5 CSPR in return. - -After deducting the gas fee, the distribution of the remaining payment amount is handled based on the [fee_handling](./create-private.md#fee-handling-config) configuration. - -Starting with the Condor release, a Casper private network can eliminate fees and, thus, not require refunds, similar to the Casper Mainnet: - -```toml -refund_handling = { type = 'no_refund' } -fee_handling = { type = 'no_fee' } -``` - -### Fee handling configuration -This option defines how to distribute the fees after refunds are handled. While refund handling defines the amount we pay back after a transaction, fee handling defines the methods of fee distribution after a refund is performed. - - -Set up the configuration as below: - -```toml -[core] -fee_handling = { type = "pay_to_proposer" } -``` - -The `fee_handling` configuration has four variations: -- `no_fee`: Fees are eliminated. No refunds are necessary. -- `pay_to_proposer`: The rest of the payment amount after deducing the gas fee from a refund is paid to the block's [proposer](../../concepts/glossary/P.md#proposer). -- `burn`: The tokens paid are burned, and the total supply is reduced. -- `accumulate`: The funds are transferred to a special accumulation purse. Here, the accumulation purse is owned by a handle payment system contract, and the amount is distributed among all the administrators defined at the end of a switch block. The fees are paid to the purse owned by the handle payment contract, and no tokens are transferred to the proposer when this configuration is enabled. - -### Auction behavior configuration - -A private network requires to have a fixed set of validators. This configuration restricts the addition of new validators to the private network. Hence, you are not allowed to bid new entries into the validator set. - - -Use the configuration below to limit the auction validators: - - -```toml -[core] -allow_auction_bids = false -``` - -Other configurations related to the auction: - -- `allow_auction_bids` - if this option is set to *false* then `add_bid` and `delegate` options are disabled. It also disables adding new validators to the system. Invoking those entry points leads to an `AuctionBidsDisabled` error. -- `core.compute_rewards` - if this option is set to *false*, then all the rewards on a switch block will be set to 0. The auction contract wouldn't process rewards distribution that would increase validator bids. - -In a public network, `allow_auction_bid` is set to *true*, which allows bidding for new entries and validator nodes. - -## Step 4. Configuring the Administrator Accounts -An administrator is mandatory for a private network since it manages all the other [validator](../../concepts/glossary/V.md#validator) accounts. There should be at least one administrator account configured within a network to operate it as a `private network`. You can create new administrators and [rotate the validator set](./create-private.md#step-6-rotating-the-validator-accounts) in a single configuration update. The operator must first ensure the `global_state.toml` file contains new administrators. The validator set is updated after if an administrator is also a validator. Also, only purses of administrator accounts can hold and distribute token balances. - -### Configuring administrator accounts - -Use this configuration option in the `chainspec.toml` to add administrator accounts to the private network: - -```toml -[core] -administrators = ["NEW_ACCOUNT_PUBLIC_KEY"] -``` - -**Note**: Regular accounts are not allowed to manage their associated keys on a private network. - -### Generating new administrator accounts - -Use the command below to generate new administrator accounts in your private network. This generates the contents of a `global_state.toml` with the entries required to create new administrator accounts at the upgrade point. - -```sh -global-state-update-gen \ - generate-admins --data-dir $DATA_DIR/global_state \ - --state-hash $STATE_ROOT_HASH \ - --admin $PUBLIC_KEY_HEX, $BALANCE -``` - -- `NEW_PUBLIC_KEY` - Public key of the administrator in a hex format. -- `NEW_BALANCE` - Balance for the administrator’s main purse. -- `DATA_DIR` - Path to the global state directory. -- `STATE_ROOT_HASH` - State root hash, taken from the latest block before an upgrade. - -### Managing accounts and smart contracts - -Only administrators have permission to control accounts and manage smart contracts in a private network. An example implementation can be found in [Casper node's private chain control management](https://github.com/casper-network/casper-node/blob/c8023736786b2c2b0fd17250fcfd50502ff4151f/smart_contracts/contracts/private_chain/control-management/src/main.rs) file. This is not an existing contract. You can use the existing client contracts as an administrator to perform actions as a user. This is done by sending a deploy under a regular user's public key but signed using the administrator's secret key. - -Use this command to generate these contracts: - -```sh -make build-contracts-rs -``` - -Only the administrator can use the related Wasm to send the deploy to the network and then use it to manage, enable, and disable contracts. This is achieved through entry points that handle enabling and disabling options for account and smart contracts: - -- **To disable a contract**: Execute the `disable_contract.wasm` with `contract_hash`and `contract_package_hash` as parameters. -- **To enable a contract**: Execute the `enable_contract.wasm` with `contract_hash`and `contract_package_hash` as parameters. -- **To disable an account**: Execute `set_action_thresholds.wasm` with argument `deploy_threshold:u8='255'` and `key_management_threshold:u8='255'`. -- **To enable an account**: Execute `set_action_thresholds.wasm` with `deploy_threshold:u8='1'` set to 1 and `key_management_threshold:u8='0'`. - - -## Step 5. Starting the Casper Node -After preparing the administrator accounts and validator nodes, you should start and run the Casper node to see the changes. Use this command to start the node: - -```sh -sudo systemctl start casper-node-launcher -``` -Refer to the [Casper node setup GitHub](https://github.com/casper-network/casper-node/tree/master/resources/production#casper-node-setup) guide to know more details about configuring a new node to operate within a network. - -Additionally, refer to the [casper-node-launcher](https://github.com/casper-network/casper-node-launcher) to check whether the installed node binaries match the installed configurations by comparing the version numbers. - -## Step 6. Rotating the Validator Accounts -You need to go through [setting up a validator node ](#step-1-setting-up-the-validator-nodes) guide before starting this section. - -To rotate the validators set, you must perform a network upgrade using a `global_state.toml` with new entries generated by the `global-state-update-gen` command. - -When rotating validators manually, you will need to do so after the start of a new era. This allows you to obtain the state root hash from the final block in an era, known as the switch block. - -After acquiring the state root hash from the switch block, you must stop the network. The following command allows you to use the acquired state root hash to generate a new `global_state.toml`. - -```sh - -global-state-update-gen validators \ - --data-dir $DATA_DIR/global_state \ - --state-hash $STATE_ROOT_HASH \ - –-validator $PUBLIC_KEY_HEX,$STAKE \ - –-validator $PUBLIC_KEY_HEX,$STAKE - -``` - -Each use of the `--validator` parameter designates a validator for the next era. Only validators added using this parameter will be included in the new era, hence removing a validator only requires you to not add them with this parameter. - -After designating the next era's validators, you must set the chainspec activation point and `last_emergency_restart` to `X`, where `X` is equal to the new era after the switch block from above. Finally, set `hard_reset = true`. This makes the network revert to the end of the previous era when restarted with the upgrade. - -For example, to rotate the validators in era 10, one would need to wait for the end of era 9. After acquiring the state root hash from the final block of era 9, you would stop the network, run `global-state-update-gen`, set the activaction point and `last_emergency_restart` to 10 and `hard_reset` to `true`. - -You can now stage the upgrade by copying the chainspecs, configs and binaries where they should be while the network is still down. Once these are in place, you can restart the network with rotated validators. - -:::note - -Please make sure you are running this tool as the same user that owns `$DATA_DIR`. Otherwise, you may receive a permission denied error. - -::: - -You can find more details on enabling new validators in the [joining a running network](../setup/joining.md) guide. The guide explains how to join the network and provide additional security to the system. - -## Step 7. Testing the Private Network -We will describe the testing flow using an example customer and the configuration below. These options are relative to this example customer. - -### Sample configuration files - -Here are sample configurations that can be adapted for testing: -- A [chainspec template](https://github.com/casper-network/casper-node/blob/0b4eead8ea1adffaea98260fe2e69dfc8b71c092/resources/private/chainspec.toml.in) that is specific to the customer's private chain. -- An [accounts template](https://github.com/casper-network/casper-node/blob/0b4eead8ea1adffaea98260fe2e69dfc8b71c092/resources/private/accounts.toml.in) with one administrator in the `administrators` settings. - - -### Specifying IP addresses - -Here is an example set of IP addresses in use: -``` -http://18.224.190.213:7777 -http://18.188.11.97:7777 -http://18.188.206.170:7777 -http://18.116.201.114:7777 -``` - -### Setting up the node - -Set up the node address, chain name, and the administrator's secret key. - -```sh -export NODE_ADDR=http://18.224.190.213:7777 -export CHAIN_NAME="private-test" -``` - -This testing example will also use an `alice/secret_key.pem` file, a secret key generated through the [keys generation process](../../concepts/accounts-and-keys.md#creating-accounts-and-keys). Alice is a regular user in this testing example. - -### Network access control - -With a default configuration each node generates a self-signed certificate to encrypt peer-to-peer communication. This means any person can join an existing network, and sync with the network, which in private chains may not be allowed. - -To restrict access for new nodes joining an existing private chain network, the node software supports loading signed client certificates by a certificate authority (CA). - -```toml -[network.identity] -tls_certificate = "local_node_cert.pem" -secret_key = "local_node.pem" -ca_certificate = "ca_cert.pem" -``` - -- `tls_certificate` is the certificate signed by a `ca_cert.pem`. -- `secret_key` refers to a secret key that should be unique to a specific node in the network. All peer-to-peer communication coming from this node will be signed by this key. -- `ca_certificate` is the network CA that should be the same on each of the nodes. - -To set up CA and sign client certificates for a network here are the steps to follow using an openssl command line: - -```sh -# Recommended EC curve algorithm to use -export CURVE="secp521r1" - -# Generate secret key for CA and save it to ca_key.pem -openssl ecparam -out ca_key.pem -name $CURVE -genkey -# Create ca_cert.pem signed by ca_key.pem -openssl req -new -x509 -days 3650 -extensions v3_ca -key ca_key.pem -out ca_cert.pem - -# Generate secret key for a node and a certificate signed by the CA -openssl ecparam -out node_1.pem -name $CURVE -genkey -openssl req -new -key node_1.pem -out node_1.csr -sha256 -openssl x509 -req -days 3650 -CA ca_cert.pem -CAkey ca_key.pem -CAcreateserial -in node_1.csr -out node_1_cert.pem -``` - -And then configure the node with the following settings: - -```toml -[network.identity] -tls_certificate = "node_1_cert.pem" -secret_key = "node_1.pem" -ca_certificate = "ca_cert.pem" -``` - -Every node in the private chain network has to be configured with the same CA certificate, and each `tls_certificate` and `secret_key` pair has to be signed by it. Any node trying to join with a certificate signed by an incorrect CA ends up with the following log message: - -``` -2022-09-01T12:08:53.031417Z DEBUG init:incoming{; peer_addr=127.0.0.1:50998}: [casper_node::components::small_network small_network.rs:501] incoming connection failed early; err=TLS validation error of peer certificate: the certificate is not signed by provided certificate authority -``` - -Keep in mind that for security reasons `ca_key.pem` should be stored securely and never present on each of participating machines. - -### Funding Alice's account - -The following command transfers tokens to Alice's main purse. - -```sh -casper-client \ - transfer \ - -n $NODE_ADDR \ - --chain-name $CHAIN_NAME \ - --secret-key admin/secret_key.pem \ - --session-account=$(> global_state.toml -``` - -By using `>>` shell redirection you will always append contents to existing file without overwriting it. This is helpful when you need to chain multiple operations in a single upgrade. - -Common options: - -- `--data-dir` path to a global state directory where `data.lmdb` can be found -- `--state-hash` is the state root hash at the latest block. You should use the client to obtain the most recent state root hash to generate the `global_state.toml`. - -### Rotating validators - -The following command rotates the validator set. Perform a network upgrade with a `global_state.toml` with the new entries generated by the `global-state-update-gen` command. - -```sh -global-state-update-gen validators \ - --data-dir $DATA_DIR \ - --state-hash $STATE_ROOT_HASH \ - --validator NEW_PUBLIC_KEY,NEW_STAKE \ - --validator NEW_PUBLIC_KEY2,NEW_STAKE2 -``` - -### Adding new administrators -The following command produces the administrator content in the `global_state.toml` file. - -```sh -global-state-update-gen generate-admins --admin NEW_PUBLIC_KEY,NEW_BALANCE --data-dir $DATA_DIR --state-hash $STATE_ROOT_HASH -``` -Remember that new administrators can be created, and the validator set can also be rotated in a single update. - -The `chainspec.toml` file should contain the following entries that include new administrators as well as existing ones for an upgrade: - - -```toml -[core] -administrators = ["NEW_PUBLIC_KEY"] -``` - -After this step, the private network would be ready for use. - -## Setting up a Block Explorer - -Private and hybrid blockchains can find information on how to set up and operate our free version of a block explorer [here](https://github.com/casper-network/casper-blockexplorer-frontend). \ No newline at end of file diff --git a/docs/operators/setup-network/genesis.md b/docs/operators/setup-network/genesis.md deleted file mode 100644 index 889e19450..000000000 --- a/docs/operators/setup-network/genesis.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Genesis ---- - -# The Genesis Block {#the-genesis-block} - -The Casper node software creates a genesis block from the following input files: - -- `chainspec.toml` -- `accounts.toml` - -## chainspec.toml {#chainspectoml} - -A version of the [chainspec](../../concepts/glossary/C.md#chainspec) is downloaded by the `pull_casper_node_version.sh` script installed with the casper-node-launcher debian package. This script pulls the `chainspec.toml` file from the appropriate path defined in the network config file used (`casper.conf` for MainNet and `casper-test.conf` for TestNet). - -The production version of the file from which this is based on can be found at `casper-node/resources/production/chainspec.toml` in the code base. To create a custom network, this file can be updated as desired. Any changes to this file will result in a different genesis hash. Refer to [this page](./chain-spec.md) for detailed documentation on each of the variables in the file. - -## accounts.toml {#accountstoml} - -This file contains the genesis validator set information, starting accounts and associated balances and bond amounts. - -If an account is not bonded at genesis, specify a `0` for the bond amount. - -Similar to the `chainspec.toml`, this is pulled from the appropriate path defined in the network config file used. diff --git a/docs/operators/setup-network/index.md b/docs/operators/setup-network/index.md deleted file mode 100644 index ffc64120b..000000000 --- a/docs/operators/setup-network/index.md +++ /dev/null @@ -1,10 +0,0 @@ -# Setting up Private Networks - -Some projects may require a private Casper network or a hybrid setup involving a private and public Casper network. This section covers the requirements for creating a private network. - -| Title | Description | -| ----------------------------------------------------------- | ----------------------------------------------- | -|[The Genesis Block](./genesis.md) | Files needed to create a genesis block | -|[The Chain Specification](./chain-spec.md) | Configuration settings describing the network state | -|[Setting up a Private Casper Network](./create-private.md) | A step-by-step guide to establishing and configuring a private Casper network | -|[Staging Files for a New Network](./staging-files-for-new-network.md) | A guide to hosting protocol files for a new Casper network | \ No newline at end of file diff --git a/docs/operators/setup-network/staging-files-for-new-network.md b/docs/operators/setup-network/staging-files-for-new-network.md deleted file mode 100644 index 77203c59f..000000000 --- a/docs/operators/setup-network/staging-files-for-new-network.md +++ /dev/null @@ -1,176 +0,0 @@ ---- -title: Staging Files ---- - -# Staging Files for a New Network - -:::important - -Staging files is not needed for already established running networks. - -Only use these instructions if you are creating a new Casper network and hosting protocol files for this network. - -::: - - -## Hosting Server - -Files for staging protocol versions are hosted on a typical HTTP(S) server. - -Scripts included with the `casper-node-launcher` have network configurations for Mainnet and Testnet. These scripts point to the server hosting files and network name. - -Since a given server can be used for multiple networks, a network named directory is used to -hold files for that network. - -This is a description of Mainnet protocol version hosting (with network name: `casper`). - -`genesis.casperlab.io` is the web server URL with the following directory structure: - - - `casper` - - `protocol_versions` - File listing active protocol versions so scripts know what directories to use - - `1_0_0` - Genesis protocol version - - `config.tar.gz` - Configuration files to be expanded into `/etc/casper/1_0_0` - - `bin.tar.gz` - Binary files to be expanded into `/var/lib/casper/bin/1_0_0` - - `1_1_0` - First upgrade - - `config.tar.gz` - Configuration files to be expanded into `/etc/casper/1_1_0` - - `bin.tar.gz` - Binary files to be expanded into `/var/lib/casper/bin/1_1_0` - - ... (skipping many other protocol versions) - - `1_4_6` - A later upgrade - - `config.tar.gz` - Configuration files to be expanded into `/etc/casper/1_4_6` - - `bin.tar.gz` - Binary files to be expanded into `/var/lib/casper/bin/1_4_6` - -### More on `protocol_versions` - -At the root of the hosting server directory for a given network, a `protocol_versions` file exists. This holds the valid protocol versions for a network. - -We can look at this manually on Mainnet using *curl*. As of writing this, `1.4.6` is the latest version and the contents of this file will change. - -```bash - -$ curl -s genesis.casper.network/casper/protocol_versions -1_4_5 -1_4_6 - -``` - -We should find `bin.tar.gz` and `config.tar.gz` in those directories under `casper`. - -## Protocol Version - -The protocol version of a network is not related to the `casper-node` version. In Mainnet, these have often been the same. However, with a new network, you would use the latest `casper-node` version for your -`1.0.0` protocol. - -## Network Configuration File - -When the `casper-node-launcher` package is installed, both `casper.conf` and `casper-test.conf` are installed -in `/etc/casper/network_configs`. Once a valid config file for a new network is copied to this location, -all commands with *node_util.py* will work as they do on existing networks. - -By convention, we name the config file the same as the network. So Mainnet has a network name of `casper` and we use -`casper.conf` for the config file. - -For a new network using server `casper.mydomain.com` to host files for `our-network` network, we would have a -`our-network.conf` file that looks like this: - -```bash -SOURCE_URL=casper.mydomain.com -NETWORK_NAME=our-network -``` - -Host this `our-network.conf` in the root of `casper.mydomain.com/our-network` at the same level as `protocol_versions`. - -This allows any node which wants to use the new network to run the following to install this configuration: - -```bash -cd /etc/casper/network_configs -sudo -u casper curl -JLO casper.mydomain.com/our-network/our-network.conf -``` - -Any command needing a network config from `node_util.py` can use `our-network.conf`. - -Staging protocol versions for a new node with this network or staging an upcoming upgrade would just need this command: - -```bash -sudo -u casper /etc/casper/node_util.py stage_protocols our-network.conf -``` - -## Setup Configuration Files - -For a network to be started, we to build the configuration files for a certain genesis time and with nodes that will be running. These files need to be configured in advanced, so a genesis time should be selected that allows packaging the files, loading onto nodes and starting nodes prior to the genesis time. - -### chainspec.toml - -The [chainspec.toml](../../concepts/glossary/C.md#chainspec) file is configuration for the network and must be exactly the same on all nodes. - -The name for a network is specified `network.name`. - -Each protocol will have a `version` and `activation_point`. At genesis this is a date and time in format shown below. For future upgrades it would be an integer of the `era_id` for activation of the upgrade. - -``` -[protocol] -version = '1.0.0' -activation_point = '2022-08-01T10:00:00Z' - -[network] -name = 'mynetwork' -``` - -### config-example.toml - -The config-example.toml is used to generate config.toml for a protocol after the node's IP is inserted. The `public_address` is auto-detected with `node_util.py stage_protocols`. If using a NAT environment, the public IP can be specified with the `--ip` argument. - -This file should have `known_addresses` added that are relevant to the network. Nodes that will be genesis validators are added to this list in the form: - -``` -[network] -known_addresses = [':35000',':35000',':35000'] -``` - -The `config.toml` can be setup to customized fields for a given node. `config-example.toml` is a default configuration. - -## Staging a Protocol Version - -For the initial genesis protocol version or future upgrade protocol versions, you will typically use -prebuilt and tested `bin.tar.gz` that have been tested and staged for existing networks. The `config.tar.gz` -file must be customized for the specific network with a network name, protocol version and activation point at the very least. - -These archives should be created with no directory information stored. This is done by using `tar` in the same directory as the files. - -```bash -mkdir config -cd config -mv [source of chainspec.toml] ./chainspec.toml -mv [source of config-example.toml] ./config-example.toml -tar -czvf ../config.tar.gz . -``` - -You can test what was compressed with untar'ing the file. - -```bash -mkdir conftest -cd conftest -tar -xzvf ../config.tar.gz . -``` - -This will expand files for verification. - -For custom `casper-node` builds, the minimum contents of `bin.tar.gz` is the `casper-node` executable. - -```bash -mkdir bin -cd bin -cp [source of casper-node] ./casper-node -tar -czvf ../bin.tar.gz . -``` - -A directory for the protocol_version will be created on the server. For example: `1_1_0`. - -We will copy `bin.tar.gz` and `config.tar.gz` into `1_1_0`. Once this is done, we are safe to update -`protocol_versions` by appending `1_1_0` to the end of the file and uploading it into the root of the network directory. - -Any node that runs the following command will get this new upgrade: - -```bash -sudo -u casper /etc/casper/node_util.py stage_protocols -``` - diff --git a/docs/resources/changelog.md b/docs/resources/changelog.md index 16f932af5..e9a8460d9 100644 --- a/docs/resources/changelog.md +++ b/docs/resources/changelog.md @@ -1,10 +1,10 @@ # Documentation Updates by Protocol Release -## Condor (2.0) +## Casper 2.0 ### Concepts -The following are changes introduced alongside release of the Condor network upgrade. +The following are changes introduced alongside release of the Casper 2.0 network upgrade. [Understanding Key Types](../concepts/key-types.md) - Additional Key Types and document restructuring. @@ -26,6 +26,3 @@ The following are changes introduced alongside release of the Condor network upg [Writing On-Chain Code -> Factory Contracts](../developers/writing-onchain-code/factory-pattern.md) - Guide to the new factory pattern for smart contracts. -### Operators - -[Private Network -> The Chainspec](../operators/setup-network/chain-spec.md) - Updates to the `chainpsec` relating to contract-level events. \ No newline at end of file diff --git a/src/pages/condor/addressable-entity.md b/src/pages/condor/addressable-entity.md index ded071a50..39b42b6f8 100644 --- a/src/pages/condor/addressable-entity.md +++ b/src/pages/condor/addressable-entity.md @@ -4,7 +4,7 @@ description: An introduction to the Addressable Entity concept. slug: addressable-entity date: 2024-07-17T18:00 authors: [ sczembor, melpadden ] -tags: [condor] +tags: [condor, casper2.0] hide_table_of_contents: false --- @@ -78,13 +78,13 @@ let contract_hash = match addressable_entity_key { }; ``` -## The Address Merge in Condor +## The Address Merge in Casper 2.0 -The "Address Merge" in the Condor upgrade of Casper is a foundational shift, impacting how accounts and smart contracts are identified and interacted with. +The "Address Merge" in the Casper 2.0 upgrade of Casper is a foundational shift, impacting how accounts and smart contracts are identified and interacted with. **Global State Transformation:** -Post-Condor, all accounts and smart contract addresses residing within the global state will be automatically migrated to the `AddressableEntity` structure. This means the network itself will recognize and handle these entities using the new format. +Post-Casper 2.0, all accounts and smart contract addresses residing within the global state will be automatically migrated to the `AddressableEntity` structure. This means the network itself will recognize and handle these entities using the new format. **Smart Contract Compatibility Considerations:** diff --git a/src/pages/condor/fee-elimination.md b/src/pages/condor/fee-elimination.md deleted file mode 100644 index b2aed1cea..000000000 --- a/src/pages/condor/fee-elimination.md +++ /dev/null @@ -1,138 +0,0 @@ ---- -title: Fee Elimination in Condor -description: A discussion of the Fee Elimination feature in Casper 2.0 -slug: condor-fee-elimination -date: 2024-07-16T22:00 -authors: [ dylanireland, melpadden ] -tags: [condor, features, tokenomics] -hide_table_of_contents: false ---- -# Fee Elimination on Casper 2.0 - -The Casper 2.0 (aka Condor) network upgrade introduces new options to the way a Casper Network can be configured to handle gas consumption. Scheduled along with the release of Condor into Mainnet is a change in the configuration of the Casper Network to use a model known as **Fee Elimination** for gas payments. The purpose of this article is to introduce this model, and describe how Fee Elimination will affect the behavior of the Casper Network once Condor is released. - - - -## Concepts -Public distributed blockchain networks that support smart contracts generally employ a concept known as "[gas](https://docs.casper.network/concepts/glossary/G/#gas)", which can be thought of as "the ability to do work on-chain". The problem addressed by this mechanism is that **any finite resource on a publicly accessible computer network must be rate-limited**, because a resource made available without limit is a denial of service attack vector. - -Gas is acquired in finite quantities and used to meter and limit resource consumption by individual transactors. A transactor's available gas is consumed by their on-chain usage of computation, data storage, and possibly other chain-specific resources. The public Casper Network and its testnet have used such a gas model since their geneses. - -## Payment, Gas Price, Fees -On Casper 1.x, every transaction is subject to gas consumption. The transactor must specify an amount of token that is converted to gas and used to pay for execution. All gas consumed in each block is allotted to the [proposer](#proposer) of that block in the form of transaction [fees](#fees). The model also includes tables to allow calculation of gas costs, and support for some portion of unconsumed gas to be refunded to transactors. We refer to these concepts using the following terms: - -* **Gas Limit**: An amount of gas, specified by the transactor, at which to cancel a transaction. -* **Gas Price**: The network gas price; the ratio between the cost of 1 unit of gas and 1 mote. -* **Gas Cost**: The amount of gas needed to pay for execution of a transaction. -* **Payment**: The amount of token specified by the transactor to pay for the execution of a transaction. -* **Refund**: All or a portion of the remaining token after gas is purchased for execution. - -> -> The Casper node software supports a number of configurable options which govern how gas may be calculated for a given transaction. A discussion of these is outside the scope of this article. This article is concerned with how these gas costs are dealt with, once calculated. Gas cost options will be the subject of another article. - -## Fee Elimination - -> __Fee Elimination is the strategy of placing temporary holds on transactor balances corresponding to their incurred gas costs, instead of taking those costs from their on-chain balances__. - -Under 1.x, transactors must pay for gas directly from their purse balances. With Fee Elimination on Casper 2.0, a hold is placed on the calculated **Gas Cost** for a configurable period of time known as the **Hold Period**. Fees are therefore not forfeited by transactors, and funds are not spent to execute transactions. - -### Holds - -A hold may be thought of as a temporary freeze on some portion of the funds in an account. The funds never leave the purse upon which the hold is placed, but the owner of those funds may not spend them as long as the hold is in effect, and the funds held are not counted towards the available balance of that purse. - -### Hold Release - -The Casper Node 2.0 software currently supports two hold release models: **Accrued** and **Amortized**. - -> -> The Condor node architecture allows for any time-based function to be developed and used to calculate hold releases. However, for simplicity, this article will deal with the two currently available options. - -#### Accrued -100% of the hold is held until the hold expires. At any given point in the duration of the hold, the effective amount of the hold is 100%. At expiry, all of the funds are again made available to the transactor. - -#### Amortized -The effective amount of the hold is reduced linearly over the course of the hold duration. At any point in the duration of the hold, the effective hold *amount* is proportional to the percentage of the hold *duration* that remains before expiry. - -For example, if: -- A hold of 180 CSPR is placed on an purse which holds 1000 CSPR -- The configured hold period is 90 days -- The hold release model is configured to use amortization - -Then, 9 days after the hold was placed, the current effective amount of the hold may be calculated by - - $\frac{\text{Hold Duration} - \text{Time Elapsed}}{\text{Hold Duration}} = \frac{90 - 9}{90} = 0.9$ - - Multiplied by the hold amount: $180 \times 0.9 = 162$ - -The effective balance in that purse, at that point in time, is $1000 - 162 = 838 \ \text{CSPR}$ - -Over the course of the hold's duration, this calculation gives us: -| Hold Amount | Hold Period | Time Elapsed | Effective Hold | -| --- | --- | --- | --- | -| 180 | 90 | 1 | 178 | -| 180 | 90 | 9 | 162 | -| 180 | 90 | 45 | 90 | -| 180 | 90 | 89 | 2 | - -### More about Gas holds -The duration of gas holds is defined [here](https://github.com/casper-network/casper-node/blob/feat-2.0/resources/production/chainspec.toml#L166) in the [casper-node](https://github.com/casper-network/casper-node) chainspec: - -```toml -# If fee_handling is set to 'no_fee', the system places a balance hold on the payer -# equal to the value the fee would have been. Such balance holds expire after a time -# interval has elapsed. This setting controls how long that interval is. The available -# balance of a purse equals its total balance minus the held amount(s) of non-expired -# holds (see gas_hold_balance_handling setting for details of how that is calculated). -# -# For instance, if gas_hold_interval is 24 hours and 100 gas is used from a purse, -# a hold for 100 is placed on that purse and is considered when calculating total balance -# for 24 hours starting from the block_time when the hold was placed. -gas_hold_interval = '24 hours' -``` - - -### Preventing Exploitation -The ultimate goal of any gas mechanism is to prevent exploitation of a network's resources. Aside from incentivizing validators, there is no fundamental reason to charge users for making transactions if their honesty can be guaranteed. By designing a system that disincentivizes wasteful transactions without charging a fee, resistance to exploitation can be maintained while allowing users to transact freely. - -However, any gas mechanism that doesn't charge users could be vulnerable to denial-of-service attacks. Provided a large enough bankroll, a user could deploy enough transactions to slow the network for the amount of time needed for his or her previous gas payments to unlock, and use these unlocked funds to deploy more transactions, and thus repeat the process ad infinitum. In this way, one could theoretically deploy infinite transactions, cycling through their locked and unlocked balances. - -Attacking the network in this way is a challenge of economic feasibility, much like many other aspects of blockchains. To prevent an attack like this from taking place, it must be made prohibitively expensive to mount such an attack, with little to no incentive to the attacker. Casper's approach involves using a long locking period, combined with 16 second blocktimes. The Casper 2.0 mainnet is slated to roll out with a 30 day locking period, but if increased, the cost to attack would scale linearly. - -Considering a token locking period of 30 days and the **Accrued** unlocking schedule, purchasing just 1% of the total block space of each block would cost: - -$\frac{T}{B} \cdot \frac{G}{100} = 5,346,000 \, \text{CSPR}$ - -Where: - -* `T` = 30 day locking period -* `B` = 16 second blocktime -* `G` = 3300 CSPR block gas limit - -If this proves to be too cheap, the locking period can be extended or the block gas limit increased. - -#### Opportunity Cost -In addition to the necessity to maintain large amounts of CSPR token in order to facilitate a DoS attack as laid out above, any prospective attacker would also incur the opportunity cost of being unable to use their CSPR for the duration of the hold period. Simply put, while their CSPR is locked up attacking the network, it cannot be used to earn rewards by staking. Given the amount of CSPR necessarily involved, and assuming any non-trivial potential annualized return on staking CSPR tokens, the ratio of opportunity cost of mounting such an attack versus the incentive to do so swiftly becomes prohibitively high. - -### Incentivizing Validators - -The Casper Network, like any truly decentralized blockchain, allows nodes to act in their greatest economic interest when it comes to validating transactions. The purpose of this is to incentivize validators as much as possible, encouraging more to come online. Part of the income a validator earns comes from fees paid by a deployer, which entices validators to pick up their transactions. When no fee is paid by the deployer at all, however, another incentive must be provided to the validators. - -Casper's solution is quite simple, but requires understanding how validators are selected and compensated. On Casper Networks, 100 validators are weightily selected to validate all the blocks within the current "[era](https://docs.casper.network/concepts/glossary/E/#era)", which advances every 2 hours. At the end of each era, validator rewards are calculated, put into a pot, and distributed to validators based on the amount of token staked by each. Additionally, a "validator credit" is added to validators who propose populated blocks, proportional to the size of the blocks they propose. This validator credit is then applied to the payout scheme, awarding more of the pot to the hardest-working nodes. Additionally, the validator credit is considered as additional staking weight for the next era when the next [booking block](https://docs.casper.network/concepts/glossary/B/#booking-block) appears. - -## Looking Forward - -By introducing Fee Elimination to the Casper Network, we hope to make transacting with the blockchain more accessible and less financially cumbersome. With this new model, interacting with smart contracts can become effectively free for users, inviting larger audiences to participate in new and exciting protocols. - -As the model is rolled out to Casper's mainnet and testnet, economists and engineers will study its effects on Casper's transaction economy. The data observed will be used to devise proposals and improvements, need they be implemented. - ---- -### Further Reading/Terms - -#### Proposer -A validator proposing a block to the network for execution -[Consensus](https://docs.casper.network/concepts/economics/consensus/) -[Validator](https://docs.casper.network/concepts/glossary/V/#validator) - -#### Fees -A portion of a transaction's gas costs given over to the proposer of the block containing that transaction. -[Gas Concepts](https://docs.casper.network/concepts/economics/gas-concepts/) -[Runtime Economics](https://docs.casper.network/runtime/) -[Validator Rewards](https://docs.casper.network/concepts/glossary/R/#reward) diff --git a/src/pages/condor/hello-blogworld.md b/src/pages/condor/hello-blogworld.md index d47d6824b..cc592a514 100644 --- a/src/pages/condor/hello-blogworld.md +++ b/src/pages/condor/hello-blogworld.md @@ -8,7 +8,7 @@ tags: [hello, new docs, docs-redux] hide_table_of_contents: false --- -Welcome to the new-look Casper documentation portal. We have put a lot of thought into making the documentation more accessible, easier to move around, and easier on the eye. We have stripped away some visual clutter to allow you to focus on the content, and introduced versioning so that you can compare versions to see what has changed. This is obviously with a mind to the Condor changeover, as we thought it made a lot of sense to allow you to move between versions of the docs as you upgrade your systems and applications for Casper v2.0. +Welcome to the new-look Casper documentation portal. We have put a lot of thought into making the documentation more accessible, easier to move around, and easier on the eye. We have stripped away some visual clutter to allow you to focus on the content, and introduced versioning so that you can compare versions to see what has changed. This is obviously with a mind to the Casper 2.0 changeover, as we thought it made a lot of sense to allow you to move between versions of the docs as you upgrade your systems and applications for Casper v2.0. Please enjoy and if you have any comments, suggestions or errata, please email [devrel@casper.network](mailto:devrel@casper.network) with your contribution or query. diff --git a/src/pages/condor/index.md b/src/pages/condor/index.md index 5ea73a3dd..15d3ee3c3 100644 --- a/src/pages/condor/index.md +++ b/src/pages/condor/index.md @@ -1,184 +1,186 @@ --- -title: Condor Release Notes -description: Introduction to the Condor Release Notes -slug: / -date: 2024-07-16T22:00 -authors: [ melpadden ] -tags: [condor] +title: Casper v2.0 Release Notes +description: Introduction to the Casper v2.0 Release +slug: index +date: 2025-04-28T22:00 +authors: [ core-team ] +tags: [v2] hide_table_of_contents: false --- -## Casper v2.0 - Release Notes +# Casper v2.0 - Release Notes -October/November 2024 +##### April/May 2025 We are excited to announce the release of **Casper v2.0 - formerly known as Condor**, which introduces a wide range of new features, improvements, and performance optimizations aimed at enhancing user experience and system efficiency. -**Condor** was the code name given to the pre-release versions of the Casper platform v2.0. Casper 2.0 represents a significant upgrade with a slew of new features as well as optimizations & improvements to existing features. +Casper 2.0 represents a significant upgrade with a slew of new features as well as optimizations & improvements to existing features. --- +# Major Changes at a glance -## Major Changes at a glance +## New Features -### Architectural Changes +| Feature | CEP | +|-------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------| +| [Zug Consensus Protocol](#zug-consensus-protocol) | [Whitepaper](https://arxiv.org/abs/2205.06314) | +| [Multi-VM Support](#multi-virtual-machine-architecture) | | +| [CSPR Burning ](#cspr-burn-function) | [CEP-92](https://github.com/casper-network/ceps/blob/master/text/0092-cspr-burn.md) | +| [Native Events](#contract-level-events) | [CEP-88](https://github.com/casper-network/ceps/blob/master/text/0088-contract-level-messages.md) | +| [FFI Enhancements](#ffi-enhancements) | | +| [New Transaction Model](#new-transaction-model) | | +| [Configurable Delegation Limits](#configurable-delegation-limits) | [CEP-90](https://github.com/casper-network/ceps/blob/master/text/0090-configurable-delegation-limits.md) | +| [Reserved Slots and Custom Fees](#reserved-slots-and-custom-fees) | | +| [Factory Contract Pattern](#factory-contract-pattern) | [CEP-86](https://github.com/casper-network/ceps/blob/master/text/0086-factory-pattern.md) | +| [Contract Access to Auction](#contract-access-to-auction) | | -Casper v2.0 introduces a number of improvements aimed at removing some limitations of the Casper platform and dealing with technical debt. Some of the limitations in Casper 1.X were due to architectural decisions that impeded efforts to introduce new features without breaking existing systems. +### Zug Consensus Protocol +Casper 2.0 introduces a new consensus model known as Zug ([Whitepaper](https://arxiv.org/abs/2205.06314)). The Highway protocol is effective and secure, but resource-heavy. Zug is simpler and leaner than the Highway protocol upon which Casper was originally conceived, and as such allows for improvements in network efficiency and cohesion. This in turn facilitates eventual extension of the validator list, and finer-grained control over block times. -#### Casper Sidecar -In Casper 2.0, the existing RPC service has been moved outside of the node software itself. In Casper 1.X, the RPC service existed as an HTTP server which was built into the node software itself. This meant that the RPC server was tightly coupled to the node software, could not be updated without updating the node software, and executed in the same process space as the node. The result of this was that any extension of the RPC surface necessitated a full network upgrade to deliver. +#### Zug in brief +In every round, the designated leader can sign a proposal message to suggest a block. The proposal also points to an earlier round in which the parent block was proposed. -In Casper 2.0, the JSON RPC has been moved to a separate process, known as the [Sidecar](https://docs.casper.network/operators/setup/casper-sidecar/). This step brings a few improvements: - - It allows for better process isolation and makes it easier to run and debug node processes. - - The Sidecar provides a way to surface Contract Level Events, which opens up some interesting possibilities for node interactions. - - The separation of the Sidecar into a new codebase means that enhancements to the RPC API can now be accomplished without changing the node binary, necessitating a network upgrade. +Each validator then signs an echo message with the proposal's hash. Correct validators only sign one echo per round, so at most one proposal can get echo messages signed by a quorum. A quorum is a set of validators whose total weight is greater than (n + f) / 2, where n is the total weight of all validators and f is the maximum allowed total weight of faulty validators. Thus, any two quorums always have a correct validator in common. As long as n > 3f, the correct validators will constitute a quorum since (n + f) / 2 < n - f. -#### Expanded API Integration Options -Casper 2.0 introduces some extensions to the ways in which you can interact with the Casper Network. +In cases where the network cannot reach consensus, for example, during a partition or failure, the round is skipped without penalizing the network’s performance. In other words, skippable rounds prevent the network from stalling. -#### Binary Port -We have added a brand new RPC option at the binary level, the [Binary Port API](https://github.com/casper-network/condor-info/blob/main/articles/062-binary-port.md). This allows you to communicate with the node without the need for JSON serialization, with improvements in performance. The adoption of a binary RPC protocol brings several benefits to the Casper network: +A detailed discussion of the Zug consensus may be found in the [Casper documentation](http://docs.casper.network/). For a detailed description of the protocol, please refer to the [Zug Whitepaper](https://arxiv.org/abs/2205.06314) --- Reduced Network Congestion: The compact nature of binary encoding leads to smaller message sizes, decreasing bandwidth consumption and network strain. This is particularly valuable in scenarios with high transaction volumes or limited bandwidth. --- Improved Node Responsiveness: While the node still needs to process requests, binary data is often faster to handle than JSON. This can lead to quicker response times from the node, enhancing overall network performance --- Scalability: The efficiency gains from binary communication contribute to the network ability to scale and handle increased transaction loads without sacrificing performance. --- Efficient Data Retrieval: The binary port allows querying raw data directly from the database. This means the node can provide raw bytes from storage without the overhead of deserialization, further contributing to performance improvements, especially for large data requests. +### Multi-Virtual Machine Architecture -Interacting with the Casper Node using the Binary Port option is not the same as using the RPC. The Binary Port allows you to interact with the node on a much lower level, which allows for performance improvements and greater scalability. To avail of these advantages, a smaller, more focused API is exposed. To ease adoption of this interface, the [Casper Binary Port Client](https://github.com/casper-ecosystem/casper-binary-port-client) has been created. This library contains code which serves both as a repository of examples and demonstrations of how to connect to the Binary Port, and also serves as a client library to allow downstream applications to connect to the Binary Port and build functionality on top of it. - -#### Native Events -In Casper 1.X, there was no native option for emitting contract-level events in the node software. The best option available to developers looking to use this kind of functionality was the [Casper Event Standard (CES)](https://github.com/make-software/casper-event-standard) created by Make Software. In Casper 2.0, We have added contract level events as a native citizen of the Casper node infrastructure. This brings some improvements and provides an alternative to the existing Casper Event Standard, which will remain available in the ecosystem. +In Casper 2.0, we are introducing a change to the execution engine which allows transactors to specify which of many possible VMs they wish to target with their transaction. -CES works by writing events to global state, and having clients consistently poll for new event data as it is emitted. While this approach *does* provide the full functionality of events, it is far from optimal. CES suffers from the following inherent limitations: +### CSPR Burn function +In Casper 2.0 users can burn CSPR token ([CEP-92](https://github.com/casper-network/ceps/blob/master/text/0092-cspr-burn.md)). This function is exposed as a `burn` function in the mint contract. -* Higher gas payments: Gas must be spent to store event data in global state. -* Reduced security: It is possible in some cases for a malicious actor to overwrite events on the blockchain, leading to uncertainty about an event's reliability when queried off-chain. -* Permanence: Since with CES events are written directly to global state, they are permanently queryable. Even if the data is deleted or overwritten, the data can be read by providing the [state root hash](https://docs.casper.network/concepts/global-state/) at the block of event emission. -* Resource intensity: Under the CES, events being written to the blockchain causes the global state to increase in size over time. Additionally, more computation is required to write data to the network than to broadcast it, leading to more expensive transactions. +### Contract-Level Events +In Casper 1.X, there was no option for emitting contract-level events in the node software. The best option available to developers looking to use this kind of functionality was the [Casper Event Standard (CES)](https://github.com/make-software/casper-event-standard) created by MAKE and Odra. In Casper 2.0, We have provided host side support for the emission of events. Smart contract developers may still opt to use the CES standard, however, the native implementation is recommended as the go-forward for the contract-level events -In Casper 2.0, native contract-level events have been implemented under [CEP-88](https://github.com/casper-network/ceps/blob/master/text/0088-contract-level-messages.md). CEP-88 establishes a secure, one-way messaging channel between contracts and entities listening to a node's event stream. This standardized method of emitting contract-level events is built into the existing Casper Event Stream, requiring no additional features to Casper's SDKs. +The CEP-88 reference implementation provides the template for contract-level events [CEP-88](https://github.com/casper-network/ceps/blob/master/text/0088-contract-level-messages.md). CEP-88 establishes a secure, one-way messaging channel between contracts and entities listening to a node's event stream. This standardized method of emitting contract-level events is built into the existing Casper Event Stream, requiring no additional features to Casper's SDKs. Messages are passed by the execution engine to the node that sends them out on the event stream after execution is complete and committed. The messages sent out on the event stream contain the identity of the entity that emitted the message, the topic on which the message was emitted, the index of the message within the topic and the actual message payload. The contents of the event itself are *not* stored on-chain, but proofs are stored to allow for verification of events. -Events can be consumed client-side by listening to the event stream of an active node. Casper's SDKs include functions that make it easy to subscribe to an event stream and consume its inbound data. +Events can be consumed client-side by listening to the event stream of an active node. Casper's SDKs include functions that make it easy to subscribe to an event stream and consume its inbound data. -### Zug Consensus Protocol -Casper 2.0 introduces a new consensus model known as Zug ([Whitepaper](https://arxiv.org/abs/2205.06314)). The Highway protocol is effective and secure, but resource-heavy. Zug is simpler and leaner than the Highway protocol upon which Casper was originally conceived, and as such allows for improvements in network efficiency and cohesion. This in turn facilitates eventual extension of the validator list, and finer-grained control over block times. +### FFI Enhancements +Casper 2.0 FFI introduces access to some additional hashing algorithms, as well as providing access to information about the block info, including hash and parent block hash. This also enables increased entropy for the `casper_random_bytes` function, improving the unpredictability of random outputs. -#### Zug in brief -In every round, the designated leader can sign a proposal message to suggest a block. The proposal also points to an earlier round in which the parent block was proposed. +### New Transaction Model +Casper 2.0 introduces the concept of a [Transaction](https://docs.casper.network/transactions-and-transaction-lifecycle/#execution-semantics-transactions), which replaces the existing Deploy concept. Transactions are a new structure that allows several ways for users to make changes to global state. They allow for a variety of Wasm-less interactions with the blockchain. These new interactions are more efficient than Deploys and provide a level of convenience that was not previously available. More more details, see the list of available [Transaction Types](https://docs.casper.network/transactions/#transaction-types). -Each validator then signs an echo message with the proposal's hash. Correct validators only sign one echo per round, so at most one proposal can get echo messages signed by a quorum. A quorum is a set of validators whose total weight is greater than (n + f) / 2, where n is the total weight of all validators and f is the maximum allowed total weight of faulty validators. Thus, any two quorums always have a correct validator in common. As long as n > 3f, the correct validators will constitute a quorum since (n + f) / 2 < n - f. +The existing Deploy model is deprecated as of Casper 2.0, and support will be removed entirely in a future major release. However, Casper 2.0 will continue to accept valid Deploys and will attempt to execute them. Most existing deploys that function today will continue to do so. However, deploys that depend on a data type or FFI function that has been altered or removed will fail to execute. -In cases where the network cannot reach consensus, for example, during a partition or failure, the round is skipped without penalizing the network’s performance. In other words, skippable rounds prevent the network from stalling. +### Configurable Delegation Limits +Casper 2.0 enables validators to set optional minimum and maximum delegation limit, in accordance with [CEP-90](https://github.com/casper-network/ceps/blob/master/text/0090-configurable-delegation-limits.md). -A detailed discussion of the Zug consensus may be found both in the [Casper documentation](http://docs.casper.network/) and in the [Condor Blog](http://docs.casper.network/blog). For a detailed description of the protocol, please refer to the [Zug Whitepaper](https://arxiv.org/abs/2205.06314) +### Reserved Slots and Custom Fees -### New Transaction Model -Casper 2.0 introduces the concept of a [Transaction](https://docs.casper.network/transactions-and-transaction-lifecycle/#execution-semantics-transactions), which replaces the existing Deploy concept. Transactions are a new structure that allows several ways for users to make changes to global state. They allow for a variety of Wasm-less interactions with the blockchain. These new interactions are more efficient than Deploys and provide a level of convenience that was not previously available. More more details, see the list of available [Transaction Types](https://docs.casper.network/transactions/#transaction-types). +Casper 2.0 allows validators to reserve slots on their node for specific delegators, and configure custom fee percentages for those reserved slots. This feature allows a validator to provide bespoke service to contracted parties. -The existing Deploy model is deprecated as of Condor, and support will be removed entirely in a future major release. However, Condor will continue to accept valid Deploys and will attempt to execute them. Most existing deploys that function today will continue to do so. However, deploys that depend on a data type or FFI function that has been altered or removed will fail to execute. +### Factory Contract Pattern -#### Account/Contract unification -> -> N.B. This feature is not activated yet. See below for details +Casper 2.0 introduces the [CEP-86](https://github.com/casper-network/ceps/blob/master/text/0086-factory-pattern.md) Factory Contract Pattern, allowing smart contract developers to more optimally configure the installation and invocation of their smart contracts. -Casper 2.0 introduces significant changes in the representation and management of accounts and smart contracts, through the introduction of the `AddressableEntity` type. This new structure replaces the separate `AccountHash` and `ContractHash` used in Casper 1.x, bringing a unified approach to interaction with entities on the network. Contracts can now hold and manage funds directly through associated purses, similar to user accounts. They can also manage their own keys, enabling more sophisticated access control. +### Contract Access to Auction -There are three fundamental types of Addressable Entity: -- System Contracts -- User Accounts -- Deployed Smart Contracts +In Casper 2.0, smart contracts can now interact directly with the system auction, enabling on-chain applications to stake CSPR, earn rewards, and integrate staking yields into their native economic models. -##### Account Unification upgrade path -This feature is a fundamental change to the way that smart contracts interact with the network and each other. Moving to this feature requires that applications using smart contracts must analyse, rework and retest their code in order to ensure that their applications will work as intended. Therefore, the initial release of Condor will not turn this feature on. At some point in the future, once agreed by the people participating in the network, an update to the network will be issued which activates this feature. This step will not be reversible. +## Architectural Changes -### Fee Elimination +Casper v2.0 introduces a number of improvements aimed at removing some limitations of the Casper platform and dealing with technical debt. Some of the limitations in Casper 1.X were due to architectural decisions that impeded efforts to introduce new features without breaking existing systems. -Scheduled along with the release of Caper 2.0 is a change in the configuration of the Casper Network to use a model known as **Fee Elimination** for gas payments. +### Casper Sidecar +In Casper 2.0, the existing RPC service has been moved outside of the node software itself. In Casper 1.X, the RPC service existed as an HTTP server which was built into the node software itself. This meant that the RPC server was tightly coupled to the node software, could not be updated without updating the node software, and executed in the same process space as the node. The result of this was that any extension of the RPC surface necessitated a full network upgrade to deliver. -> __Fee Elimination is the strategy of placing temporary holds on transactor balances corresponding to their incurred gas costs, instead of taking those costs from their on-chain balances__. +In Casper 2.0, the JSON RPC has been moved to a separate application, known as the [Sidecar](https://docs.casper.network/operators/setup/casper-sidecar/). This step brings a few improvements: + - It allows for better process isolation and makes it easier to run and debug node instances. + - The Sidecar provides a way to interact with Contract-Level Events produced by node, which opens up some interesting possibilities for node interactions. + - The separation of the Sidecar into a new codebase means that enhancements to the RPC API can now be accomplished without changing the node binary, necessitating a network upgrade. -Under 1.x, transactors must pay for gas directly from their purse balances. With Fee Elimination on Casper 2.0, a hold is placed on the calculated **Gas Cost** for a configurable period of time known as the **Hold Period**. Fees are therefore not forfeited by transactors, and funds are not spent to execute transactions. The scheduled release of funds placed under a hold in this way is governed by the configuration of the chainspec. There are two options: +### Binary Port +We have added a brand new RPC option at the binary level, the [Binary Port API](https://github.com/casper-network/condor-info/blob/main/articles/062-binary-port.md). This allows you to communicate with the node without the need for JSON serialization, with improvements in performance. The adoption of a binary RPC protocol brings several benefits to the Casper network: -#### Accrued -100% of the hold is held until the hold expires. At any given point in the duration of the hold, the effective amount of the hold is 100%. At expiry, all of the funds are again made available to the transactor. +- Reduced Network Congestion: The compact nature of binary encoding leads to smaller message sizes, decreasing bandwidth consumption and network strain. This is particularly valuable in scenarios with high transaction volumes or limited bandwidth. +- Improved Node Responsiveness: While the node still needs to process requests, binary data is often faster to handle than JSON. This can lead to quicker response times from the node, enhancing overall network performance +- Scalability: The efficiency gains from binary communication contribute to the network ability to scale and handle increased transaction loads without sacrificing performance. +- Efficient Data Retrieval: The binary port allows querying raw data directly from the database. This means the node can provide raw bytes from storage without the overhead of deserialization, further contributing to performance improvements, especially for large data requests. -#### Amortized -The effective amount of the hold is reduced linearly over the course of the hold duration. At any point in the duration of the hold, the effective hold *amount* is proportional to the percentage of the hold *duration* that remains before expiry. +Interacting with the Casper Node using the Binary Port option is not the same as using the RPC. The Binary Port allows you to interact with the node on a much lower level, which allows for performance improvements and greater scalability. To avail of these advantages, a smaller, more focused API is exposed. To ease adoption of this interface, the [Casper Binary Port Client](https://github.com/casper-ecosystem/casper-binary-port-client) has been created. This library contains code which serves both as a repository of examples and demonstrations of how to connect to the Binary Port, and also serves as a client library to allow downstream applications to connect to the Binary Port and build functionality on top of it. + +### SSE Streams Combined +In Casper 2.0, the 3 event streams that exist in Casper 1.x (`main`, `deploys` and `sigs`) have been merged into a single event stream for more convenient consumption of events + +### Validator Rewards +In Casper 2.0, validator rewards are calculated differently than they were in 1.5.x. They are based on a combination of Block proposal +Signature creation and Signature publication. A detailed explanation of the new methodology is [available here](/condor/validator-rewards.md). + +## Upcoming Features/Updates + +Following the release of Casper 2.0 to mainnet, the following features will be activated for testing and subsequent release to mainnet in minor-version releases of the Casper protocol and node: ### Virtual Machine 2.0 -In Casper 2.0, we are introducing a change to the execution engine which allows transactors to specify which of many possible VMs they wish to target with their transaction. The current Casper VM will remain, and for the initial 2.0 release the new VM will not be enabled. We expect to enable VM 2.0 in a subsequent release cycle. +Building on Casper 2.0's new Multi-VM Architecture, Casper 2.1 will see the activation of the first additional virtual machine on Casper Network, "VM 2.0". -Among the improvements in VM 2.0 are: +Among the improvements in VM 2.0 are: - Removal of URefs. URefs are complicated, hard to track, and ultimately unnecessary for most contracts. - An improved Smart Contract programming model with an emphasis on high-level logic in place of low-level implementation details, leading to improved maintainability and more concise code. -- Backwards compatibility: VM2.0 contracts can call VM 1.X contracts, allowing the two systems to coexist during the transition period. +- Backwards compatibility: VM2.0 contracts can call VM 1.X contracts, allowing the two systems to coexist during the transition period. - Transferable entry points, which allow sending tokens directly to contract entry points without needing a custom session code. - VM2.0 code will all be valid Rust code, which allows it to execute without a complex system of test infrastructure and improves testability. - Implementation of some features which are familiar from other chains such as the `payable` keyword - Schema generation from smart contracts, paving the way for improvements in tooling, discoverability and maintainability. - Improved Smart Contract upgrade process. -### FFI Enhancements -Casper 2.0 FFI introduces access to some additional hashing algorithms, as well as providing access to information about the block info, including hash and parent block hash. +### Fee Elimination -### CSPR Burn function -In Casper 2.0 users can burn CSPR token. This function is exposed as a `burn` function in the mint contract. +Subject to a governance vote by the Casper Network validators on behalf of their delegators, configuration changes in a future minor release of Casper 2.0 will activate a gas fee model known as **Fee Elimination**. -This can be done through This represents a significant change to the tokenomics of Casper 1.X ->TODO: More details on this (talk to Ed) +Fee Elimination is the strategy of placing temporary holds on transactor balances corresponding to their incurred gas costs, instead of taking those costs from their on-chain balances. ---- +Under 1.x, transactors must pay for gas directly from their purse balances. With Fee Elimination on Casper 2.0, a hold is placed on the calculated **Gas Cost** for a configurable period of time known as the **Hold Period**. Fees are therefore not forfeited by transactors, and funds are not spent to execute transactions. The scheduled release of funds placed under a hold in this way is governed by the configuration of the chainspec. There are two options: + +#### Accrued +100% of the hold is held until the hold expires. At any given point in the duration of the hold, the effective amount of the hold is 100%. At expiry, all of the funds are again made available to the transactor. + +#### Amortized +The effective amount of the hold is reduced linearly over the course of the hold duration. At any point in the duration of the hold, the effective hold *amount* is proportional to the percentage of the hold *duration* that remains before expiry. -### Deprecations -The get_state_item RPC endpoint, while not yet deprecated, will be deprecated in a future release cycle uin favour of the more flexible get_global_state endpoint. This endpoint was initially deprecated, but was left in to the v2.0 release to maintain backwards compatibility while downstream development teams upgrade their code to reflect this change. For more details please see [here](https://github.com/casper-network/condor-info/discussions/2). +--- --- -### Upcoming Features/updates -- Activation of the Contract/Account unification feature. -- Activation of Virtual Machine 2.0. -- Deprecation of the get_state_item endpoint. +## Deprecations +The `get_state_item` RPC endpoint is deprecated in favour of the more flexible `get_global_state` endpoint. The deprecated `get_state_item` endpoint will be removed in a future release. Downstream development teams can continue to use it in the interim; however, it is recommended that they upgrade their code to reflect this change before the deprecated endpoint is removed. For more details please see [here](https://github.com/casper-network/condor-info/discussions/2). --- -### Further Reading -#### Official Documentation -For reference documentation on Casper including Condor/v2.0, please refer to the complete documentation available [here](http://docs.casper.network). Worth noting is that we have implemented documentation versioning, i.e. you may select the version of the documentation you wish to view from a drop-down in the top right of the navigation bar. This allows you to compare some topics with their former version to see what has changed. all Condor-related information is to be found in the v2.0.0 of the documentation. +## Comprehensive List of Casper 2.0 Updates + +A detailed list of all changes, updates, and deprecations introduced in Casper 2.0 is available on this [page](./all-prs.md). -#### Blog Articles and long-form discussions -We have created a Blog area which exists alongside our documentation portal. [Casper blog](http://docs.casper.network/blog). These articles are intended to serve as a technical resource for those getting started with the features of Casper, and Condor. As such, they take a more long-form, narrative approach to discussing technical issues. You can filter for Condor-related articles by specifying the "condor" tag. [https://docs.casper.network/blog/tags/condor/](https://docs.casper.network/blog/tags/condor/) +--- + +## Official Documentation +For reference documentation on Casper including Casper v2.0, please refer to the complete documentation available [here](http://docs.casper.network). Worth noting is that we have implemented documentation versioning, i.e. you may select the version of the documentation you wish to view from a drop-down in the top right of the navigation bar. This allows you to compare some topics with their former version to see what has changed. -#### Support Channels +## Support Channels To raise a request for an article or blog post, or to notify us of errata or omissions, use the Issues feature in the Casper Documentation site. [https://github.com/casper-network/docs-redux/issues](https://github.com/casper-network/docs-redux/issues) You can use any of our official channels to ask for more information or raise an issue. -| Description | Type | Link | -| ----- | ----- | ------ | -| Official Casper Support | Telegram | https://t.me/casperblockchainsupport | -| Condor-Specific Support | Telegram | https://t.me/CSPRCondor | -| | | | +| Description | Type | Link | +|--------------------------|----------|--------------------------------------| +| Official Casper Support | Telegram | https://t.me/casperblockchainsupport | + -Thank you for using Casper v2.0 - Condor! We hope these new features and improvements enhance your experience. Please feel free to share feedback or report issues through our support channels. +Thank you for using Casper v2.0! We hope these new features and improvements enhance your experience. Please feel free to share feedback or report issues through our support channels. Thank you, **Casper Development Team** --- - -## References/Further Reading - -- [Addressable Entity](./addressable-entity) -- [Fee Elimination](./fee-elimination) -- [RPC Changes](./rpc-changes) -- [Setting up a local Condor network](./setting-up-condor-local) -- [Transactions](./transactions) -- [Validator Rewards](./validator-rewards) -- [Zug Consensus](./zug) - diff --git a/src/pages/condor/jsonrpc-comp/state_get_balance.md b/src/pages/condor/jsonrpc-comp/state_get_balance.md index 754f9d540..938b22415 100644 --- a/src/pages/condor/jsonrpc-comp/state_get_balance.md +++ b/src/pages/condor/jsonrpc-comp/state_get_balance.md @@ -1,8 +1,6 @@ ## state_get_balance The [state_get_balance](./rpc-2.0/state_get_balance.json) method does not have any changes to parameters or return types. However, it is important to note that the balance reflected in the return value now reflects all active holds on that balance. -[More on balances, and fee elimination in Condor](../005-fee-elimination.md) - diff --git a/src/pages/condor/rpc-changes.md b/src/pages/condor/rpc-changes.md index e5f2ffbec..067d76885 100644 --- a/src/pages/condor/rpc-changes.md +++ b/src/pages/condor/rpc-changes.md @@ -4,7 +4,7 @@ description: A discussion of the changes to the JSON RPC in Casper v2.0 slug: condor-jsonrpc date: 2024-10-06T18:00 authors: [ melpadden ] -tags: [condor, json-rpc] +tags: [condor, casper2.0, json-rpc] hide_table_of_contents: false --- @@ -22,7 +22,7 @@ Since the network's inception, the Casper node has exposed an API over HTTP, usi ### Casper Sidecar -One of the major changes in the Condor upgrade is the new [casper-sidecar](https://github.com/casper-network/casper-sidecar). The sidecar runs in a **dedicated** process and and is bound to a node's binary port and/or SSE port. The sidecar assumes **all** responsibility for running the JSON-RPC server and exposing the JSON-RPC endpoints to the internet, i.e. the node software itself no longer exposes a JSON RPC API to the consumer - this job is now done by the sidecar. +One of the major changes in the Casper 2.0 upgrade is the new [casper-sidecar](https://github.com/casper-network/casper-sidecar). The sidecar runs in a **dedicated** process and and is bound to a node's binary port and/or SSE port. The sidecar assumes **all** responsibility for running the JSON-RPC server and exposing the JSON-RPC endpoints to the internet, i.e. the node software itself no longer exposes a JSON RPC API to the consumer - this job is now done by the sidecar. Because the sidecar runs in a dedicated process, it is possible to run a sidecar upon a different machine to the node. However in practice, most node operators will likely operate a sidecar process on the same machine as the node. Furthermore an operator's deployment setup is opaque to to a DApp that interacts with the JSON-RPC API via an SDK. @@ -33,11 +33,11 @@ There are several benefits to moving the JSON-RPC API to a sidecar: ### Node Binary Port -The Casper 2.0 Node now exposes a pure Binary Port API, which allows connection over TCP/IP and pure binary serialization for your remote procedure calls. Depending on your use case, you may be interested in considering this option for interacting with Casper Condor. In general, the binary port offers better performance and features compared to the JSON RPC. A detailed discussion of the Binary Port will be contained in a future article. It is anticipated that all SDKs will be updated so as to support the new Binary Port API. +The Casper 2.0 Node now exposes a pure Binary Port API, which allows connection over TCP/IP and pure binary serialization for your remote procedure calls. Depending on your use case, you may be interested in considering this option for interacting with Casper 2.0. In general, the binary port offers better performance and features compared to the JSON RPC. A detailed discussion of the Binary Port will be contained in a future article. It is anticipated that all SDKs will be updated so as to support the new Binary Port API. #### JSON-RPC Differences -The biggest immediately obvious change in the RPC is the change in name from deploy to transaction. Casper 1.X used the name "deploy" for a unit of work submitted to the blockchain, in Condor a unit of work is now renamed as "Transaction". +The biggest immediately obvious change in the RPC is the change in name from deploy to transaction. Casper 1.X used the name "deploy" for a unit of work submitted to the blockchain, in Casper 2.0 a unit of work is now renamed as "Transaction". ### JSON-RPC Schema Definitions diff --git a/src/pages/condor/setting-up-condor-local.md b/src/pages/condor/setting-up-condor-local.md index 9693bf424..622e0578e 100644 --- a/src/pages/condor/setting-up-condor-local.md +++ b/src/pages/condor/setting-up-condor-local.md @@ -1,16 +1,16 @@ --- -title: Setting Up a Local Casper Condor Network for Development -description: How to set up a local Casper Condor Network for Development using CCTL and the Rust Casper client. -slug: condor-local-setup +title: Setting Up a Local Casper v2.0 Network for Development +description: How to set up a local Casper v2.0 Network for Development using NCTL and the Rust Casper client. +slug: local-setup date: 2024-07-16T18:00 -authors: [ sczembor ] -tags: [condor, setup] +authors: [ sczembor,jiu-hong ] +tags: [v2, setup] hide_table_of_contents: false --- -# Setting Up a Local Casper Condor Network for Development +# Setting Up a Local Casper 2.0 Network for Development -Casper Condor is a major upgrade to the Casper Network. This guide walks you through creating a local Condor environment for testing and development using Dockerized NCTL and the Rust Casper Client. +Casper 2.0 is a major upgrade to the Casper Network. This guide walks you through creating a local environment for testing and development using Dockerized NCTL and the Rust Casper Client. @@ -28,44 +28,108 @@ NCTL is your tool for managing the Casper network. We'll use a Dockerized versio cd casper-nctl-docker ``` -2. **Switch to the Condor Branch:** +2. **Switch to the 2.0 Branch:** ```bash git checkout feat-2.0 ``` + + Modify the casper-node's branch to dev inside casper-nctl-condor.Dockerfile + + ``` + ... + RUN git clone -b v2.0.0 https://github.com/casper-network/casper-node.git ~/casper-node + ... + ``` + 3. **Clone the `casper-node` Repository:** ```bash git clone https://github.com/casper-network/casper-node.git cd casper-node - git checkout release-2.0.0-rc3 + git checkout v2.0.0 ``` Ensure you're in the `casper-nctl-docker` directory when running this command 4. **Build the Docker Image:** ```bash - docker build -f casper-nctl-condor.Dockerfile -t casper-nctl:rc3 . + docker build -f casper-nctl-condor.Dockerfile -t casper-nctl:v2.0.0 . ``` - This may take a while + Ensure you're in the `casper-nctl-docker` directory when running this command + + This may take a while. 5. **Verify the Image:** ```bash docker image ls ``` - Look for the `casper-nctl:rc3` image in the output + Look for the `casper-nctl:v2.0.0` image in the output ``` - REPOSITORY TAG IMAGE ID CREATED SIZE - casper-nctl rc3 9fd1e7b25d42 40 hours ago 433MB + REPOSITORY TAG IMAGE ID CREATED SIZE + casper-nctl v2.0.0 decdc9495181 3 minutes ago 442MB ``` 6. **Start the NCTL Docker Container:** - * **Docker Compose (Recommended):** If you're using the `docker-compose.yml` file, make sure that the `image` under the `mynctl` service points to `casper-nctl:rc3`. Then run `docker-compose up`. + + There are two ways to start the NCTL Docker containers. + Docker Compose brings up an additional NCTL Explorer container, while the manual command does not. + * **Docker Compose (Recommended):** + + If you're using the `docker-compose.yml` file, make sure that the `image` under the `casper-nctl` service points to the image you just built (`casper-nctl:v2.0.0`) from the previous step, like this: + + docker-compose.yml + + ```yaml + ... + services: + casper-nctl: + image: casper-nctl:v2.0.0 + container_name: casper-nctl + ... + ``` + + Start the containers. This will start an NCTL container and an NCTL Explorer container. + + ```bash + docker-compose up + ``` + "Ensure you're in the `casper-nctl-docker` directory when running this command. + + * **Manual Docker Command:** + + Below is the command to start an NCTL container named `mynctl`. + ```bash - docker run -d --name mynctl -p 11101:11101 casper-nctl:rc3 + docker run -d --name mynctl -p 11101:11101 casper-nctl:v2.0.0 ``` - Once it is up and running you should see that there are 5 nodes and 5 sidecars running and another 5 nodes and 5 sidecars that are inactive: - ``` + +7. **Activate nctl-\* commands:** + + In a Linux or macOS terminal, run: + ```bash + source nctl-activate.sh + ``` + In a Powershell terminal, run: + ``` + . .\nctl-activate.ps1 + ``` + Ensure you're in the `casper-nctl-docker` directory when running this command. + + + +7. **Confirm the nctl status** + + ```bash + nctl-status + ``` + + Once it is up and running issue the command `nctl-status` then you should see that there are 5 nodes and 5 sidecars running and another 5 nodes and 5 sidecars that are inactive: + +
+ Click me + + ```json casper-nctl | validators-1:casper-net-1-node-1 RUNNING pid 996, uptime 0:00:03 casper-nctl | validators-1:casper-net-1-node-2 RUNNING pid 998, uptime 0:00:03 casper-nctl | validators-1:casper-net-1-node-3 RUNNING pid 1002, uptime 0:00:03 @@ -86,16 +150,17 @@ NCTL is your tool for managing the Casper network. We'll use a Dockerized versio casper-nctl | validators-3:casper-net-1-sidecar-7 STOPPED Not started casper-nctl | validators-3:casper-net-1-sidecar-8 STOPPED Not started casper-nctl | validators-3:casper-net-1-sidecar-9 STOPPED Not started - ``` + ``` +
## Part 2: Casper Client (Rust) -To interact with your local Condor network, we'll use the Casper Client. You have two options for using the Casper Client: +To interact with your local Casper 2.0 network, we'll use the Casper Client. You have two options for using the Casper Client: **Option 1: Using the Casper Client from the Docker Image** -* The `casper-nctl:rc3` Docker image already includes the `casper-client`. +* The `casper-nctl:v2.0.0` Docker image already includes the `casper-client`. * You can skip the next two steps if you want to use the pre-installed client. **Option 2: Using Your Local Casper Client** @@ -106,75 +171,104 @@ To interact with your local Condor network, we'll use the Casper Client. You hav cd casper-client-rs ``` -2. **Switch to the Condor-Compatible Branch (Optional):** +2. **Switch to the Casper 2.0-Compatible Branch (Optional):** ```bash - git checkout feat-track-node-2.0 + git checkout v3.0.1 ``` -3. **Activate NCTL scripts:** +3. **Build casper-client:** + + Prerequisite: Install rustup + ```bash - source nctl-activate.sh casper-nctl + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ``` -4 **Test Your Setup:** + Build the Casper Client: + ```bash - nctl-view-node-status + cargo build --release ``` - This command should return the status of all the nodes running in your local network, indicating a successful setup. The output should look similar to this: + +4. **Test Your Setup:** + ```bash + casper-client get-block -n http://localhost:11101 ``` - ------------------------------------------------------------------------------------------------------------------------------------ - 2024-07-10T15:31:42.181535 [INFO] [2043] NCTL :: node #1 :: status: + + This command should return the status of all the nodes running in your local network, indicating a successful setup. The output should look similar to this: + +
+ Click me + + + ```json { - "api_version": "2.0.0", - "peers": [ - { - "node_id": "tls:05b5..7b39", - "address": "127.0.0.1:22103" - }, - { - "node_id": "tls:527e..37d2", - "address": "127.0.0.1:22105" - }, - { - "node_id": "tls:b1d0..870f", - "address": "127.0.0.1:22102" - }, - { - "node_id": "tls:dcdf..e348", - "address": "127.0.0.1:22104" + "jsonrpc": "2.0", + "id": -2049464589362040719, + "result": { + "api_version": "2.0.0", + "block_with_signatures": { + "block": { + "Version2": { + "hash": "9e7c32760b6fefcd4e1a579a9dce0835e1d564e5a5aedaf06911d76f64af9e0c", + "header": { + "parent_hash": "ecd94fd34417032d4e7b77b0dce3c48164398d1946d95a57b50c73eaee59cf90", + "state_root_hash": "ad53786aed35ef7e5a608552329ff0ab33055c4e4bf6764124a3603fce49990a", + "body_hash": "18937e8cf4338b5f5fdc2581f8d7d6a47de736d2799e3f3bc9b0ff9f1e7cf106", + "random_bit": false, + "accumulated_seed": "1ce9cae18eccdea58c1a6b22474c6f98e4a4bf17d53a306390f528a18d264f59", + "era_end": null, + "timestamp": "2025-04-23T03:41:03.130Z", + "era_id": 94, + "height": 1028, + "protocol_version": "2.0.0", + "proposer": "0190664e16a17594ed2d0e3c279c4cf5894e8db0da15e3b91c938562a1caae32ab", + "current_gas_price": 1, + "last_switch_block_hash": "db222beace01c5c624cbd84a62c92feb0a23f3e0c3372dd5cba9e7ce51db63cf" + }, + "body": { + "transactions": {}, + "rewarded_signatures": [ + [ + 248 + ], + [ + 0 + ], + [ + 0 + ] + ] + } + } + }, + "proofs": [ + { + "public_key": "01509254f22690fbe7fb6134be574c4fbdb060dfa699964653b99753485e518ea6", + "signature": "01fbe5ca7584cd517b51cc2ee1c79c055eaccb523470b5f460f23c365d476dabf40d62d753b0f1c1003568dd555b64848cda2029d3f31bf9ee548ea6aefca72506" + }, + { + "public_key": "0190664e16a17594ed2d0e3c279c4cf5894e8db0da15e3b91c938562a1caae32ab", + "signature": "014ebd115e50169c79dd469f6118df18869232839bc07c3cff079837657ba9d31d913d367da886442f1532fbef66e86985d693346037b4863ef0ec90c1476e3403" + }, + { + "public_key": "01c867ff3cf1d4e4e68fc00922fdcb740304def196e223091dee62012f444b9eba", + "signature": "01d183f46c1a0af713c2f0629ea0436cb37c04ef300f8c25f84384607a91817e869956ccf47a4902f9d51c173cb8c3f6949391c792e343bc93968274b4c692e50c" + }, + { + "public_key": "01f58b94526d280881f79744effebc555426190950d5dfdd2f8aaf10ceaec010c6", + "signature": "01308ad12b69bc92497ad3b9d169d685a436ee4194a0e291a14e022bc0e70e5ee881a2f0be5301752ad9888a790bd9c4a7cbff1481df472166f3dce29df9ec9d00" + }, + { + "public_key": "01fed662dc7f1f7af43ad785ba07a8cc05b7a96f9ee69613cfde43bc56bec1140b", + "signature": "01bac3f6529816492daaa019a4ecf5bd3ef68757a266e4b4a0382a56268fdbc86a65ec037feb87cda554e244f25c3c9e525961a1a660b39ebd6f1aee2e64ce0006" + } + ] + } } - ], - "build_version": "2.0.0-d5c0d238f", - "chainspec_name": "casper-net-1", - "starting_state_root_hash": "2d92cf9f3ff3eb70f40be598b61cbf747c1b5ea67df9596d84a88c5458028a80", - "last_added_block_info": { - "hash": "c1056e0e5978e725777f48e4488462d7794e6547f25b1fbcc4ba261ca2864395", - "timestamp": "2024-07-10T15:31:38.601Z", - "era_id": 19, - "height": 205, - "state_root_hash": "6c5502c3443f526e943fa5a5421349e938464c063c8dd0ada616c997e3805612", - "creator": "0190664e16a17594ed2d0e3c279c4cf5894e8db0da15e3b91c938562a1caae32ab" - }, - "our_public_signing_key": "01fed662dc7f1f7af43ad785ba07a8cc05b7a96f9ee69613cfde43bc56bec1140b", - "round_length": "4s 96ms", - "next_upgrade": null, - "uptime": "13m 15s", - "reactor_state": "Validate", - "last_progress": "2024-07-10T15:18:26.354Z", - "available_block_range": { - "low": 0, - "high": 205 - }, - "block_sync": { - "historical": null, - "forward": null - }, - "latest_switch_block_hash": "5192198c783ed8b66e206c37b34c5e268c84be2f4b78dd9899eecf5f37fb9f68" } - . - . - . ``` +
## Troubleshooting @@ -182,18 +276,18 @@ To interact with your local Condor network, we'll use the Casper Client. You hav **Solution:** 1. Go to the `casper-node/ci/ci.json` file. -2. Change the `casper-sidecar` branch under `external_deps` from: +2. Change the `casper-sidecar` branch under `external_deps` to the casper-node's compatible branch: ```json - "branch": "feat-2.0" + "branch": "xxx" ``` to: ```json - "branch": "release-1.0.0rc2_node-2.0.0rc3" + "branch": "v1.0.4" ``` - This is because the `casper-node` we are using is `release-2.0.0-rc3`. The required combination of versions of `casper-sidecar` and `casper-node` may change in the future (rc4 etc.). + Make sure that `casper-node` and `casper-sidecar` are compatible. -3. Rebuild the NCTL image: `docker build -f casper-nctl-condor.Dockerfile -t casper-nctl:rc3 .` +3. Rebuild the NCTL image: `docker build -f casper-nctl-condor.Dockerfile -t casper-nctl:v2.0.0 .` ## Using the Casper Client @@ -202,7 +296,9 @@ To interact with your local Condor network, we'll use the Casper Client. You hav ## Accessing the NCTL Block Web Explorer -The NCTL Docker setup includes a web-based block explorer. You can access it in your browser at: +This is only available if you started the container using `docker compose up`. + +The NCTL Docker setup using docker compose includes a web-based block explorer. You can access it in your browser at: ``` http://127.0.0.1:8080 @@ -212,8 +308,8 @@ This allows you to visually explore blocks, transactions, and other details of y ## Important Notes -* **Work in Progress:** Condor compatibility is still evolving. Some features may be unstable or incomplete. +* **Work in Progress:** Casper 2.0 compatibility is still evolving. Some features may be unstable or incomplete. ## Additional Tips -* **Community Resources:** Join the [Casper Telegram](https://t.me/CSPRCondor) for help and discussion. \ No newline at end of file +* **Community Resources:** Join the [Casper Telegram](https://t.me/CSPRCondor) or [Casper Discord](https://discord.gg/caspernetwork) for help and discussion. \ No newline at end of file diff --git a/src/pages/condor/transactions.md b/src/pages/condor/transactions.md index 6d179550c..814081e83 100644 --- a/src/pages/condor/transactions.md +++ b/src/pages/condor/transactions.md @@ -4,7 +4,7 @@ description: A discussion of the new Transaction data type slug: condor-transaction date: 2024-10-03T18:00 authors: [ asladeofgreen ] -tags: [condor, smartcontracts] +tags: [condor, casper2.0, smartcontracts] hide_table_of_contents: false --- diff --git a/src/pages/condor/validator-rewards.md b/src/pages/condor/validator-rewards.md index d656e6aad..6ee4d3cd3 100644 --- a/src/pages/condor/validator-rewards.md +++ b/src/pages/condor/validator-rewards.md @@ -4,7 +4,7 @@ description: A discussion of validator rewards under Casper 2.0 slug: condor-validator-rewards date: 2024-08-20T18:00 authors: [ melpadden, alexanderlimonov ] -tags: [condor, validators] +tags: [condor, casper2.0, validators] hide_table_of_contents: false --- diff --git a/src/pages/condor/zug.md b/src/pages/condor/zug.md index 49f5b873e..efa424bb2 100644 --- a/src/pages/condor/zug.md +++ b/src/pages/condor/zug.md @@ -4,7 +4,7 @@ description: A discussion of the Zug consensus model slug: condor-zug date: 2024-10-03T18:00 authors: [ alexanderlimonov ] -tags: [condor, consensus] +tags: [condor, casper2.0, consensus] hide_table_of_contents: false --- diff --git a/versioned_docs/version-1.5.X/developers/cli/opcode-costs.md b/versioned_docs/version-1.5.X/developers/cli/opcode-costs.md index 3eacfe42d..a17766e90 100644 --- a/versioned_docs/version-1.5.X/developers/cli/opcode-costs.md +++ b/versioned_docs/version-1.5.X/developers/cli/opcode-costs.md @@ -6,8 +6,6 @@ title: OpCode Costs Tables The following tables outline the cost, in motes, for a given operation on Casper's Mainnet. If you are building for a private network or other instance of Casper, you will need to verify these costs in the associated `chainspec.toml`. -More information on `chainspec`s for private networks can be found [here](/operators/setup-network/chain-spec.md) - :::note All costs in this table are in [motes](/concepts/glossary/M/#motes), not CSPR, and the corresponding chainspec is [here](https://github.com/casper-network/casper-node/blob/53dd33865c2707c29284ccc0e8485f22ddd6fbe3/resources/production/chainspec.toml#L129). diff --git a/versioned_docs/version-1.5.X/operators/setup-network/chain-spec.md b/versioned_docs/version-1.5.X/operators/setup-network/chain-spec.md deleted file mode 100644 index 2c7590480..000000000 --- a/versioned_docs/version-1.5.X/operators/setup-network/chain-spec.md +++ /dev/null @@ -1,261 +0,0 @@ ---- -title: The Chainspec ---- - -# The Blockchain Specification {#the-chain-specification} - -The blockchain specification, or `chainspec`, is a collection of configuration settings describing the network state at genesis and upgrades to basic system functionality (including system contracts and gas costs) occurring after genesis. This page describes each field in the chainspec, based on [version 1.5.2](https://github.com/casper-network/casper-node/blob/release-1.5.2/resources/production/chainspec.toml) of the Casper node. The chainspec can and should be customized for private networks. The chainspec attributes are divided into categories based on what they are configuring. - -## protocol - -These settings describe the active protocol version. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|version | The Casper node protocol version. | '1.5.2'| -|hard_reset | When set to true, clear blocks and deploys back to the switch block (the end of the last era) just before the activation point. Used during the upgrade process to reset the network progress. In most cases, this setting should be true.| true| -|activation_point | The protocol version that should become active.

If it is a timestamp string, it represents the timestamp for the genesis block. This is the beginning of Era 0. By this time, a sufficient majority (> 50% + F/2 β€” see the `finality_threshold_fraction` below) of validator nodes must be running to start the blockchain. This timestamp is also used in seeding the pseudo-random number generator used in the contract runtime for computing the genesis post-state hash.

If it is an integer, it represents an era ID, meaning the protocol version becomes active at the start of this era. | 9100| - - -## network - -The following settings configure the networking layer. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|name | Human readable network name for convenience. The state_root_hash of the genesis block is the true identifier. The name influences the genesis hash by contributing to seeding the pseudo-random number generator used in the contract runtime for computing the genesis post-state hash. | 'casper'| -|maximum_net_message_size | The maximum size of an acceptable networking message in bytes. Any message larger than this will be rejected at the networking level. | 25_165_824| - -## core - -These settings manage the core protocol behavior. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|era_duration | Era duration. | '120min'| -|minimum_era_height | Minimum number of blocks per era. An era will take longer than `era_duration` if that is necessary to reach the minimum height. | 20 | -|minimum_block_time | Minimum difference between a block's and its child's timestamp. | '16384ms'| -|validator_slots | Number of slots available in the validator auction. | 100| -|finality_threshold_fraction | A number between 0 and 1 representing the fault tolerance threshold as a fraction used by the internal finalizer.
It is the fraction of validators that would need to equivocate to make two honest nodes see two conflicting blocks as finalized.
Let's say this value is F. A higher value F makes it safer to rely on finalized blocks. It also makes it more difficult to finalize blocks, however, and requires strictly more than (F + 1)/2 validators to be working correctly. | [1, 3]| -|start_protocol_version_with_strict
_finality_signatures_required |Protocol version from which nodes are required to hold strict finality signatures.| '1.5.0'| -|legacy_required_finality|The finality required for legacy blocks. Options are 'Strict', 'Weak', and 'Any'.
Used to determine finality sufficiency for new joiners syncing blocks created in a protocol version before the start protocol version with strict finality signatures. |'Strict'| -|auction_delay | Number of eras before an auction defines the set of validators. If a validator bonds with a sufficient bid in era N, it will be a validator in era N + auction_delay + 1. | 1| -|locked_funds_period | The period after genesis during which a genesis validator's bid is locked. | '90days'| -|vesting_schedule_period | The period in which the genesis validator's bid is released over time after it is unlocked. | '13 weeks'| -|unbonding_delay | Default number of eras that need to pass to be able to withdraw unbonded funds. | 7| -|round_seigniorage_rate | Round seigniorage rate represented as a fraction of the total supply.
- Annual issuance: 8%.
- Minimum block time: 2^15 milliseconds.
- Ticks per year: 31536000000.

(1+0.08)^((2^15)/31536000000)-1 is expressed as a fractional number below in Python:
`Fraction((1 + 0.08)**((2**15)/31536000000) - 1).limit_denominator(1000000000)` | [7, 87535408]| -|max_associated_keys | Maximum number of associated keys for a single account. | 100| -|max_runtime_call_stack_height | Maximum height of the contract runtime call stack. | 12| -|minimum_delegation_amount | Minimum allowed delegation amount in motes. | 500_000_000_000| -|prune_batch_size | Global state prune batch size for tip pruning in version 1.4.15. Possible values:
- 0 when the feature is OFF
- Integer if the feature is ON, representing the number of eras to process per block.| 0| -|strict_argument_checking | Enables strict arguments checking when calling a contract; i.e., all non-optional args are provided and they are of the correct `CLType`. | false| -|simultaneous_peer_requests | Number of simultaneous peer requests. | 5| -|consensus_protocol | The consensus protocol to use. Options are 'Zug' or 'Highway'. | 'Highway'| -|max_delegators_per_validator | The maximum amount of delegators per validator. If the value is 0, there is no maximum capacity. | 1200| - -## highway - -These settings configure the Highway Consensus protocol. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|maximum_round_length | Highway dynamically chooses its round length between `minimum_block_time` and `maximum_round_length`. | '132seconds'| -|reduced_reward_multiplier | The factor by which rewards for a round are multiplied if the greatest summit has ≀50% quorum, i.e., no finality. Expressed as a fraction (1/5 by default on Mainnet). | [1, 5]| - -## deploys - -These settings manage deploys and their lifecycle. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|max_payment_cost | The maximum number of motes allowed to be spent during payment. 0 means unlimited. | '0'| -|max_ttl | The duration after the deploy timestamp during which the deploy can be included in a block. | '18hours'| -|max_dependencies | The maximum number of other deploys a deploy can depend on (requiring them to have been executed before it can execute). | 10| -|max_block_size | Maximum block size in bytes, including deploys contained by the block. 0 means unlimited. | 10_485_760| -|max_deploy_size | Maximum deploy size in bytes. Size is of the deploy when serialized via ToBytes. | 1_048_576| -|block_max_deploy_count | The maximum number of non-transfer deploys permitted in a single block. | 50| -|block_max_transfer_count | The maximum number of Wasm-less transfer deploys permitted in a single block. | 1250| -|block_max_approval_count | The maximum number of approvals permitted in a single block. | 2600| -|block_gas_limit | The upper limit of the total gas of all deploys in a block. | 4_000_000_000_000| -|payment_args_max_length | The limit of length of serialized payment code arguments. | 1024| -|session_args_max_length | The limit of length of serialized session code arguments. | 1024| -|native_transfer_minimum_motes | The minimum amount in motes for a valid native transfer. | 2_500_000_000| - -## wasm - -The following are Wasm-related settings. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|max_memory | Amount of free memory (in 64 kB pages) each contract can use for its stack. | 64| -|max_stack_height | Max stack height (native WebAssembly stack limiter). | 500| - -### wasm.storage_costs - -These settings manage Wasm storage costs. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|gas_per_byte | Gas charged per byte stored in global state. | 630_000| - -### wasm.opcode_costs - -The following settings manage the cost table for Wasm opcodes. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|bit | Bit operations multiplier. | 300 | -|add | Arithmetic add operations multiplier. | 210| -|mul | Mul operations multiplier. | 240| -|div | Div operations multiplier. | 320| -|load | Memory load operation multiplier. | 2_500| -|store |Memory store operation multiplier. | 4_700| -|const | Const store operation multiplier. | 110| -|local | Local operations multiplier. | 390| -|global | Global operations multiplier. | 390| -|integer_comparison | Integer operations multiplier. | 250| -|conversion | Conversion operations multiplier. | 420| -|unreachable | Unreachable operation multiplier. | 270| -|nop | Nop operation multiplier. | 200| -|current_memory | Get the current memory operation multiplier. | 290| -|grow_memory | Grow memory cost per page (64 kB). | 240_000| - -### wasm.opcode_costs.control_flow - -These settings manage costs for control flow operations. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|block | Cost for `block` opcode. | 440| -|loop | Cost for `loop` opcode. | 440| -|if | Cost for `if` opcode. | 440| -|else | Cost for `else` opcode. | 440| -|end | Cost for `end` opcode. | 440| -|br | Cost for `br` opcode. | 35_000| -|br_if | Cost for `br_if` opcode. | 35_000| -|return | Cost for `return` opcode. | 440| -|select | Cost for `select` opcode. | 440| -|call | Cost for `call` opcode. | 68_000| -|call_indirect | Cost for `call_indirect` opcode. | 68_000| -|drop | Cost for `drop` opcode. | 440| - -### wasm.opcode_costs.control_flow.br_table - -The following settings manage `br_table` Wasm opcodes. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|cost | Fixed cost per `br_table` opcode. | 35_000| -|size_multiplier | Size of target labels in the `br_table` opcode will be multiplied by `size_multiplier`. | 100| - -### wasm.host_function_costs - -The following settings specify costs for low-level bindings for host-side ("external") functions. More documentation and host function declarations are located in [smart_contracts/contract/src/ext_ffi.rs](https://github.com/casper-network/casper-node/blob/release-1.5.2/smart_contracts/contract/src/ext_ffi.rs). -``` -- add = { cost = 5_800, arguments = [0, 0, 0, 0] } -- add_associated_key = { cost = 9_000, arguments = [0, 0, 0] } -- add_contract_version = { cost = 200, arguments = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] } -- blake2b = { cost = 200, arguments = [0, 0, 0, 0] } -- call_contract = { cost = 4_500, arguments = [0, 0, 0, 0, 0, 420, 0] } -- call_versioned_contract = { cost = 4_500, arguments = [0, 0, 0, 0, 0, 0, 0, 420, 0] } -- create_contract_package_at_hash = { cost = 200, arguments = [0, 0] } -- create_contract_user_group = { cost = 200, arguments = [0, 0, 0, 0, 0, 0, 0, 0] } -- create_purse = { cost = 2_500_000_000, arguments = [0, 0] } -- disable_contract_version = { cost = 200, arguments = [0, 0, 0, 0] } -- get_balance = { cost = 3_800, arguments = [0, 0, 0] } -- get_blocktime = { cost = 330, arguments = [0] } -- get_caller = { cost = 380, arguments = [0] } -- get_key = { cost = 2_000, arguments = [0, 440, 0, 0, 0] } -- get_main_purse = { cost = 1_300, arguments = [0] } -- get_named_arg = { cost = 200, arguments = [0, 0, 0, 0] } -- get_named_arg_size = { cost = 200, arguments = [0, 0, 0] } -- get_phase = { cost = 710, arguments = [0] } -- get_system_contract = { cost = 1_100, arguments = [0, 0, 0] } -- has_key = { cost = 1_500, arguments = [0, 840] } -- is_valid_uref = { cost = 760, arguments = [0, 0] } -- load_named_keys = { cost = 42_000, arguments = [0, 0] } -- new_uref = { cost = 17_000, arguments = [0, 0, 590] } -- random_bytes = { cost = 200, arguments = [0, 0] } -- print = { cost = 20_000, arguments = [0, 4_600] } -- provision_contract_user_group_uref = { cost = 200, arguments = [0, 0, 0, 0, 0] } -- put_key = { cost = 38_000, arguments = [0, 1_100, 0, 0] } -- read_host_buffer = { cost = 3_500, arguments = [0, 310, 0] } -- read_value = { cost = 6_000, arguments = [0, 0, 0] } -- read_value_local = { cost = 5_500, arguments = [0, 590, 0] } -- remove_associated_key = { cost = 4_200, arguments = [0, 0] } -- remove_contract_user_group = { cost = 200, arguments = [0, 0, 0, 0] } -- remove_contract_user_group_urefs = { cost = 200, arguments = [0, 0, 0, 0, 0, 0] } -- remove_key = { cost = 61_000, arguments = [0, 3_200] } -- ret = { cost = 23_000, arguments = [0, 420_000] } -- revert = { cost = 500, arguments = [0] } -- set_action_threshold = { cost = 74_000, arguments = [0, 0] } -- transfer_from_purse_to_account = { cost = 2_500_000_000, arguments = [0, 0, 0, 0, 0, 0, 0, 0, 0] } -- transfer_from_purse_to_purse = { cost = 82_000, arguments = [0, 0, 0, 0, 0, 0, 0, 0] } -- transfer_to_account = { cost = 2_500_000_000, arguments = [0, 0, 0, 0, 0, 0, 0] } -- update_associated_key = { cost = 4_200, arguments = [0, 0, 0] } -- write = { cost = 14_000, arguments = [0, 0, 0, 980] } -- write_local = { cost = 9_500, arguments = [0, 1_800, 0, 520] } -``` - -## system_costs - -The following settings manage protocol operating costs. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|wasmless_transfer_cost | Default gas cost for a wasmless transfer. | 100_000_000| - -### system_costs.auction_costs - -These settings manage the costs of calling the `auction` system contract entrypoints. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|get_era_validators | Cost of calling the `get_era_validators` entrypoint. | 10_000| -|read_seigniorage_recipients | Cost of calling the `read_seigniorage_recipients` entrypoint. | 10_000| -|add_bid | Cost of calling the `add_bid` entrypoint. | 2_500_000_000| -|withdraw_bid | Cost of calling the `withdraw_bid` entrypoint. | 2_500_000_000| -|delegate | Cost of calling the `delegate` entrypoint. | 2_500_000_000| -|undelegate | Cost of calling the `undelegate` entrypoint. | 2_500_000_000| -|run_auction | Cost of calling the `run_auction` entrypoint. | 10_000| -|slash | Cost of calling the `slash` entrypoint. | 10_000| -|distribute | Cost of calling the `distribute` entrypoint. | 10_000| -|withdraw_delegator_reward | Cost of calling the `withdraw_delegator_reward` entrypoint. | 10_000| -|withdraw_validator_reward | Cost of calling the `withdraw_validator_reward` entrypoint. | 10_000| -|read_era_id | Cost of calling the `read_era_id` entrypoint. | 10_000| -|activate_bid | Cost of calling the `activate_bid` entrypoint. | 10_000| -|redelegate | Cost of calling the `redelegate` entrypoint. | 2_500_000_000| - -### system_costs.mint_costs - -These settings manage the costs of calling the `mint` system contract entrypoints. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|mint | Cost of calling the `mint` entrypoint. | 2_500_000_000| -|reduce_total_supply | Cost of calling the `reduce_total_supply` entrypoint. | 10_000| -|create | Cost of calling the `create` entrypoint. | 2_500_000_000| -|balance | Cost of calling the `balance` entrypoint. | 10_000| -|transfer | Cost of calling the `transfer` entrypoint. | 10_000| -|read_base_round_reward | Cost of calling the `read_base_round_reward` entrypoint. | 10_000| -|mint_into_existing_purse | Cost of calling the `mint_into_existing_purse` entrypoint. | 2_500_000_000| - - -### system_costs.handle_payment_costs - -These settings manage the costs of calling entrypoints on the `handle_payment` system contract. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|get_payment_purse | Cost of calling the `get_payment_purse` entrypoint. |10_000| -|set_refund_purse | Cost of calling the `set_refund_purse` entrypoint. |10_000| -|get_refund_purse | Cost of calling the `get_refund_purse` entrypoint. |10_000| -|finalize_payment | Cost of calling the `finalize_payment` entrypoint. |10_000| - -### system_costs.standard_payment_costs - -These settings manage the costs of calling entrypoints on the `standard_payment` system contract. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|pay| Cost of calling the `pay` entrypoint and sending an amount to a payment purse. |10_000| \ No newline at end of file diff --git a/versioned_docs/version-1.5.X/operators/setup-network/create-private.md b/versioned_docs/version-1.5.X/operators/setup-network/create-private.md deleted file mode 100644 index 768ec0d89..000000000 --- a/versioned_docs/version-1.5.X/operators/setup-network/create-private.md +++ /dev/null @@ -1,547 +0,0 @@ ---- -title: Private Network Setup ---- - -# Setting Up a Private Casper Network - -Casper private networks operate in a similar way to the Casper public network. The significant difference in private networks is a closed validator set and having administrator account(s) which can control regular accounts. Hence, there are specific configurations when setting up the genesis block and administrator accounts. Besides the main configuration options that the Casper platform provides, each customer may add other configuration options when setting up a private network. - -## Contents - -1) [Prerequisites](#prerequisites) - -2) [Setting up a Validator Node](#step-1-setting-up-a-validator-node) - -3) [Setting up the Directory](#step-2-setting-up-the-directory) - -4) [Configuring the Genesis Block](#step-3-configuring-the-genesis-block) - -5) [Configuring the Administrator Accounts](#step-4-configuring-the-administrator-accounts) - -6) [Starting the Casper Node](#step-5-starting-the-casper-node) - -7) [Testing the Private Network](#step-7-testing-the-private-network) - -8) [Setting up a Block Explorer](#setting-up-a-block-explorer) - -## Prerequisites -Follow these guides to set up the required environment and user accounts. -- [Setting up the Casper client](../../developers/prerequisites.md#install-casper-client) -- [Setting up the client for interacting with the network](https://github.com/casper-ecosystem/casper-client-rs/blob/dev/README.md#casper-client) -- [Setting up an Account](../../developers/prerequisites.md#setting-up-an-account) - - -## Step 1. Setting up a Validator Node -A [Casper node](../../concepts/glossary/N.md#node) is a physical or virtual device participating in a Casper network. You need to set up several [validator](../../concepts/glossary/V.md#validator) nodes on your private network. An [operator](../../concepts/glossary/O.md#operator) who has won an [auction](../../concepts/glossary/A.md#auction) bid will be a validator for the private network. - - -Use the below guides to set up and manage validator nodes. - -- [Casper node setup - GitHub guide](https://github.com/casper-network/casper-node/tree/master/resources/production#casper-node-setup): A guide to configuring a system with the new Rust node to operate within a network. -- [Basic node setup tutorial](../setup/basic-node-configuration.md): A guide on using the `casper-node-launcher`, generating directories and files needed for running casper-node versions and performing upgrades, generating keys, and setting up the configuration file for nodes. -- [Set up Mainnet and Testnet validator nodes](https://docs.cspr.community/): A set of guides for Mainnet and Testnet node-operators on setting up and configuring their Casper network validator nodes. - -Use these FAQ collections for tips and details for validators. -- [FAQs for a basic validator node ](https://support.casperlabs.io/hc/en-gb/sections/6960448246683-Node-Operation-FAQ) -- [External FAQs on Mainnet and Testnet validator node setup](https://docs.cspr.community/docs/faq-validator.html) - -## Step 2. Setting up the Directory -Use these guides to set up your private network directories. You will find several main directories dedicated to different purposes. - -- Go through the [file location](../setup/basic-node-configuration.md#file-locations) section to understand how directories are created and managed in a Casper private network. -- Refer to the [setting up a new network](./chain-spec.md) guide to identify the required configuration files to set up a genesis block. - -## Step 3. Configuring the Genesis Block -A Casper private network contains a different set of configurations when compared to the public network. The [`chainspec.toml`](../../concepts/glossary/C.md#chainspec) file contains the required configurations for the genesis process in a private network. - -You should add the configuration options below to the `chainspec.toml` file inside the [private network directory](./create-private.md#step-2-setting-up-the-directory). - -### Unrestricted transfers configuration -This option disables unrestricted transfers between regular account purses. A regular account user cannot do a fund transfer when this attribute is set to false. Only administrators can transfer tokens freely between users and other administrators. - -```toml -[core] -allow_unrestricted_transfers = false -``` -In contrast, users in the public network can freely transfer funds to different accounts. - -:::note -A Casper private network doesn't support the minting process. Only admininstrator accounts can maintain funds. This is enabled by configuring these options: - -```toml -[core] -allow_unrestricted_transfers = false -compute_rewards = false -allow_auction_bids = false -refund_handling = { type = "refund", refund_ratio = [1, 1] } -fee_handling = { type = "accumulate" } -administrators = ["ADMIN_PUBLIC_KEY"] -``` -::: - -### Refund handling configuration -This option manages the refund behavior at the finalization of a deploy execution. It changes the way the Wasm execution fees are distributed. After each deploy execution, the network calculates the amount of gas spent for the execution and manages to refund any remaining tokens to the user. - -A `refund_ratio` is specified as a proper fraction (the numerator must be lower or equal to the denominator). In the example below, the `refund_ratio` is 1:1. If 2.5 CSPR is paid upfront and the gas fee is 1 CSPR, 1.5 CSPR will be given back to the user. - - -```toml -[core] -refund_handling = { type = "refund", refund_ratio = [1, 1] } -``` -After deducting the gas fee, the distribution of the remaining payment amount is handled based on the [fee_handling](./create-private.md) configuration. - -The default configuration for a public chain, including the Casper Mainet, looks like this: - -```toml -[core] -refund_handling = { type = "refund", refund_ratio = [0, 100] } -``` -The refund variant with `refund_ratio` of [0, 100] means that 0% is given back to the user after deducting gas fees. In other words, if a user paid 2.5 CSPR and the gas fee is 1 CSPR, the user will not get the remaining 1.5 CSPR in return. - -### Fee handling configuration -This option defines how to distribute the fees after refunds are handled. While refund handling defines the amount we pay back after a transaction, fee handling defines the methods of fee distribution after a refund is performed. - - -Set up the configuration as below: - -```toml -[core] -fee_handling = { type = "pay_to_proposer" } -``` - -The `fee_handling` configuration has three variations: -- `pay_to_proposer`: The rest of the payment amount after deducing the gas fee from a refund is paid to the block's [proposer](../../concepts/glossary/P.md#proposer). -- `burn`: The tokens paid are burned, and the total supply is reduced. -- `accumulate`: The funds are transferred to a special accumulation purse. Here, the accumulation purse is owned by a handle payment system contract, and the amount is distributed among all the administrators defined at the end of a switch block. The fees are paid to the purse owned by the handle payment contract, and no tokens are transferred to the proposer when this configuration is enabled. - -### Auction behavior configuration - -A private network requires to have a fixed set of validators. This configuration restricts the addition of new validators to the private network. Hence, you are not allowed to bid new entries into the validator set. - - -Use the configuration below to limit the auction validators: - - -```toml -[core] -allow_auction_bids = false -``` - -Other configurations related to the auction: - -- `allow_auction_bids` - if this option is set to *false* then `add_bid` and `delegate` options are disabled. It also disables adding new validators to the system. Invoking those entry points leads to an `AuctionBidsDisabled` error. -- `core.compute_rewards` - if this option is set to *false*, then all the rewards on a switch block will be set to 0. The auction contract wouldn't process rewards distribution that would increase validator bids. - -In a public network, `allow_auction_bid` is set to *true*, which allows bidding for new entries and validator nodes. - -## Step 4. Configuring the Administrator Accounts -An administrator is mandatory for a private network since it manages all the other [validator](../../concepts/glossary/V.md#validator) accounts. There should be at least one administrator account configured within a network to operate it as a `private network`. You can create new administrators and [rotate the validator set](./create-private.md#step-6-rotating-the-validator-accounts) in a single configuration update. The operator must first ensure the `global_state.toml` file contains new administrators. The validator set is updated after if an administrator is also a validator. Also, only purses of administrator accounts can hold and distribute token balances. - -### Configuring administrator accounts - -Use this configuration option in the `chainspec.toml` to add administrator accounts to the private network: - -```toml -[core] -administrators = ["NEW_ACCOUNT_PUBLIC_KEY"] -``` - -**Note**: Regular accounts are not allowed to manage their associated keys on a private network. - -### Generating new administrator accounts - -Use the command below to generate new administrator accounts in your private network. This generates the contents of a `global_state.toml` with the entries required to create new administrator accounts at the upgrade point. - -```sh -global-state-update-gen \ - generate-admins --data-dir $DATA_DIR/global_state \ - --state-hash $STATE_ROOT_HASH \ - --admin $PUBLIC_KEY_HEX, $BALANCE -``` - -- `NEW_PUBLIC_KEY` - Public key of the administrator in a hex format. -- `NEW_BALANCE` - Balance for the administrator’s main purse. -- `DATA_DIR` - Path to the global state directory. -- `STATE_ROOT_HASH` - State root hash, taken from the latest block before an upgrade. - -### Managing accounts and smart contracts - -Only administrators have permission to control accounts and manage smart contracts in a private network. An example implementation can be found in [Casper node's private chain control management](https://github.com/casper-network/casper-node/blob/c8023736786b2c2b0fd17250fcfd50502ff4151f/smart_contracts/contracts/private_chain/control-management/src/main.rs) file. This is not an existing contract. You can use the existing client contracts as an administrator to perform actions as a user. This is done by sending a deploy under a regular user's public key but signed using the administrator's secret key. - -Use this command to generate these contracts: - -```sh -make build-contracts-rs -``` - -Only the administrator can use the related Wasm to send the deploy to the network and then use it to manage, enable, and disable contracts. This is achieved through entry points that handle enabling and disabling options for account and smart contracts: - -- **To disable a contract**: Execute the `disable_contract.wasm` with `contract_hash`and `contract_package_hash` as parameters. -- **To enable a contract**: Execute the `enable_contract.wasm` with `contract_hash`and `contract_package_hash` as parameters. -- **To disable an account**: Execute `set_action_thresholds.wasm` with argument `deploy_threshold:u8='255'` and `key_management_threshold:u8='255'`. -- **To enable an account**: Execute `set_action_thresholds.wasm` with `deploy_threshold:u8='1'` set to 1 and `key_management_threshold:u8='0'`. - - -## Step 5. Starting the Casper Node -After preparing the administrator accounts and validator nodes, you should start and run the Casper node to see the changes. Use this command to start the node: - -```sh -sudo systemctl start casper-node-launcher -``` -Refer to the [Casper node setup GitHub](https://github.com/casper-network/casper-node/tree/master/resources/production#casper-node-setup) guide to know more details about configuring a new node to operate within a network. - -Additionally, refer to the [casper-node-launcher](https://github.com/casper-network/casper-node-launcher) to check whether the installed node binaries match the installed configurations by comparing the version numbers. - -## Step 6. Rotating the Validator Accounts -You need to go through [setting up a validator node ](#step-1-setting-up-a-validator-node) guide before starting this section. - -To rotate the validators set, you must perform a network upgrade using a `global_state.toml` with new entries generated by the `global-state-update-gen` command. - -When rotating validators manually, you will need to do so after the start of a new era. This allows you to obtain the state root hash from the final block in an era, known as the switch block. - -After acquiring the state root hash from the switch block, you must stop the network. The following command allows you to use the acquired state root hash to generate a new `global_state.toml`. - -```sh - -global-state-update-gen validators \ - --data-dir $DATA_DIR/global_state \ - --state-hash $STATE_ROOT_HASH \ - –-validator $PUBLIC_KEY_HEX,$STAKE \ - –-validator $PUBLIC_KEY_HEX,$STAKE - -``` - -Each use of the `--validator` parameter designates a validator for the next era. Only validators added using this parameter will be included in the new era, hence removing a validator only requires you to not add them with this parameter. - -After designating the next era's validators, you must set the chainspec activation point and `last_emergency_restart` to `X`, where `X` is equal to the new era after the switch block from above. Finally, set `hard_reset = true`. This makes the network revert to the end of the previous era when restarted with the upgrade. - -For example, to rotate the validators in era 10, one would need to wait for the end of era 9. After acquiring the state root hash from the final block of era 9, you would stop the network, run `global-state-update-gen`, set the activaction point and `last_emergency_restart` to 10 and `hard_reset` to `true`. - -You can now stage the upgrade by copying the chainspecs, configs and binaries where they should be while the network is still down. Once these are in place, you can restart the network with rotated validators. - -:::note - -Please make sure you are running this tool as the same user that owns `$DATA_DIR`. Otherwise, you may receive a permission denied error. - -::: - -You can find more details on enabling new validators in the [joining a running network](../setup/joining.md) guide. The guide explains how to join the network and provide additional security to the system. - -## Step 7. Testing the Private Network -We will describe the testing flow using an example customer and the configuration below. These options are relative to this example customer. - -### Sample configuration files - -Here are sample configurations that can be adapted for testing: -- A [chainspec template](https://github.com/casper-network/casper-node/blob/0b4eead8ea1adffaea98260fe2e69dfc8b71c092/resources/private/chainspec.toml.in) that is specific to the customer's private chain. -- An [accounts template](https://github.com/casper-network/casper-node/blob/0b4eead8ea1adffaea98260fe2e69dfc8b71c092/resources/private/accounts.toml.in) with one administrator in the `administrators` settings. - - -### Specifying IP addresses - -Here is an example set of IP addresses in use: -``` -http://18.224.190.213:7777 -http://18.188.11.97:7777 -http://18.188.206.170:7777 -http://18.116.201.114:7777 -``` - -### Setting up the node - -Set up the node address, chain name, and the administrator's secret key. - -```sh -export NODE_ADDR=http://18.224.190.213:7777 -export CHAIN_NAME="private-test" -``` - -This testing example will also use an `alice/secret_key.pem` file, a secret key generated through the [keys generation process](../../concepts/accounts-and-keys.md#creating-accounts-and-keys). Alice is a regular user in this testing example. - -### Network access control - -With a default configuration each node generates a self-signed certificate to encrypt peer-to-peer communication. This means any person can join an existing network, and sync with the network, which in private chains may not be allowed. - -To restrict access for new nodes joining an existing private chain network, the node software supports loading signed client certificates by a certificate authority (CA). - -```toml -[network.identity] -tls_certificate = "local_node_cert.pem" -secret_key = "local_node.pem" -ca_certificate = "ca_cert.pem" -``` - -- `tls_certificate` is the certificate signed by a `ca_cert.pem`. -- `secret_key` refers to a secret key that should be unique to a specific node in the network. All peer-to-peer communication coming from this node will be signed by this key. -- `ca_certificate` is the network CA that should be the same on each of the nodes. - -To set up CA and sign client certificates for a network here are the steps to follow using an openssl command line: - -```sh -# Recommended EC curve algorithm to use -export CURVE="secp521r1" - -# Generate secret key for CA and save it to ca_key.pem -openssl ecparam -out ca_key.pem -name $CURVE -genkey -# Create ca_cert.pem signed by ca_key.pem -openssl req -new -x509 -days 3650 -extensions v3_ca -key ca_key.pem -out ca_cert.pem - -# Generate secret key for a node and a certificate signed by the CA -openssl ecparam -out node_1.pem -name $CURVE -genkey -openssl req -new -key node_1.pem -out node_1.csr -sha256 -openssl x509 -req -days 3650 -CA ca_cert.pem -CAkey ca_key.pem -CAcreateserial -in node_1.csr -out node_1_cert.pem -``` - -And then configure the node with the following settings: - -```toml -[network.identity] -tls_certificate = "node_1_cert.pem" -secret_key = "node_1.pem" -ca_certificate = "ca_cert.pem" -``` - -Every node in the private chain network has to be configured with the same CA certificate, and each `tls_certificate` and `secret_key` pair has to be signed by it. Any node trying to join with a certificate signed by an incorrect CA ends up with the following log message: - -``` -2022-09-01T12:08:53.031417Z DEBUG init:incoming{; peer_addr=127.0.0.1:50998}: [casper_node::components::small_network small_network.rs:501] incoming connection failed early; err=TLS validation error of peer certificate: the certificate is not signed by provided certificate authority -``` - -Keep in mind that for security reasons `ca_key.pem` should be stored securely and never present on each of participating machines. - -### Funding Alice's account - -The following command transfers tokens to Alice's main purse. - -```sh -casper-client \ - transfer \ - -n $NODE_ADDR \ - --chain-name $CHAIN_NAME \ - --secret-key admin/secret_key.pem \ - --session-account=$(> global_state.toml -``` - -By using `>>` shell redirection you will always append contents to existing file without overwriting it. This is helpful when you need to chain multiple operations in a single upgrade. - -Common options: - -- `--data-dir` path to a global state directory where `data.lmdb` can be found -- `--state-hash` is the state root hash at the latest block. You should use the client to obtain the most recent state root hash to generate the `global_state.toml`. - -### Rotating validators - -The following command rotates the validator set. Perform a network upgrade with a `global_state.toml` with the new entries generated by the `global-state-update-gen` command. - -```sh -global-state-update-gen validators \ - --data-dir $DATA_DIR \ - --state-hash $STATE_ROOT_HASH \ - --validator NEW_PUBLIC_KEY,NEW_STAKE \ - --validator NEW_PUBLIC_KEY2,NEW_STAKE2 -``` - -### Adding new administrators -The following command produces the administrator content in the `global_state.toml` file. - -```sh -global-state-update-gen generate-admins --admin NEW_PUBLIC_KEY,NEW_BALANCE --data-dir $DATA_DIR --state-hash $STATE_ROOT_HASH -``` -Remember that new administrators can be created, and the validator set can also be rotated in a single update. - -The `chainspec.toml` file should contain the following entries that include new administrators as well as existing ones for an upgrade: - - -```toml -[core] -administrators = ["NEW_PUBLIC_KEY"] -``` - -After this step, the private network would be ready for use. - -## Setting up a Block Explorer - -Private and hybrid blockchains can find information on how to set up and operate our free version of a block explorer [here](https://github.com/casper-network/casper-blockexplorer-frontend). diff --git a/versioned_docs/version-1.5.X/operators/setup-network/genesis.md b/versioned_docs/version-1.5.X/operators/setup-network/genesis.md deleted file mode 100644 index 889e19450..000000000 --- a/versioned_docs/version-1.5.X/operators/setup-network/genesis.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Genesis ---- - -# The Genesis Block {#the-genesis-block} - -The Casper node software creates a genesis block from the following input files: - -- `chainspec.toml` -- `accounts.toml` - -## chainspec.toml {#chainspectoml} - -A version of the [chainspec](../../concepts/glossary/C.md#chainspec) is downloaded by the `pull_casper_node_version.sh` script installed with the casper-node-launcher debian package. This script pulls the `chainspec.toml` file from the appropriate path defined in the network config file used (`casper.conf` for MainNet and `casper-test.conf` for TestNet). - -The production version of the file from which this is based on can be found at `casper-node/resources/production/chainspec.toml` in the code base. To create a custom network, this file can be updated as desired. Any changes to this file will result in a different genesis hash. Refer to [this page](./chain-spec.md) for detailed documentation on each of the variables in the file. - -## accounts.toml {#accountstoml} - -This file contains the genesis validator set information, starting accounts and associated balances and bond amounts. - -If an account is not bonded at genesis, specify a `0` for the bond amount. - -Similar to the `chainspec.toml`, this is pulled from the appropriate path defined in the network config file used. diff --git a/versioned_docs/version-1.5.X/operators/setup-network/index.md b/versioned_docs/version-1.5.X/operators/setup-network/index.md deleted file mode 100644 index ffc64120b..000000000 --- a/versioned_docs/version-1.5.X/operators/setup-network/index.md +++ /dev/null @@ -1,10 +0,0 @@ -# Setting up Private Networks - -Some projects may require a private Casper network or a hybrid setup involving a private and public Casper network. This section covers the requirements for creating a private network. - -| Title | Description | -| ----------------------------------------------------------- | ----------------------------------------------- | -|[The Genesis Block](./genesis.md) | Files needed to create a genesis block | -|[The Chain Specification](./chain-spec.md) | Configuration settings describing the network state | -|[Setting up a Private Casper Network](./create-private.md) | A step-by-step guide to establishing and configuring a private Casper network | -|[Staging Files for a New Network](./staging-files-for-new-network.md) | A guide to hosting protocol files for a new Casper network | \ No newline at end of file diff --git a/versioned_docs/version-1.5.X/operators/setup-network/staging-files-for-new-network.md b/versioned_docs/version-1.5.X/operators/setup-network/staging-files-for-new-network.md deleted file mode 100644 index b7ad25831..000000000 --- a/versioned_docs/version-1.5.X/operators/setup-network/staging-files-for-new-network.md +++ /dev/null @@ -1,177 +0,0 @@ ---- -title: Staging Files ---- - -# Staging Files for a New Network - -:::important - -Staging files is not needed for already established running networks. - -Only use these instructions if you are creating a new Casper network and hosting protocol files for this network. - -::: - - -## Hosting Server - -Files for staging protocol versions are hosted on a typical HTTP(S) server. - -Scripts included with the `casper-node-launcher` have network configurations for Mainnet and Testnet. These scripts point to the server hosting files and network name. - -Since a given server can be used for multiple networks, a network named directory is used to -hold files for that network. - -This is a description of Mainnet protocol version hosting (with network name: `casper`). - -`genesis.casperlab.io` is the web server URL with the following directory structure: - - - `casper` - - `protocol_versions` - File listing active protocol versions so scripts know what directories to use - - `1_0_0` - Genesis protocol version - - `config.tar.gz` - Configuration files to be expanded into `/etc/casper/1_0_0` - - `bin.tar.gz` - Binary files to be expanded into `/var/lib/casper/bin/1_0_0` - - `1_1_0` - First upgrade - - `config.tar.gz` - Configuration files to be expanded into `/etc/casper/1_1_0` - - `bin.tar.gz` - Binary files to be expanded into `/var/lib/casper/bin/1_1_0` - - ... (skipping many other protocol versions) - - `1_4_6` - A later upgrade - - `config.tar.gz` - Configuration files to be expanded into `/etc/casper/1_4_6` - - `bin.tar.gz` - Binary files to be expanded into `/var/lib/casper/bin/1_4_6` - -### More on `protocol_versions` - -At the root of the hosting server directory for a given network, a `protocol_versions` file exists. This holds the valid protocol versions for a network. - -We can look at this manually on Mainnet using *curl*. As of writing this, `1_5_8` is the latest version and the contents of this file will change. - -```bash - -$ curl -s genesis.casper.network/casper/protocol_versions -1_5_8 - -``` - -We should find `bin.tar.gz` and `config.tar.gz` in those directories under `casper`. - -Since 1.5 `casper-node` version, the network syncs with `fast-sync` protocol where historical nodes are not needed. The only time multiple protocols are needed is during and upgrade staging period. However, it is typical that `protocol_versions` is updated only when a new version is staged, so usually the current and previous version are help in `protocol_versions`. - -## Protocol Version - -The protocol version of a network is not related to the `casper-node` version. In Mainnet, these have often been the same. -However, with a new network, you would use the latest `casper-node` version for your `1.0.0` protocol. - -## Network Configuration File - -When the `casper-node-launcher` package is installed, both `casper.conf` and `casper-test.conf` are installed -in `/etc/casper/network_configs`. Once a valid config file for a new network is copied to this location, -all commands with *node_util.py* will work as they do on existing networks. - -By convention, we name the config file the same as the network. So Mainnet has a network name of `casper` and we use -`casper.conf` for the config file. - -For a new network using server `casper.mydomain.com` to host files for `our-network` network, we would have a -`our-network.conf` file that looks like this: - -```bash -SOURCE_URL=casper.mydomain.com -NETWORK_NAME=our-network -``` - -Host this `our-network.conf` in the root of `casper.mydomain.com/our-network` at the same level as `protocol_versions`. - -This allows any node which wants to use the new network to run the following to install this configuration: - -```bash -cd /etc/casper/network_configs -sudo -u casper curl -JLO casper.mydomain.com/our-network/our-network.conf -``` - -Any command needing a network config from `node_util.py` can use `our-network.conf`. - -Staging protocol versions for a new node with this network or staging an upcoming upgrade would just need this command: - -```bash -sudo -u casper /etc/casper/node_util.py stage_protocols our-network.conf -``` - -## Setup Configuration Files - -For a network to be started, we to build the configuration files for a certain genesis time and with nodes that will be running. These files need to be configured in advanced, so a genesis time should be selected that allows packaging the files, loading onto nodes and starting nodes prior to the genesis time. - -### chainspec.toml - -The [chainspec.toml](../../concepts/glossary/C.md#chainspec) file is configuration for the network and must be exactly the same on all nodes. - -The name for a network is specified `network.name`. - -Each protocol will have a `version` and `activation_point`. At genesis this is a date and time in format shown below. For future upgrades it would be an integer of the `era_id` for activation of the upgrade. - -``` -[protocol] -version = '1.0.0' -activation_point = '2022-08-01T10:00:00Z' - -[network] -name = 'mynetwork' -``` - -### config-example.toml - -The config-example.toml is used to generate config.toml for a protocol after the node's IP is inserted. The `public_address` is auto-detected with `node_util.py stage_protocols`. If using a NAT environment, the public IP can be specified with the `--ip` argument. - -This file should have `known_addresses` added that are relevant to the network. Nodes that will be genesis validators are added to this list in the form: - -``` -[network] -known_addresses = [':35000',':35000',':35000'] -``` - -The `config.toml` can be setup to customized fields for a given node. `config-example.toml` is a default configuration. - -## Staging a Protocol Version - -For the initial genesis protocol version or future upgrade protocol versions, you will typically use -prebuilt and tested `bin.tar.gz` that have been tested and staged for existing networks. The `config.tar.gz` -file must be customized for the specific network with a network name, protocol version and activation point at the very least. - -These archives should be created with no directory information stored. This is done by using `tar` in the same directory as the files. - -```bash -mkdir config -cd config -mv [source of chainspec.toml] ./chainspec.toml -mv [source of config-example.toml] ./config-example.toml -tar -czvf ../config.tar.gz . -``` - -You can test what was compressed with untar'ing the file. - -```bash -mkdir conftest -cd conftest -tar -xzvf ../config.tar.gz . -``` - -This will expand files for verification. - -For custom `casper-node` builds, the minimum contents of `bin.tar.gz` is the `casper-node` executable. - -```bash -mkdir bin -cd bin -cp [source of casper-node] ./casper-node -tar -czvf ../bin.tar.gz . -``` - -A directory for the protocol_version will be created on the server. For example: `1_1_0`. - -We will copy `bin.tar.gz` and `config.tar.gz` into `1_1_0`. Once this is done, we are safe to update -`protocol_versions` by appending `1_1_0` to the end of the file and uploading it into the root of the network directory. - -Any node that runs the following command will get this new upgrade: - -```bash -sudo -u casper /etc/casper/node_util.py stage_protocols -``` - diff --git a/versioned_docs/version-1.5.X/resources/condor-for-exchanges.md b/versioned_docs/version-1.5.X/resources/condor-for-exchanges.md deleted file mode 100644 index e72fc3ca4..000000000 --- a/versioned_docs/version-1.5.X/resources/condor-for-exchanges.md +++ /dev/null @@ -1,107 +0,0 @@ -# Condor Release Notes for Exchanges - - -## Account/Contract Merge - -* Currently, Casper contains separate Accounts and Contracts. These record types are similar, but contain small differences. Condor merges these two into one record called AddressableEntity. - - * All existing Account and Contract records will be migrated upon on-chain interaction (i.e., sending of transactions, native transfers). - - * All new β€œaccounts” and β€œcontracts” created on the system will result in an AddressableEntity record being created. - - * PublicKeys and AccountHashes for existing Account records remain in place and continue to function with the corresponding AddressableEntity record. - -* Named keys are now a top-level concern and stored directly in global state. - - * The outcome and behavior of named keys is the same; this is an implementation detail addressing the scalability issues of the previous design. - - * Similarly, entry points for smart contracts are now a top level concern, with each entry point being stored directly in global state rather than embedded within an AddressableEntity record.. - -* **Action Items: While the Casper node software handles all on-chain interactions with these new data structures, any off-chain logic that retrieves Account and/or Contract records from the blockchain for any purpose (i.e., processing, storage, indexing, etc) will need to be modified to retrieve and use the AddressableEntity record structure going forward.** - -# Fee Elimination - -* Condor adds support for configurable fee, refund, and pricing strategies. The current plan is to roll out Condor with β€œNoFee” mode on. Rather than transferring tokens from a paying purse, they are now placed on hold temporarily. - -* There is a configurable interval that determines how long a balance hold remains in effect. The available balance of a purse equals its actual total balance minus all non-expired balance holds on that purse. The held portion of a purse balance is not available to transfer or spend until it is released. - - * The on-chain logic calculates the correct values for total balance and available balance. Off-chain logic can continue to use the existing query_balance endpoint, which will return the available balance. This is sufficient for the majority of use cases. However, off-chain logic that wants to get the full details including total, available, and all hold records can use the new query_balance_details RPC endpoint. - -* **Action Items: Overall, placing holds rather than taking fees is beneficial to exchanges and other parties who send periodic transactions to the network, as their gas costs return to them over time rather than being spent.** - - * **Existing implementations should generally not need to change anything to take advantage of this behavior of the system.** - - * **Any advanced platform with automated funding that periodically tops off operating balances with new tokens to replace spent gas would benefit from some consideration of this new behavior.** - - * **Advanced platforms seeking optimal scheduling strategies would benefit from retrieving the hold records for their operating purse(s) to calculate projected future available balances and use that to inform the scheduling of automated transaction submissions.** - -## Dynamic Pricing - -* Currently, the gas price on the Casper network is equal to 1, meaning 1 unit of gas costs 1 mote. Condor introduces a configurable gas price multiplier. If turned on, at the end of each era a calculation is run to determine block usage in the current era and adjust the multiplier for the era that is starting. - - * If overall block use rises above a threshold the gas price goes up by 1, if use falls below a threshold the gas price goes down by 1. If use remains within those thresholds the gas price remains the same. - - * The gas price will not go up or down by more than 1 in a given era, and will not go above the maximum or below the minimum threshold. - - * The minimum and maximum gas prices and the go-up and go-down threshold are configurable. - - * The current gas price is used as a straight multiplier to determine actual gas cost. For instance, an operation with a base cost of 1 CSPR would cost 1 CSPR if the current gas price is 1, but would cost 2 CSPR if the current gas price is 2. - - * The calculated gas price has been added to the block header to make it easily discoverable (for determining what the current price is), and for posterity (for determining what the gas price was for a given era in the historical context). - -* **Action Items: During times of high network usage, you may find that costs for interacting with the blockchain increase. Plan accordingly for any transactions.** - - * **As a quality of life feature for those operating on a strict budget, transactions have a gas_tolerance field, which allows the sender of a transaction to specify the maximum gas price they are willing to pay for (minimum 1). For instance, if a transaction is sent with gas_tolerance = 2 and the network is currently at gas price 3 or higher, that transaction will not be included in a proposed block. If the calculated gas price later walks down to 2 before the transaction has expired, the transaction will be eligible for inclusion in a proposed block.** - -## Transaction Types - -* Currently, work to be done on the Casper network is sent using the Deploy structure. With Condor we are transitioning to a Transaction model. There are some structural changes introduced to support more advanced features. - -* The existing Deploy model is deprecated as of Condor, and support will be removed entirely in a future major release. However, Condor will continue to accept valid Deploys and will attempt to execute them. Most existing deploys that function today will continue to do so. However, deploys that depend on a data type or FFI function that has been altered or removed will fail to execute. - -* Under the new Transaction model, Condor offers direct support for native / Wasm-less usage of all user-land mint and stake management actions. - -* **Action Items: Existing off-chain systems should determine if their operation continues to work using the legacy Deploy model support.** - - * **In cases where legacy integration remains compatible, upgrading to take advantage of the new Transaction model can be delayed temporarily or indefinitely until the removal of Deploys with a later release.** - - * **In cases where one or more incompatibilities have been introduced, some fix short of a full upgrade to the Transaction model may be possible on a case by case basis, but a forced upgrade may be preferable or even necessary in some cases.** - - * **Even off-chain systems that continue to work using legacy support may want to consider upgrading to the new Transaction model to take advantage of efficiencies or new capabilities.** - -## Block Restructure - -* The structure of the Block record is being modified as part of Condor. As all blocks are immutable once added to the chain, previously produced blocks remain in their original format. All new blocks produced after Condor will have the new format. The change in structure can be seen [here in the upcoming documentation changes](https://github.com/casper-network/docs/blob/feat-2.0_docs/source/docs/casper/developers/json-rpc/types_chain.md#blockv2-blockv2). - -* **Action Items: While existing client software (including SDKs) remain able to request and parse historical blocks that use the original Block structure, they must be upgraded to request and parse new blocks if they wish to continue to follow the chain. This is the primary breaking change for most off-chain consumers of the Casper network.** - - * **To continue to service historical/archival usage of old blocks, such software should not code over or remove handling for the original block structure. Instead they should retain that capability and add handling for the new block structure.** - - -## Contract Level Events - -* Condor adds support for smart contracts to define message topics and emit their own messages which are passed to the event stream for consumption as contract level events. Details on this feature can be found [here](https://github.com/casper-network/ceps/blob/master/text/0088-contract-level-messages.md). - -* **Action Items: As this is an entirely new feature, existing systems do not have to change anything.** - - * **Some existing smart contracts have adopted a convention using one or more dictionaries to approximate contract level events. Such smart contracts cannot directly address spoofing, and repudiation protection requires off-chain support. Thus, they should consider making the necessary changes to their logic to take advantage of the built in and safe support offered in Condor.** - -## Zug Consensus Protocol - -* The Zug Consensus Protocol will replace Highway on the Casper network alongside the Condor release. Other instances of a Casper network (private/hybrid networks) may choose to use either Highway or Zug. - - * Information on Zug’s implementation can be found [here](https://github.com/casper-network/docs/blob/feat-2.0_docs/source/docs/casper/concepts/design/zug.md). - - * A more in-depth view of Zug and the theory behind it can be found [here](https://arxiv.org/abs/2205.06314). - -* **Action Items: None.** - -## Server-Sent Event (SSE) Endpoint Changes - -* Due to the previously mentioned structural changes to certain record kinds, most notably the Block record structure and the transition from the Deploy model to the Transaction model, and the addition of contract level events in the form of Messages, there are breaking changes to the contents of the event stream. - - * The changes are minor schematic changes and rather obvious; for instance instead of a DeployProcessed event there is a TransactionProcessed event, instead of a DeployExpired event there is a TransactionExpired event, and so on. - - * The overall verbs and their behavioral semantics remain the same (BlockAdded, ~Accepted, ~Processed, ~Expired, etc). - -* **Action Items: Existing software (including SDKs) that deserializes the JSON produced by the SSE event stream will require updating to continue to follow the event stream post-Condor. Software that does not follow the event stream is unaffected.** diff --git a/versioned_docs/version-2.0.0/concepts/design/reading-and-writing-to-the-blockchain.md b/versioned_docs/version-2.0.0/concepts/design/reading-and-writing-to-the-blockchain.md index 2d1994b3a..e776ef875 100644 --- a/versioned_docs/version-2.0.0/concepts/design/reading-and-writing-to-the-blockchain.md +++ b/versioned_docs/version-2.0.0/concepts/design/reading-and-writing-to-the-blockchain.md @@ -8,7 +8,7 @@ Casper features several means of reading and writing data to global state, depen :::note -Casper's Condor release shifts `NamedKeys` to a top-level key type, making them more viable for larger data sets. +Casper 2.0 release shifts `NamedKeys` to a top-level key type, making them more viable for larger data sets. ::: diff --git a/versioned_docs/version-2.0.0/concepts/dictionaries.md b/versioned_docs/version-2.0.0/concepts/dictionaries.md index 519eaf2b1..39a79c7f6 100644 --- a/versioned_docs/version-2.0.0/concepts/dictionaries.md +++ b/versioned_docs/version-2.0.0/concepts/dictionaries.md @@ -9,7 +9,7 @@ Individual value changes to data stored within the NamedKeys would require deser As a solution to this problem, the Casper platform provides the `Dictionary` feature, which allows users a more efficient and scalable means to aggregate data over time. -Casper's Condor release shifts `NamedKeys` to a top-level key, removing this restriction and making them viable for data storage. +Casper 2.0 release shifts `NamedKeys` to a top-level key, removing this restriction and making them viable for data storage. ## Seed URefs diff --git a/versioned_docs/version-2.0.0/concepts/economics/dynamic-gas-pricing.md b/versioned_docs/version-2.0.0/concepts/economics/dynamic-gas-pricing.md index 9bf5409ad..33c1fa37a 100644 --- a/versioned_docs/version-2.0.0/concepts/economics/dynamic-gas-pricing.md +++ b/versioned_docs/version-2.0.0/concepts/economics/dynamic-gas-pricing.md @@ -4,7 +4,7 @@ title: Dynamic Gas Pricing # Dynamic Gas Pricing on Mainnet -The Condor release introduced a configurable capability to calculate dynamic gas prices based on block vacancy (or consumption). The network chainspec configures the `vacancy`, as shown below, which refers to this feature. This capability prevents malicious actors from filling the blocks with useless transactions and ensures network integrity. +The Casper 2.0 release introduced a configurable capability to calculate dynamic gas prices based on block vacancy (or consumption). The network chainspec configures the `vacancy`, as shown below, which refers to this feature. This capability prevents malicious actors from filling the blocks with useless transactions and ensures network integrity. When dynamic gas pricing is enabled, a calculation runs at the end of each era to average block usage within that era. This calculation determines the gas price the network will use for the next era. If overall consumption rises above a threshold, the gas price increases by 1. If consumption falls below a threshold, the gas price decreases by 1. The gas price remains the same if overall consumption remains within those thresholds. The gas price will not go up or down by more than 1 in a given era and will not go above the maximum or below the minimum threshold. @@ -16,9 +16,9 @@ The gas price is recorded in the block header and is easily discoverable for cur - `min_gas_price` - The minimum gas price -### Mainnet Condor Configurations +### Mainnet Casper 2.0 Configurations -These are the block vacancy (dynamic gas pricing) settings for the Condor release on Mainnet. Before Condor, the gas price was 1, meaning 1 unit of gas cost 1 mote. With Condor, the multiple is configured to adjust between 1 and 3. +These are the block vacancy (dynamic gas pricing) settings for the Casper 2.0 release on Mainnet. Before Casper 2.0, the gas price was 1, meaning 1 unit of gas cost 1 mote. With Casper 2.0, the multiple is configured to adjust between 1 and 3. diff --git a/versioned_docs/version-2.0.0/concepts/economics/fee-elimination.md b/versioned_docs/version-2.0.0/concepts/economics/fee-elimination.md deleted file mode 100644 index e651941c4..000000000 --- a/versioned_docs/version-2.0.0/concepts/economics/fee-elimination.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -title: Fee Elimination ---- - -# Fee Elimination on Mainnet - -Casper networks support configurable fee, refund, and pricing strategies. The Mainnet Condor release has enabled "fee elimination", also known as the "no fee mode", or "no fee transactions" to reduce operational costs for developers. This configurable feature places balance holds on a user's purse rather than taking fees for sending transactions to the network. This behavior benefits parties who send periodic transactions, as their gas costs are locked for some time and then either released all at once or linearly over time, depending on the chainspec settings. Recall that the network chainspec contains all the configuration choices on which every node must agree. - -Instead of paying for gas to execute transactions, the `no_fee` chainspec configuration instructs the network to place a balance hold on the paying purse without transferring tokens from the purse: `fee_handling = { type = 'no_fee'}`. The portion of a purse balance that is locked is not available to transfer or spend until it is released; it is marked with a timestamp equal to the block time. In the "no fee" mode, the available balance of a purse equals its actual total balance minus all non-expired balance holds on that purse. The configurable `gas_hold_interval` determines how long a balance hold remains in effect. The on-chain logic calculates the correct values for total balance and available balance. The [query_balance_details](../../developers/json-rpc/json-rpc-informational.md#query_balance_details) RPC endpoint provides details on available balances and hold records. - -:::note - -A processing hold is not the same as a gas (or balance) hold. The processing hold is a temporary hold that prevents double spend. For example, if you want to do a transfer, you also need to cover the cost of the transfer. - -::: - -## Chainspec Configurations - -The following [chainspec configurations](../../operators/setup-network/chain-spec.md) manage this feature: - -- `fee_handling` - Defines how fees are handled. To enable the "no fee" mode, set it to `{ type = 'no_fee'}`. -- `refund_handling` Defines how refunds of the unused portion of payment amounts are calculated and handled. For this setting to work with the "no fee" mode, set it to `{ type = 'no_refund'}`. If no fees are transferred from the paying purse, no refunds need to be paid out. -- `pricing_handling` - Defines how pricing is handled. For this setting to work with the `no_fee` mode, set it to `{ type = 'fixed'}`, which means that costs are fixed per the cost table, and senders do not specify how much they pay. -- `validator_credit_cap` - The validator credit cannot exceed this percentage of their total stake. -- `gas_hold_balance_handling - Defines how gas holds affect available balance calculations. Valid options are 'accrued' (the sum of the full value of all non-expired holds) and 'amortized' (the sum of each hold is amortized over the time remaining until expiry). -- `gas_hold_interval` - Defines how long gas holds last. - -### Mainnet Condor Configurations - -These are the fee elimination settings for the Condor release on Mainnet: - - -```toml -# Defines how refunds of the unused portion of payment amounts are calculated and handled. -# -# Valid options are: -# 'refund': a ratio of the unspent token is returned to the spender. -# 'burn': a ratio of the unspent token is burned. -# 'no_refund': no refunds are paid out; this is functionally equivalent to refund with 0% ratio. -# This causes excess payment amounts to be sent to either a -# pre-defined purse, or back to the sender. The refunded amount is calculated as the given ratio of the payment amount -# minus the execution costs. -refund_handling = { type = 'no_refund' } -# Defines how fees are handled. -# -# Valid options are: -# 'no_fee': fees are eliminated. -# 'pay_to_proposer': fees are paid to the block proposer -# 'accumulate': fees are accumulated in a special purse and distributed at the end of each era evenly among all -# administrator accounts -# 'burn': fees are burned -fee_handling = { type = 'no_fee' } -# If a validator would recieve a validator credit, it cannot exceed this percentage of their total stake. -validator_credit_cap = [1, 5] -# Defines how pricing is handled. -# -# Valid options are: -# 'classic': senders of transaction self-specify how much they pay. -# 'fixed': costs are fixed, per the cost table -# 'reserved': prepaid transaction (currently not supported) -pricing_handling = { type = 'fixed' } - -# Defines how gas holds affect available balance calculations. -# -# Valid options are: -# 'accrued': sum of full value of all non-expired holds. -# 'amortized': sum of each hold is amortized over the time remaining until expiry. -# -# For instance, if 12 hours remained on a gas hold with a 24-hour `gas_hold_interval`, -# with accrued, the full hold amount would be applied -# with amortized, half the hold amount would be applied -gas_hold_balance_handling = { type = 'accrued' } -# Defines how long gas holds last. -# -# If fee_handling is set to 'no_fee', the system places a balance hold on the payer -# equal to the value the fee would have been. Such balance holds expire after a time -# interval has elapsed. This setting controls how long that interval is. The available -# balance of a purse equals its total balance minus the held amount(s) of non-expired -# holds (see gas_hold_balance_handling setting for details of how that is calculated). -# -# For instance, if gas_hold_interval is 24 hours and 100 gas is used from a purse, -# a hold for 100 is placed on that purse and is considered when calculating total balance -# for 24 hours starting from the block_time when the hold was placed. -gas_hold_interval = '24 hours' -``` - -## Computational and Storage Costs - -Despite the introduction of fee elimination, the network continues to track [computational cost](../design/casper-design.md#measuring-computational-work-execution-semantics-gas) based on opcodes as defined in the chainspec, thus retaining the [gas pricing mechanism](./gas-concepts.md). Opcodes enable Casper nodes to agree on the computational cost of transactions, commonly known as gas. This mechanism is a solution to the halting problem in a distributed network, and it abstracts the computational cost in a way that is deterministically consistent across multiple machines. - -Storage costs are also tracked and calculated using gas. Data written to global state is recorded forever and has a cost; therefore, the network charges for the Wasm that stores data in global state. - -This feature complements the [dynamic gas pricing](./dynamic-gas-pricing.md) model introduced and configured to scale gas costs based on network utilization. diff --git a/versioned_docs/version-2.0.0/concepts/economics/gas-concepts.md b/versioned_docs/version-2.0.0/concepts/economics/gas-concepts.md index 283511696..f2ea778a2 100644 --- a/versioned_docs/version-2.0.0/concepts/economics/gas-concepts.md +++ b/versioned_docs/version-2.0.0/concepts/economics/gas-concepts.md @@ -10,7 +10,7 @@ title: Gas Cost Gas is a conceptual measure of resources used while executing transactions on the blockchain. Gas cost is the amount of gas consumed during the processing cycles that execute a transaction on the network. It correlates directly with the amount of computer processing a validator needs to provide to execute a transaction. -Gas fees are consumed on the network irrespective of whether a transaction was successful or not. Even when a transaction fails, the network measures [computational work as gas](../design/casper-design.md#measuring-computational-work-execution-semantics-gas) because it consumes resources and space on the block as the validator attempts to execute it. Depending on how the network was configured, the transaction fee may or may not be refunded, or a hold may placed on the paying purse. See [fee elimination](./fee-elimination.md) for more details. +Gas fees are consumed on the network irrespective of whether a transaction was successful or not. Even when a transaction fails, the network measures [computational work as gas](../design/casper-design.md#measuring-computational-work-execution-semantics-gas) because it consumes resources and space on the block as the validator attempts to execute it. Depending on how the network was configured, the transaction fee may or may not be refunded. ## How is gas cost determined? diff --git a/versioned_docs/version-2.0.0/concepts/economics/index.md b/versioned_docs/version-2.0.0/concepts/economics/index.md index 7bc7d3df7..595d39828 100644 --- a/versioned_docs/version-2.0.0/concepts/economics/index.md +++ b/versioned_docs/version-2.0.0/concepts/economics/index.md @@ -45,7 +45,7 @@ _Users_ execute session and contract code using the platform's computational res ### Incentives (runtime layer) {#incentives-runtime-layer} -The Casper node software can be configured to support various fee, refund, and cost-handling strategies. The Condor release on Mainnet has enabled a [fee elimination](./fee-elimination.md) model by default, setting the `no_fee`,`no_refund`, and `fixed` pricing configurations in the network's chainspec. +The Casper node software can be configured to support various fee, refund, and cost-handling strategies. Subject to governance voting, a future release(after Casper 2.0 launch) will enable fee elimination model by default, setting the `no_fee`,`no_refund`, and `fixed` pricing configurations in the network's chainspec. The `no_fee` mode means the token is put on hold instead of being taken from the payer. The hold interval is configured in the chainspec. The hold release mechanism is based on the "accrued" or "amortized" settings in the chainspec. Accrued holds are released after a certain amount of time has passed. Amortized holds are released using a linear schedule over a specified period. @@ -55,7 +55,7 @@ Fixed pricing means the gas costs are determined using a cost table, and transac When fees are eliminated, the block proposer receives validator credits instead of transaction fees. These credits contribute to the validator's total weight, determining their chances of winning a slot in the next era. Validators get rewards for proposing a block and creating and publishing finality signatures. In essence, gas/balance holds ensure that the network still compensates validators for their computations. -The fee elimination model is different than the refund model introduced on Mainnet with release 1.5.6 and has replaced the refund behavior. Since all these behaviors are configurable, [private networks](../../operators/setup-network/create-private.md) can set their fee, refund, and pricing strategies. +The fee elimination model will be different from the refund model introduced on Mainnet with release 1.5.6 and has replaced the refund behavior. Since all these behaviors are configurable, [private networks](../../operators/setup-network/create-private.md) can set their fee, refund, and pricing strategies. ## Ecosystem {#ecosystem} diff --git a/versioned_docs/version-2.0.0/concepts/economics/runtime.md b/versioned_docs/version-2.0.0/concepts/economics/runtime.md index 51a931da4..07b2b6140 100644 --- a/versioned_docs/version-2.0.0/concepts/economics/runtime.md +++ b/versioned_docs/version-2.0.0/concepts/economics/runtime.md @@ -5,9 +5,8 @@ slug: /runtime # Runtime Economics -The economics of the runtime layer should incentivize efficient allocation of computational resources, primarily CPU time, to users. The Condor release has introduced several new economic features: +The economics of the runtime layer should incentivize efficient allocation of computational resources, primarily CPU time, to users. The Casper 2.0 release has introduced several new economic features: -- A new mode of paying for computation in Mainnet, where tokens previously assessed as fees are now held for a predetermined period. Held tokens become available to users at the expiry of a predetermined time, or on a linear schedule over a specified period. Note: Increasing the duration of holds reduces the long-run equilibrium average available CSPR balance for an attacker. See [Fee Elimination](./fee-elimination.md) for more details. - A form of [dynamic pricing](#dynamic-gas-pricing) that increments or decrements the gas price in motes for a new era depending on blockchain utilization in the previous era. - Blocks are structured into [lanes](#lanes-lanes) that can only hold a particular number of transactions of specified types. @@ -47,7 +46,7 @@ There are several platform parameters that delineate the sets of transactions th - The block size limit imposes an absolute ceiling on the total byte size of included transactions. - Individual transaction size limits are also enforced. -These are the lane configuration settings for the Condor release on Mainnet: +These are the lane configuration settings for the Casper 2.0 release on Mainnet: ```toml @@ -62,16 +61,21 @@ These are the lane configuration settings for the Condor release on Mainnet: # Note: For the given mainnet implementation we specially reserve the label 2 for install and upgrades and # the lane must be present and defined. # Different casper networks may not impose such a restriction. -# [1] -> Max transaction size in bytes for a given transaction in a certain lane +# [1] -> Max serialized length of the entire transaction in bytes for a given transaction in a certain lane # [2] -> Max args length size in bytes for a given transaction in a certain lane -# [3] -> Transaction gas limit size in bytes for a given transaction in a certain lane +# [3] -> Transaction gas limit for a given transaction in a certain lane # [4] -> The maximum number of transactions the lane can contain -native_mint_lane = [0, 1024, 1024, 65_000_000_000, 650] -native_auction_lane = [1, 2048, 2048, 362_500_000_000, 145] -wasm_lanes = [[2, 1_048_576, 2048, 1_000_000_000_000, 1], [3, 344_064, 1024, 500_000_000_000, 3], [4, 172_032, 1024, 50_000_000_000, 7], [5, 12_288, 512, 1_500_000_000, 15]] +native_mint_lane = [0, 2048, 1024, 100_000_000, 650] +native_auction_lane = [1, 3096, 2048, 2_500_000_000, 650] +install_upgrade_lane = [2, 750_000, 2048, 1_000_000_000_000, 1] +wasm_lanes = [ + [3, 750_000, 2048, 1_000_000_000_000, 1], + [4, 131_072, 1024, 100_000_000_000, 2], + [5, 65_536, 512, 5_000_000_000, 80] +] ``` -These are the block gas and size limits for the Condor release on Mainnet: +These are the block gas and size limits for the Casper 2.0 release on Mainnet: ```toml @@ -80,13 +84,11 @@ These are the block gas and size limits for the Condor release on Mainnet: # Maximum block size in bytes including transactions contained by the block. 0 means unlimited. max_block_size = 5_242_880 # The upper limit of total gas of all transactions in a block. -block_gas_limit = 3_300_000_000_000 +block_gas_limit = 1_625_000_000_000 ``` ## Dynamic Gas Pricing A [dynamic gas pricing](./dynamic-gas-pricing.md) system assigns the gas price based on block vacancy (or consumption), preventing malicious actors from flooding the network with useless transactions and ensuring network integrity. Dynamic gas pricing acts as a supply and demand-based check on the cost of network usage. If usage is low, the price multiple drifts down over time, incentivizing casual usage. If usage is high, the price multiple climbs up, incentivizing prioritized usage. Dynamic gas pricing also protects against long-range consumption attacks. An attacker attempting to fill blocks to deny usage drives the price up, which requires them to have increasing amounts of tokens available to cover rising gas costs to maintain their attack. -## Eliminating Gas Fees {#gas-fees} - -See [Gas](./gas-concepts.md) and [Fee Elimination](./fee-elimination.md) for more details. +See [Gas](./gas-concepts.md) for more details. diff --git a/versioned_docs/version-2.0.0/concepts/glossary/A.md b/versioned_docs/version-2.0.0/concepts/glossary/A.md index 983856a6a..9dfc6fd2f 100644 --- a/versioned_docs/version-2.0.0/concepts/glossary/A.md +++ b/versioned_docs/version-2.0.0/concepts/glossary/A.md @@ -8,7 +8,7 @@ ## Account {#account} -An Account is a structure that represents a user on a Casper network. Information on creating an account can be found [here](../design/casper-design.md#accounts-head). Casper's Condor release introduces the concept of an [addressable entity](#addressable-entity), which contains an account entity type that supersedes legacy accounts. +An Account is a structure that represents a user on a Casper network. Information on creating an account can be found [here](../design/casper-design.md#accounts-head). Casper 2.0 release introduces the concept of an [addressable entity](#addressable-entity), which contains an account entity type that supersedes legacy accounts. ## Account Hash {#account-hash} diff --git a/versioned_docs/version-2.0.0/concepts/glossary/D.md b/versioned_docs/version-2.0.0/concepts/glossary/D.md index e3f9f1125..3a62db6f8 100644 --- a/versioned_docs/version-2.0.0/concepts/glossary/D.md +++ b/versioned_docs/version-2.0.0/concepts/glossary/D.md @@ -22,7 +22,7 @@ Delegators are users who participate in the platform's security by delegating th Deploys are units of work when executed cause global state to be altered. Deploys can contain Wasm to be executed and/or Wasm to be stored on chain. Among many examples, Deploys can transfer tokens from one Account's purse to another, reward node validation, or execute Wasm on the network. -Casper's Condor release introduces the [Transaction](./T.md#transaction). Legacy deploys are a subset of the new transaction architecture and, in most cases, will continue to function as expected. +Casper 2.0 release introduces the [Transaction](./T.md#transaction). Legacy deploys are a subset of the new transaction architecture and, in most cases, will continue to function as expected. All deploys on a Casper network can be broadly categorized as some unit of work that, when executed and committed, affects change to the [global state](./G.md#global-state). diff --git a/versioned_docs/version-2.0.0/concepts/glossary/T.md b/versioned_docs/version-2.0.0/concepts/glossary/T.md index 495f87c9f..53e580ac8 100644 --- a/versioned_docs/version-2.0.0/concepts/glossary/T.md +++ b/versioned_docs/version-2.0.0/concepts/glossary/T.md @@ -12,7 +12,7 @@ A type of cryptocurrency that represents an asset. See [CSPR](./C.md#cspr). ## Transaction {#transaction} -Transactions are a unit of work sent by a client to the network, which when executed can cause global state to be altered. They were introduced with Casper's Condor release and supersede the concept of a [Deploy](./D.md#deploy). Transactions offer more efficient means of interacting with a Casper network, but legacy deploys will continue to function, in most cases. More information on transactions can be found [here](../transactions.md). +Transactions are a unit of work sent by a client to the network, which when executed can cause global state to be altered. They were introduced with Casper 2.0 release and supersede the concept of a [Deploy](./D.md#deploy). Transactions offer more efficient means of interacting with a Casper network, but legacy deploys will continue to function, in most cases. More information on transactions can be found [here](../transactions.md). ## Turing-complete blockchain {#turing-complete-blockchain} diff --git a/versioned_docs/version-2.0.0/concepts/serialization/structures.md b/versioned_docs/version-2.0.0/concepts/serialization/structures.md index c3c018c2c..dbd9f0f0a 100644 --- a/versioned_docs/version-2.0.0/concepts/serialization/structures.md +++ b/versioned_docs/version-2.0.0/concepts/serialization/structures.md @@ -2,7 +2,7 @@ ## Account {#serialization-standard-account} -An Account is a structure that represented a user on a legacy Casper network. Alongside the Condor protocol release, `Accounts` were replaced with `AddressableEntities` of the type `Account`. The account structure consists of the following fields: +An Account is a structure that represented a user on a legacy Casper network. Alongside the Casper 2.0 protocol release, `Accounts` were replaced with `AddressableEntities` of the type `Account`. The account structure consists of the following fields: - [`account_hash`](./types.md#account-hash) @@ -55,7 +55,7 @@ A block is structurally defined as follows: Further, a block may consist of one of the following types: -- `Version1`: A legacy block created prior to the Condor upgrade. +- `Version1`: A legacy block created prior to the Casper 2.0 upgrade. - `Version2`: A modern block. @@ -116,7 +116,7 @@ Note that `EraEndV2` is an optional field. Thus the above scheme only applies if ### BlockBodyV1 {#blockbodyV1} -The body portion of a block, prior to the Condor upgrade, is structurally defined as: +The body portion of a block, prior to the Casper 2.0 upgrade, is structurally defined as: - `proposer`: The PublicKey which proposed this block. - `deploy_hashes`: Is a vector of hex-encoded hashes identifying Deploys included in this block. diff --git a/versioned_docs/version-2.0.0/concepts/serialization/types.md b/versioned_docs/version-2.0.0/concepts/serialization/types.md index 37babce96..ec010403b 100644 --- a/versioned_docs/version-2.0.0/concepts/serialization/types.md +++ b/versioned_docs/version-2.0.0/concepts/serialization/types.md @@ -166,7 +166,7 @@ There are two possible versions for `BlockSignatures`, with a prefixed `u8` tag ### BlockSignaturesV1 {#block-signatures-v1} -`BlockSignaturesV1` is a legacy version of `BlockSignatures` that applies to blocks created before the Condor release. The structure is as follows: +`BlockSignaturesV1` is a legacy version of `BlockSignatures` that applies to blocks created before the Casper 2.0 release. The structure is as follows: - [`block_hash`](./structures.md#block-hash): The block hash of the associated block. It serializes as the byte representation of the hash itself. @@ -176,7 +176,7 @@ There are two possible versions for `BlockSignatures`, with a prefixed `u8` tag ### BlockSignaturesV2 {#block-signatures-v2} -`BlockSignaturesV2` is the current version of `BlockSignatures` that applies to blocks created after the Condor release. The structure is as follows: +`BlockSignaturesV2` is the current version of `BlockSignatures` that applies to blocks created after the Casper 2.0 release. The structure is as follows: - [`block_hash`](./structures.md#block-hash): The block hash of the associated block. It serializes as the byte representation of the hash itself. @@ -226,7 +226,7 @@ The type of byte code, serialized as a single `u8` value. A `0` indicates empty ## CallStackElement {#call-stack-element} -`CallStackElement` is a legacy `enum` created pre-Condor release that represents the origin of a sub-call in a call stack. It begins with a `u8` tag that describes the type of caller as follows: +`CallStackElement` is a legacy `enum` created pre-Casper 2.0 release that represents the origin of a sub-call in a call stack. It begins with a `u8` tag that describes the type of caller as follows: - `Session`: Session code, which serializes as a `u8` tag of 0 followed by the [`account_hash`](#account-hash) of the calling account. diff --git a/versioned_docs/version-2.0.0/concepts/transactions.md b/versioned_docs/version-2.0.0/concepts/transactions.md index 764a5077a..e691674da 100644 --- a/versioned_docs/version-2.0.0/concepts/transactions.md +++ b/versioned_docs/version-2.0.0/concepts/transactions.md @@ -4,9 +4,9 @@ title: Transactions # Transactions -Transactions are [a new structure](../developers/json-rpc/types_chain.md#transaction) that allows users to enact changes in global state on a Casper network. Introduced with the Condor release, Transactions supersede legacy [Deploys](./glossary/D.md#deploy), allowing for a variety of Wasm-less interactions with the blockchain. These new interactions are more efficient than Deploys and provide a level of convenience that was not previously available. +Transactions are [a new structure](../developers/json-rpc/types_chain.md#transaction) that allows users to enact changes in global state on a Casper network. Introduced with the Casper 2.0 release, Transactions supersede legacy [Deploys](./glossary/D.md#deploy), allowing for a variety of Wasm-less interactions with the blockchain. These new interactions are more efficient than Deploys and provide a level of convenience that was not previously available. -The existing Deploy model is deprecated as of Condor, and support will be removed entirely in a future major release. However, Condor will continue to accept valid Deploys and will attempt to execute them. Most existing deploys that function today will continue to do so. However, deploys that depend on a data type or FFI function that has been altered or removed will fail to execute. +The existing Deploy model is deprecated as of Casper 2.0, and support will be removed entirely in a future major release. However, Casper 2.0 will continue to accept valid Deploys and will attempt to execute them. Most existing deploys that function today will continue to do so. However, deploys that depend on a data type or FFI function that has been altered or removed will fail to execute. ## Transaction Types diff --git a/versioned_docs/version-2.0.0/developers/cli/opcode-costs.md b/versioned_docs/version-2.0.0/developers/cli/opcode-costs.md index 0795f7c68..31a4a05e1 100644 --- a/versioned_docs/version-2.0.0/developers/cli/opcode-costs.md +++ b/versioned_docs/version-2.0.0/developers/cli/opcode-costs.md @@ -6,7 +6,6 @@ title: OpCode Costs Tables The following tables outline the cost, in motes, for a given operation on Casper's Mainnet. If you are building for a private network or other instance of Casper, you will need to verify these costs in the associated `chainspec.toml`. -More information on `chainspec`s for private networks can be found [here](/operators/setup-network/chain-spec.md) :::note diff --git a/versioned_docs/version-2.0.0/developers/cli/sending-transactions.md b/versioned_docs/version-2.0.0/developers/cli/sending-transactions.md index 4550e69a5..755874772 100644 --- a/versioned_docs/version-2.0.0/developers/cli/sending-transactions.md +++ b/versioned_docs/version-2.0.0/developers/cli/sending-transactions.md @@ -1413,15 +1413,9 @@ A common question frequently arises: "How do I know what the payment amount (gas We recommend installing your contracts in a test environment, making sure the cost tables match those of the production Casper network to which you want to send the transaction. If you plan on sending a transaction to [Mainnet](https://cspr.live/), you can use the [Testnet](https://testnet.cspr.live/) to estimate the payment amount needed for the transaction. -:::note - -Casper's "Condor" release introduces a new payment system that includes the concept of [fee elimination](../../concepts/economics/fee-elimination.md). - -::: - If your test configuration matches your production [chainspec](../../concepts/glossary/C.md#chainspec), you can check the transaction status and roughly see how much it would cost. You can estimate the costs in this way and then add a small buffer to be sure. Refer to the [runtime economics](../../concepts/economics/runtime.md#gas-allocation) section for more details about gas usage and fees. -Please be aware that sending a transaction always requires payment. This is true regardless of the validity of included Wasm. Depending on how the network was configured, the transaction payment may or may not be refunded, or a hold may placed on the paying purse. See [fee elimination](../../concepts/economics/fee-elimination.md) for more details. +Please be aware that sending a transaction always requires payment. This is true regardless of the validity of included Wasm. Depending on how the network was configured, the transaction payment may or may not be refunded. If the transaction failure occurs after session execution begins, the penalty payment of 2.5 CSPR is included in the gas costs of the [failed execution](../../concepts/serialization/types.md#executionresultv2). diff --git a/versioned_docs/version-2.0.0/developers/dapps/setup-nctl.md b/versioned_docs/version-2.0.0/developers/dapps/setup-nctl.md index b5543e5b9..b12a3b8c5 100644 --- a/versioned_docs/version-2.0.0/developers/dapps/setup-nctl.md +++ b/versioned_docs/version-2.0.0/developers/dapps/setup-nctl.md @@ -182,7 +182,7 @@ Assuming you have set up a small local network, you can speed up the process of ::: -**Step 14.** Clone the _casper-sidecar_ software in your working directory. As part of Casper's Condor release, the sidecar is now necessary to interact with a Casper network and will handle any API requests. +**Step 14.** Clone the _casper-sidecar_ software in your working directory. As part of Casper 2.0 release, the sidecar is now necessary to interact with a Casper network and will handle any API requests. Instructions for MacOS and Linux: diff --git a/versioned_docs/version-2.0.0/index.md b/versioned_docs/version-2.0.0/index.md index d400820ec..c1b717e47 100644 --- a/versioned_docs/version-2.0.0/index.md +++ b/versioned_docs/version-2.0.0/index.md @@ -33,12 +33,18 @@ The Nav bar is along the top of your screen and contains the following elements - **Feedback** Allows you to submit requests for improvement to this docs site. -- **Condor** - This brings you to the blog posts tagged with "Condor". +- **Casper 2.0** + This brings you to the key Casper 2.0 pages. -- **Blog** - This brings you to the Blog section of the docs site, where long form articles can be published. +- **Tutorials** + This brings you to the Tutorials section of the docs site, where articles useful for developers can be found. -### Disclaimer +### Legal Disclaimer -[Legal Disclaimer](./disclaimer.md). +The information contained in this documentation is provided for general informational purposes only. The documentation is provided "as is" without warranty of any kind, express or implied. + +Use of this documentation and the Casper network is subject to both this summary disclaimer and the full disclaimer provided on the dedicated [Disclaimer](./disclaimer.md) page. By accessing or using this documentation in any capacity, you acknowledge and agree to be bound by both. + +Use of this documentation and the Casper network is at your own risk. Code examples, APIs, SDKs, and smart contract templates are provided "as is" and may contain errors, bugs, or vulnerabilities. You are responsible for testing, validating, and securing your applications before deploying them to any network. + +Casper Association and its affiliates shall have no liability for damages of any kind arising out of the use, reference to, or reliance on this documentation or any of the content contained herein. In no event will Casper Association and/or its affiliates be liable to any person or entity for any damages, losses, liabilities, costs or expenses of any kind, whether direct or indirect, consequential, compensatory, incidental, actual, exemplary, punitive or special for the use of, reference to, or reliance on this documentation including, without limitation, any loss of business, revenues, profits, data, use, goodwill or other intangible losses. This documentation or any other associated content does not constitute any advice to buy or sell Casper tokens. diff --git a/versioned_docs/version-2.0.0/operators/setup-network/chain-spec.md b/versioned_docs/version-2.0.0/operators/setup-network/chain-spec.md deleted file mode 100644 index 651521be9..000000000 --- a/versioned_docs/version-2.0.0/operators/setup-network/chain-spec.md +++ /dev/null @@ -1,311 +0,0 @@ ---- -title: The Chainspec ---- - -# The Blockchain Specification {#the-chain-specification} - -The blockchain specification, or `chainspec`, is a collection of configuration settings describing the network state at genesis and upgrades to basic system functionality (including system contracts and gas costs) occurring after genesis. This page describes each field in the chainspec, based on version 2.0.0 of the Casper node. The chainspec can and should be customized for private networks. The chainspec attributes are divided into categories based on what they are configuring. - -## protocol - -These settings describe the active protocol version. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|version | The Casper node protocol version. | '2.0.0'| -|hard_reset | When set to true, clear blocks and transactions back to the switch block (the end of the last era) just before the activation point. Used during the upgrade process to reset the network progress. In most cases, this setting should be true.| true| -|activation_point | The protocol version that should become active.

If it is a timestamp string, it represents the timestamp for the genesis block. This is the beginning of Era 0. By this time, a sufficient majority (> 50% + F/2 β€” see the `finality_threshold_fraction` below) of validator nodes must be running to start the blockchain. This timestamp is also used in seeding the pseudo-random number generator used in the contract runtime for computing the genesis post-state hash.

If it is an integer, it represents an era ID, meaning the protocol version becomes active at the start of this era. | 11100| - - -## network - -The following settings configure the networking layer. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|name | Human readable network name for convenience. The state_root_hash of the genesis block is the true identifier. The name influences the genesis hash by contributing to seeding the pseudo-random number generator used in the contract runtime for computing the genesis post-state hash. | 'casper'| -|maximum_net_message_size | The maximum size of an acceptable networking message in bytes. Any message larger than this will be rejected at the networking level. | 25_165_824| - -## core - -These settings manage the core protocol behavior. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|era_duration | Era duration. | '120 minutes'| -|minimum_era_height | Minimum number of blocks per era. An era will take longer than `era_duration` if that is necessary to reach the minimum height. | 20 | -|minimum_block_time | Minimum difference between a block's and its child's timestamp. | '16384 ms'| -|validator_slots | Number of slots available in the validator auction. | 100| -|finality_threshold_fraction | A number between 0 and 1 representing the fault tolerance threshold as a fraction used by the internal finalizer.
It is the fraction of validators that would need to equivocate to make two honest nodes see two conflicting blocks as finalized.
Let's say this value is F. A higher value F makes it safer to rely on finalized blocks. It also makes it more difficult to finalize blocks, however, and requires strictly more than (F + 1)/2 validators to be working correctly. | [1, 3]| -|start_protocol_version_with_strict
_finality_signatures_required |Protocol version from which nodes are required to hold strict finality signatures.| '1.5.0'| -|legacy_required_finality|The finality required for legacy blocks. Options are 'Strict', 'Weak', and 'Any'.
Used to determine finality sufficiency for new joiners syncing blocks created in a protocol version before the start protocol version with strict finality signatures. |'Strict'| -|migrate_legacy_accounts| If true, the protocol upgrade will migrate ALL user accounts to addressable entity. If false, user accounts will be left as they are and will be lazily migrated on a per-account basis if / when that account is used during transaction execution. | true| -|migrate_legacy_contracts| If true, the protocol upgrade will migrate ALL user contracts to addressable entity. If false, user contracts will be left as they are and will be lazily migrated on a per-contract basis if / when that contract is used during transaction execution. | true| -|auction_delay | Number of eras before an auction defines the set of validators. If a validator bonds with a sufficient bid in era N, it will be a validator in era N + auction_delay + 1. | 1| -|locked_funds_period | The period after genesis during which a genesis validator's bid is locked. | '0 days'| -|vesting_schedule_period | The period in which the genesis validator's bid is released over time after it is unlocked. | '0 weeks'| -|unbonding_delay | Default number of eras that need to pass to be able to withdraw unbonded funds. | 7| -|round_seigniorage_rate | Round seigniorage rate represented as a fraction of the total supply.
- Annual issuance: 8%.
- Minimum block time: 2^15 milliseconds.
- Ticks per year: 31536000000.

(1+0.08)^((2^15)/31536000000)-1 is expressed as a fractional number below in Python:
`Fraction((1 + 0.08)**((2**15)/31536000000) - 1).limit_denominator(1000000000)` | [7, 175070816]| -|max_associated_keys | Maximum number of associated keys for a single account. | 100| -|max_runtime_call_stack_height | Maximum height of the contract runtime call stack. | 12| -|minimum_delegation_amount | Minimum allowed delegation amount in motes. | 500_000_000_000| -|maximum_delegation_amount | Maximum allowed delegation amount in motes. | 1_000_000_000_000_000_000| -|prune_batch_size | Global state prune batch size for tip pruning. Possible values:
- 0 when the feature is OFF
- Integer if the feature is ON, representing the number of eras to process per block.| 0| -|strict_argument_checking | Enables strict arguments checking when calling a contract; i.e., all non-optional args are provided and they are of the correct `CLType`. | false| -|simultaneous_peer_requests | Number of simultaneous peer requests. | 5| -|consensus_protocol | The consensus protocol to use. Options are 'Zug' or 'Highway'. | 'Zug'| -|max_delegators_per_validator | The maximum amount of delegators per validator. If the value is 0, there is no maximum capacity. | 1200| -|finders_fee | The split in finality signature rewards between block producer and participating signers. | [1, 5]| -|finality_signature_proportion | The proportion of baseline rewards going to reward finality signatures specifically. | [1, 2]| -|signature_rewards_max_delay | Lookback interval indicating how many past blocks we are looking at to reward. | 3| -|allow_unrestricted_transfers | Allows peer to peer transfers between users. Setting this to false makes sense only for private chains.| true| -|allow_auction_bids | Enables the auction entry points 'delegate' and 'add_bid'. Setting this to false makes sense only for private chains that don't need to auction new validator slots. These auction entry points will return an error if called, when this option is set to false. | true| -|compute_rewards | If set to false, then consensus doesn't compute rewards and always uses 0. | true| -|refund_handling | Defines how refunds of the unused portion of payment amounts are calculated and handled. Valid options are: refund (a ratio of the unspent token is returned to the spender); burn (a ratio of the unspent token is burned); no_refund (no refunds are paid out) | { type = 'no_refund' }| -|fee_handling | Defines how fees are handled. Valid options are: no_fee (fees are eliminated); pay_to_proposer (fees are paid to the block proposer); accumulate (fees are accumulated in a special purse and distributed at the end of each era evenly among all administrator accounts); burn (fees are burned) | { type = 'no_fee' } | -|validator_credit_cap | If a validator would recieve a validator credit, it cannot exceed this percentage of their total stake. | [1, 5] | -|pricing_handling | Defines how pricing is handled. Valid options are: classic (senders of transaction self-specify how much they pay); fixed (costs are fixed, per the cost table); reserved (prepaid transaction, currently not supported) | { type = 'fixed' } | -|allow_reservations | Does the network allow pre-payment / reservations for future execution? Currently not supported.| false | -|gas_hold_balance_handling | Defines how gas holds affect available balance calculations. Valid options are: accrued (sum of full value of all non-expired holds) and amortized (sum of each hold is amortized over the time remaining until expiry). | { type = 'accrued' } | -|gas_hold_interval | Defines how long gas holds last. | '24 hours'| -|administrators | List of public keys of administrator accounts. Setting this option makes only on private chains which require administrator accounts for regulatory reasons. | [] | - -See the [Fee Elimination](../../concepts/economics/fee-elimination.md) page for more details regarding `refund_handling`, `fee_handling`, `validator_credit_cap`, `pricing_handling`, `gas_hold_balance_handling`, and `gas_hold_interval`. - -## highway - -These settings configure the Highway Consensus protocol. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|maximum_round_length | Highway dynamically chooses its round length between `minimum_block_time` and `maximum_round_length`. | '66 seconds'| - -## transactions - -These settings manage transactions and their lifecycle. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|max_ttl | The duration after the transaction timestamp during which the transaction can be included in a block. | '2 hours'| -|block_max_approval_count | The maximum number of approvals permitted in a single block. | 2600| -|max_block_size | Maximum block size in bytes, including transactions contained by the block. 0 means unlimited. | 5_242_880| -|block_gas_limit | The upper limit of the total gas of all transactions in a block. | 3_300_000_000_000| -|native_transfer_minimum_motes | The minimum amount in motes for a valid native transfer. | 2_500_000_000| -|max_timestamp_leeway | The maximum value to which `transaction_acceptor.timestamp_leeway` can be set in the config.toml file. | '5 seconds' | - -### transactions.v1 - -These settings manage the transaction lanes including both native and Wasm based interactions. See [Lanes and gas costs](../../concepts/economics/runtime.md#lanes-and-gas-costs-lanes) for details. - -|Attribute | Mainnet Setting | -|----------------- |-----------------| -|native_mint_lane | [0, 1024, 1024, 65_000_000_000, 650] | -|native_auction_lane | [1, 2048, 2048, 362_500_000_000, 145] | -|wasm_lanes | [[2, 1_048_576, 2048, 1_000_000_000_000, 1], [3, 344_064, 1024, 500_000_000_000, 3], [4, 172_032, 1024, 50_000_000_000, 7], [5, 12_288, 512, 1_500_000_000, 15]] | - - -### transactions.deploy - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|max_payment_cost | The maximum number of motes allowed to be spent during payment. 0 means unlimited. | '0'| -|max_dependencies | The maximum number of other transactions a transaction can depend on (requiring them to have been executed before it can execute). | 10| -|payment_args_max_length | The limit of length of serialized payment code arguments. | 1024| -|session_args_max_length | The limit of length of serialized session code arguments. | 1024| - -## wasm - -The following are Wasm-related settings. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|max_memory | Amount of free memory (in 64 kB pages) each contract can use for its stack. | 64| -|max_stack_height | Max stack height (native WebAssembly stack limiter). | 500| - -### wasm.storage_costs - -These settings manage Wasm storage costs. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|gas_per_byte | Gas charged per byte stored in global state. | 1_117_587| - -### wasm.opcode_costs - -The following settings manage the cost table for Wasm opcodes. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|bit | Bit operations multiplier. | 300 | -|add | Arithmetic add operations multiplier. | 210| -|mul | Mul operations multiplier. | 240| -|div | Div operations multiplier. | 320| -|load | Memory load operation multiplier. | 2_500| -|store |Memory store operation multiplier. | 4_700| -|const | Const store operation multiplier. | 110| -|local | Local operations multiplier. | 390| -|global | Global operations multiplier. | 390| -|integer_comparison | Integer operations multiplier. | 250| -|conversion | Conversion operations multiplier. | 420| -|unreachable | Unreachable operation multiplier. | 270| -|nop | Nop operation multiplier. | 200| -|current_memory | Get the current memory operation multiplier. | 290| -|grow_memory | Grow memory cost per page (64 kB). | 240_000| - -### wasm.opcode_costs.control_flow - -These settings manage costs for control flow operations. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|block | Cost for `block` opcode. | 440| -|loop | Cost for `loop` opcode. | 440| -|if | Cost for `if` opcode. | 440| -|else | Cost for `else` opcode. | 440| -|end | Cost for `end` opcode. | 440| -|br | Cost for `br` opcode. | 35_000| -|br_if | Cost for `br_if` opcode. | 35_000| -|return | Cost for `return` opcode. | 440| -|select | Cost for `select` opcode. | 440| -|call | Cost for `call` opcode. | 68_000| -|call_indirect | Cost for `call_indirect` opcode. | 68_000| -|drop | Cost for `drop` opcode. | 440| - -### wasm.opcode_costs.control_flow.br_table - -The following settings manage `br_table` Wasm opcodes. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|cost | Fixed cost per `br_table` opcode. | 35_000| -|size_multiplier | Size of target labels in the `br_table` opcode will be multiplied by `size_multiplier`. | 100| - - -## wasm.messages_limits - -The following chainspec settings manage the cost of contract-level messages. - - -|Attribute |Description | Mainnet Setting | -|----------------------- |-----------------------------------------------|----------------------| -|max_topic_name_size | Maximum size of the topic name. | 256 | -|max_topics_per_contract | Maximum number of topics that can be added for each contract. | 128 | -|max_message_size | Maximum size in bytes of the serialized message payload. | 1_024| - - -### wasm.host_function_costs - -The following settings specify costs for low-level bindings for host-side ("external") functions. More documentation and host function declarations are located in [smart_contracts/contract/src/ext_ffi.rs](https://github.com/casper-network/casper-node/blob/release-1.5.2/smart_contracts/contract/src/ext_ffi.rs). - - -|Host-Side Function| Cost | Arguments | -| ---------------- | ---- | --------- | -| add | 5_800 | [0, 0, 0, 0] | -| add_associated_key | 1_200_000 | [0, 0, 0] | -| add_contract_version | 200 | [0, 0, 0, 0, 120_000, 0, 0, 0, 30_000, 0, 0] | -| blake2b | 1_200_000 | [0, 120_000, 0, 0] | -| call_contract | 300_000_000 | [0, 0, 0, 120_000, 0, 120_000, 0] | -| call_versioned_contract | 300_000_000 | [0, 0, 0, 0, 120_000, 0, 120_000, 0] | -| create_contract_package_at_hash | 200 | [0, 0] | -| create_contract_user_group | 200 | [0, 0, 0, 0, 0, 0, 0, 0] | -| create_purse | 2_500_000_000 | [0, 0] | -| disable_contract_version | 200 | [0, 0, 0, 0] | -| get_balance | 3_000_000 | [0, 0, 0] | -| get_blocktime | 330 | [0] | -| get_caller | 380 | [0] | -| get_key | 2_000 | [0, 440, 0, 0, 0] | -| get_main_purse | 1_300 | [0] | -| get_named_arg | 200 | [0, 120_000, 0, 120_000] | -| get_named_arg_size | 200 | [0, 0, 0] | -| get_phase | 710 | [0] | -| get_system_contract | 1_100 | [0, 0, 0] | -| has_key | 1_500 | [0, 840] | -| is_valid_uref | 760 | [0, 0] | -| load_named_keys | 42_000 | [0, 0] | -| new_uref | 17_000 | [0, 0, 590] | -| random_bytes | 200 | [0, 0] | -| print | 20_000 | [0, 4_600] | -| provision_contract_user_group_uref | 200 | [0, 0, 0, 0, 0] | -| put_key | 100_000_000 | [0, 120_000, 0, 120_000] | -| read_host_buffer | 3_500 | [0, 310, 0] | -| read_value | 60_000 | [0, 120_000, 0] | -| read_value_local | 5_500 | [0, 590, 0] | -| remove_associated_key | 4_200 | [0, 0] | -| remove_contract_user_group | 200 | [0, 0, 0, 0] | -| remove_contract_user_group_urefs | 200 | [0, 0, 0, 0, 0, 120_000] | -| remove_key | 61_000 | [0, 3_200] | -| ret | 23_000 | [0, 420_000] | -| revert | 500 | [0] | -| set_action_threshold | 74_000 | [0, 0] | -| transfer_from_purse_to_account | 2_500_000_000 | [0, 0, 0, 0, 0, 0, 0, 0, 0] | -| transfer_from_purse_to_purse | 82_000_000 | [0, 0, 0, 0, 0, 0, 0, 0] | -| transfer_to_account | 2_500_000_000 | [0, 0, 0, 0, 0, 0, 0] | -| update_associated_key | 4_200 | [0, 0, 0] | -| write | 14_000 | [0, 0, 0, 980] | -| dictionary_put | 9_500 | [0, 1_800, 0, 520] | -| enable_contract_version | 200 | [0, 0, 0, 0] | -| manage_message_topic | 200 | [0, 30_000, 0, 0] | -| emit_message | 200 | [0, 30_000, 0, 120_000] | -| cost_increase_per_message | 50 | | - - -## system_costs - -The following settings manage protocol operating costs. - -### system_costs.auction_costs - -These settings manage the costs of calling the `auction` system contract entrypoints. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|get_era_validators | Cost of calling the `get_era_validators` entrypoint. | 10_000| -|read_seigniorage_recipients | Cost of calling the `read_seigniorage_recipients` entrypoint. | 10_000| -|add_bid | Cost of calling the `add_bid` entrypoint. | 2_500_000_000| -|withdraw_bid | Cost of calling the `withdraw_bid` entrypoint. | 2_500_000_000| -|delegate | Cost of calling the `delegate` entrypoint. | 2_500_000_000| -|undelegate | Cost of calling the `undelegate` entrypoint. | 2_500_000_000| -|run_auction | Cost of calling the `run_auction` entrypoint. | 10_000| -|slash | Cost of calling the `slash` entrypoint. | 10_000| -|distribute | Cost of calling the `distribute` entrypoint. | 10_000| -|withdraw_delegator_reward | Cost of calling the `withdraw_delegator_reward` entrypoint. | 10_000| -|withdraw_validator_reward | Cost of calling the `withdraw_validator_reward` entrypoint. | 10_000| -|read_era_id | Cost of calling the `read_era_id` entrypoint. | 10_000| -|activate_bid | Cost of calling the `activate_bid` entrypoint. | 10_000| -|redelegate | Cost of calling the `redelegate` entrypoint. | 2_500_000_000| -|change_bid_public_key | Cost of calling the `change_bid_public_key` entrypoint. | 5_000_000_000 | - -### system_costs.mint_costs - -These settings manage the costs of calling the `mint` system contract entrypoints. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|mint | Cost of calling the `mint` entrypoint. | 2_500_000_000| -|reduce_total_supply | Cost of calling the `reduce_total_supply` entrypoint. | 10_000| -|create | Cost of calling the `create` entrypoint. | 2_500_000_000| -|balance | Cost of calling the `balance` entrypoint. | 10_000| -|burn | Cost of calling the `burn` entrypoint. | 10_000| -|transfer | Cost of calling the `transfer` entrypoint. | 10_000| -|read_base_round_reward | Cost of calling the `read_base_round_reward` entrypoint. | 10_000| -|mint_into_existing_purse | Cost of calling the `mint_into_existing_purse` entrypoint. | 2_500_000_000| - - -### system_costs.handle_payment_costs - -These settings manage the costs of calling entrypoints on the `handle_payment` system contract. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|get_payment_purse | Cost of calling the `get_payment_purse` entrypoint. |10_000| -|set_refund_purse | Cost of calling the `set_refund_purse` entrypoint. |10_000| -|get_refund_purse | Cost of calling the `get_refund_purse` entrypoint. |10_000| -|finalize_payment | Cost of calling the `finalize_payment` entrypoint. |10_000| - -### system_costs.standard_payment_costs - -These settings manage the costs of calling entrypoints on the `standard_payment` system contract. - -|Attribute |Description | Mainnet Setting | -|----------------- |-----------------------------------------------|-----------------| -|pay| Cost of calling the `pay` entrypoint and sending an amount to a payment purse. |10_000| \ No newline at end of file diff --git a/versioned_docs/version-2.0.0/operators/setup-network/create-private.md b/versioned_docs/version-2.0.0/operators/setup-network/create-private.md deleted file mode 100644 index e9c7bf56b..000000000 --- a/versioned_docs/version-2.0.0/operators/setup-network/create-private.md +++ /dev/null @@ -1,562 +0,0 @@ ---- -title: Private Network Setup ---- - -# Setting Up a Private Casper Network - -Casper private networks operate in a similar way to the Casper public network. The significant difference in private networks is a closed validator set and having administrator account(s) which can control regular accounts. Hence, there are specific configurations when setting up the genesis block and administrator accounts. Besides the main configuration options that the Casper platform provides, each customer may add other configuration options when setting up a private network. - -## Contents - -1) [Prerequisites](#prerequisites) - -2) [Setting up a Validator Node](#step-1-setting-up-a-validator-node) - -3) [Setting up the Directory](#step-2-setting-up-the-directory) - -4) [Configuring the Genesis Block](#step-3-configuring-the-genesis-block) - -5) [Configuring the Administrator Accounts](#step-4-configuring-the-administrator-accounts) - -6) [Starting the Casper Node](#step-5-starting-the-casper-node) - -7) [Testing the Private Network](#step-7-testing-the-private-network) - -8) [Setting up a Block Explorer](#setting-up-a-block-explorer) - -## Prerequisites -Follow these guides to set up the required environment and user accounts. -- [Setting up the Casper client](../../developers/prerequisites.md#install-casper-client) -- [Setting up the client for interacting with the network](https://github.com/casper-ecosystem/casper-client-rs/blob/dev/README.md#casper-client) -- [Setting up an Account](../../developers/prerequisites.md#setting-up-an-account) - - -## Step 1. Setting up a Validator Node -A [Casper node](../../concepts/glossary/N.md#node) is a physical or virtual device participating in a Casper network. You need to set up several [validator](../../concepts/glossary/V.md#validator) nodes on your private network. An [operator](../../concepts/glossary/O.md#operator) who has won an [auction](../../concepts/glossary/A.md#auction) bid will be a validator for the private network. - - -Use the below guides to set up and manage validator nodes. - -- [Casper node setup - GitHub guide](https://github.com/casper-network/casper-node/tree/master/resources/production#casper-node-setup): A guide to configuring a system with the new Rust node to operate within a network. -- [Basic node setup tutorial](../setup/basic-node-configuration.md): A guide on using the `casper-node-launcher`, generating directories and files needed for running casper-node versions and performing upgrades, generating keys, and setting up the configuration file for nodes. -- [Set up Mainnet and Testnet validator nodes](https://docs.cspr.community/): A set of guides for Mainnet and Testnet node-operators on setting up and configuring their Casper network validator nodes. - -Use these FAQ collections for tips and details for validators. -- [External FAQs on Mainnet and Testnet validator node setup](https://docs.cspr.community/docs/faq-validator.html) - -## Step 2. Setting up the Directory -Use these guides to set up your private network directories. You will find several main directories dedicated to different purposes. - -- Go through the [file location](../setup/basic-node-configuration.md#file-locations) section to understand how directories are created and managed in a Casper private network. -- Refer to the [setting up a new network](./chain-spec.md) guide to identify the required configuration files to set up a genesis block. - -## Step 3. Configuring the Genesis Block -A Casper private network contains a different set of configurations when compared to the public network. The [`chainspec.toml`](../../concepts/glossary/C.md#chainspec) file contains the required configurations for the genesis process in a private network. - -You should add the configuration options below to the `chainspec.toml` file inside the [private network directory](./create-private.md#step-2-setting-up-the-directory). - -### Unrestricted transfers configuration -This option disables unrestricted transfers between regular account purses. A regular account user cannot do a fund transfer when this attribute is set to false. Only administrators can transfer tokens freely between users and other administrators. - -```toml -[core] -allow_unrestricted_transfers = false -``` -In contrast, users in the public network can freely transfer funds to different accounts. - -:::note -A Casper private network doesn't support the minting process. Only admininstrator accounts can maintain funds. This is enabled by configuring these options: - -```toml -[core] -allow_unrestricted_transfers = false -compute_rewards = false -allow_auction_bids = false -refund_handling = { type = "refund", refund_ratio = [1, 1] } -fee_handling = { type = "accumulate" } -administrators = ["ADMIN_PUBLIC_KEY"] -``` - -The Casper Mainnet has different refund and fee handling configurations explained in more detail [here](../../concepts/economics/fee-elimination.md). - -```toml -[core] -allow_unrestricted_transfers = true -compute_rewards = true -allow_auction_bids = true -refund_handling = { type = 'no_refund' } -fee_handling = { type = 'no_fee' } -administrators = [] -``` - -::: - -### Refund handling configuration -This option manages the refund behavior at the finalization of a deploy execution. It changes the way the Wasm execution fees are distributed. After each deploy execution, the network calculates the amount of gas spent for the execution and manages to refund any remaining tokens to the user. - -A `refund_ratio` is specified as a proper fraction (the numerator must be lower or equal to the denominator). In the example below, the `refund_ratio` is 1:1. If 2.5 CSPR is paid upfront and the gas fee is 1 CSPR, 1.5 CSPR will be given back to the user. - - -```toml -[core] -refund_handling = { type = "refund", refund_ratio = [1, 1] } -``` - -Another example: a refund variant with `refund_ratio` of [0, 100] means that 0% is given back to the user after deducting gas fees. In other words, if a user paid 2.5 CSPR and the gas fee is 1 CSPR, the user will not get the remaining 1.5 CSPR in return. - -After deducting the gas fee, the distribution of the remaining payment amount is handled based on the [fee_handling](./create-private.md#fee-handling-config) configuration. - -Starting with the Condor release, a Casper private network can eliminate fees and, thus, not require refunds, similar to the Casper Mainnet: - -```toml -refund_handling = { type = 'no_refund' } -fee_handling = { type = 'no_fee' } -``` - -### Fee handling configuration -This option defines how to distribute the fees after refunds are handled. While refund handling defines the amount we pay back after a transaction, fee handling defines the methods of fee distribution after a refund is performed. - - -Set up the configuration as below: - -```toml -[core] -fee_handling = { type = "pay_to_proposer" } -``` - -The `fee_handling` configuration has four variations: -- `no_fee`: Fees are eliminated. No refunds are necessary. -- `pay_to_proposer`: The rest of the payment amount after deducing the gas fee from a refund is paid to the block's [proposer](../../concepts/glossary/P.md#proposer). -- `burn`: The tokens paid are burned, and the total supply is reduced. -- `accumulate`: The funds are transferred to a special accumulation purse. Here, the accumulation purse is owned by a handle payment system contract, and the amount is distributed among all the administrators defined at the end of a switch block. The fees are paid to the purse owned by the handle payment contract, and no tokens are transferred to the proposer when this configuration is enabled. - -### Auction behavior configuration - -A private network requires to have a fixed set of validators. This configuration restricts the addition of new validators to the private network. Hence, you are not allowed to bid new entries into the validator set. - - -Use the configuration below to limit the auction validators: - - -```toml -[core] -allow_auction_bids = false -``` - -Other configurations related to the auction: - -- `allow_auction_bids` - if this option is set to *false* then `add_bid` and `delegate` options are disabled. It also disables adding new validators to the system. Invoking those entry points leads to an `AuctionBidsDisabled` error. -- `core.compute_rewards` - if this option is set to *false*, then all the rewards on a switch block will be set to 0. The auction contract wouldn't process rewards distribution that would increase validator bids. - -In a public network, `allow_auction_bid` is set to *true*, which allows bidding for new entries and validator nodes. - -## Step 4. Configuring the Administrator Accounts -An administrator is mandatory for a private network since it manages all the other [validator](../../concepts/glossary/V.md#validator) accounts. There should be at least one administrator account configured within a network to operate it as a `private network`. You can create new administrators and [rotate the validator set](./create-private.md#step-6-rotating-the-validator-accounts) in a single configuration update. The operator must first ensure the `global_state.toml` file contains new administrators. The validator set is updated after if an administrator is also a validator. Also, only purses of administrator accounts can hold and distribute token balances. - -### Configuring administrator accounts - -Use this configuration option in the `chainspec.toml` to add administrator accounts to the private network: - -```toml -[core] -administrators = ["NEW_ACCOUNT_PUBLIC_KEY"] -``` - -**Note**: Regular accounts are not allowed to manage their associated keys on a private network. - -### Generating new administrator accounts - -Use the command below to generate new administrator accounts in your private network. This generates the contents of a `global_state.toml` with the entries required to create new administrator accounts at the upgrade point. - -```sh -global-state-update-gen \ - generate-admins --data-dir $DATA_DIR/global_state \ - --state-hash $STATE_ROOT_HASH \ - --admin $PUBLIC_KEY_HEX, $BALANCE -``` - -- `NEW_PUBLIC_KEY` - Public key of the administrator in a hex format. -- `NEW_BALANCE` - Balance for the administrator’s main purse. -- `DATA_DIR` - Path to the global state directory. -- `STATE_ROOT_HASH` - State root hash, taken from the latest block before an upgrade. - -### Managing accounts and smart contracts - -Only administrators have permission to control accounts and manage smart contracts in a private network. An example implementation can be found in [Casper node's private chain control management](https://github.com/casper-network/casper-node/blob/c8023736786b2c2b0fd17250fcfd50502ff4151f/smart_contracts/contracts/private_chain/control-management/src/main.rs) file. This is not an existing contract. You can use the existing client contracts as an administrator to perform actions as a user. This is done by sending a deploy under a regular user's public key but signed using the administrator's secret key. - -Use this command to generate these contracts: - -```sh -make build-contracts-rs -``` - -Only the administrator can use the related Wasm to send the deploy to the network and then use it to manage, enable, and disable contracts. This is achieved through entry points that handle enabling and disabling options for account and smart contracts: - -- **To disable a contract**: Execute the `disable_contract.wasm` with `contract_hash`and `contract_package_hash` as parameters. -- **To enable a contract**: Execute the `enable_contract.wasm` with `contract_hash`and `contract_package_hash` as parameters. -- **To disable an account**: Execute `set_action_thresholds.wasm` with argument `deploy_threshold:u8='255'` and `key_management_threshold:u8='255'`. -- **To enable an account**: Execute `set_action_thresholds.wasm` with `deploy_threshold:u8='1'` set to 1 and `key_management_threshold:u8='0'`. - - -## Step 5. Starting the Casper Node -After preparing the administrator accounts and validator nodes, you should start and run the Casper node to see the changes. Use this command to start the node: - -```sh -sudo systemctl start casper-node-launcher -``` -Refer to the [Casper node setup GitHub](https://github.com/casper-network/casper-node/tree/master/resources/production#casper-node-setup) guide to know more details about configuring a new node to operate within a network. - -Additionally, refer to the [casper-node-launcher](https://github.com/casper-network/casper-node-launcher) to check whether the installed node binaries match the installed configurations by comparing the version numbers. - -## Step 6. Rotating the Validator Accounts -You need to go through [setting up a validator node ](#step-1-setting-up-the-validator-nodes) guide before starting this section. - -To rotate the validators set, you must perform a network upgrade using a `global_state.toml` with new entries generated by the `global-state-update-gen` command. - -When rotating validators manually, you will need to do so after the start of a new era. This allows you to obtain the state root hash from the final block in an era, known as the switch block. - -After acquiring the state root hash from the switch block, you must stop the network. The following command allows you to use the acquired state root hash to generate a new `global_state.toml`. - -```sh - -global-state-update-gen validators \ - --data-dir $DATA_DIR/global_state \ - --state-hash $STATE_ROOT_HASH \ - –-validator $PUBLIC_KEY_HEX,$STAKE \ - –-validator $PUBLIC_KEY_HEX,$STAKE - -``` - -Each use of the `--validator` parameter designates a validator for the next era. Only validators added using this parameter will be included in the new era, hence removing a validator only requires you to not add them with this parameter. - -After designating the next era's validators, you must set the chainspec activation point and `last_emergency_restart` to `X`, where `X` is equal to the new era after the switch block from above. Finally, set `hard_reset = true`. This makes the network revert to the end of the previous era when restarted with the upgrade. - -For example, to rotate the validators in era 10, one would need to wait for the end of era 9. After acquiring the state root hash from the final block of era 9, you would stop the network, run `global-state-update-gen`, set the activaction point and `last_emergency_restart` to 10 and `hard_reset` to `true`. - -You can now stage the upgrade by copying the chainspecs, configs and binaries where they should be while the network is still down. Once these are in place, you can restart the network with rotated validators. - -:::note - -Please make sure you are running this tool as the same user that owns `$DATA_DIR`. Otherwise, you may receive a permission denied error. - -::: - -You can find more details on enabling new validators in the [joining a running network](../setup/joining.md) guide. The guide explains how to join the network and provide additional security to the system. - -## Step 7. Testing the Private Network -We will describe the testing flow using an example customer and the configuration below. These options are relative to this example customer. - -### Sample configuration files - -Here are sample configurations that can be adapted for testing: -- A [chainspec template](https://github.com/casper-network/casper-node/blob/0b4eead8ea1adffaea98260fe2e69dfc8b71c092/resources/private/chainspec.toml.in) that is specific to the customer's private chain. -- An [accounts template](https://github.com/casper-network/casper-node/blob/0b4eead8ea1adffaea98260fe2e69dfc8b71c092/resources/private/accounts.toml.in) with one administrator in the `administrators` settings. - - -### Specifying IP addresses - -Here is an example set of IP addresses in use: -``` -http://18.224.190.213:7777 -http://18.188.11.97:7777 -http://18.188.206.170:7777 -http://18.116.201.114:7777 -``` - -### Setting up the node - -Set up the node address, chain name, and the administrator's secret key. - -```sh -export NODE_ADDR=http://18.224.190.213:7777 -export CHAIN_NAME="private-test" -``` - -This testing example will also use an `alice/secret_key.pem` file, a secret key generated through the [keys generation process](../../concepts/accounts-and-keys.md#creating-accounts-and-keys). Alice is a regular user in this testing example. - -### Network access control - -With a default configuration each node generates a self-signed certificate to encrypt peer-to-peer communication. This means any person can join an existing network, and sync with the network, which in private chains may not be allowed. - -To restrict access for new nodes joining an existing private chain network, the node software supports loading signed client certificates by a certificate authority (CA). - -```toml -[network.identity] -tls_certificate = "local_node_cert.pem" -secret_key = "local_node.pem" -ca_certificate = "ca_cert.pem" -``` - -- `tls_certificate` is the certificate signed by a `ca_cert.pem`. -- `secret_key` refers to a secret key that should be unique to a specific node in the network. All peer-to-peer communication coming from this node will be signed by this key. -- `ca_certificate` is the network CA that should be the same on each of the nodes. - -To set up CA and sign client certificates for a network here are the steps to follow using an openssl command line: - -```sh -# Recommended EC curve algorithm to use -export CURVE="secp521r1" - -# Generate secret key for CA and save it to ca_key.pem -openssl ecparam -out ca_key.pem -name $CURVE -genkey -# Create ca_cert.pem signed by ca_key.pem -openssl req -new -x509 -days 3650 -extensions v3_ca -key ca_key.pem -out ca_cert.pem - -# Generate secret key for a node and a certificate signed by the CA -openssl ecparam -out node_1.pem -name $CURVE -genkey -openssl req -new -key node_1.pem -out node_1.csr -sha256 -openssl x509 -req -days 3650 -CA ca_cert.pem -CAkey ca_key.pem -CAcreateserial -in node_1.csr -out node_1_cert.pem -``` - -And then configure the node with the following settings: - -```toml -[network.identity] -tls_certificate = "node_1_cert.pem" -secret_key = "node_1.pem" -ca_certificate = "ca_cert.pem" -``` - -Every node in the private chain network has to be configured with the same CA certificate, and each `tls_certificate` and `secret_key` pair has to be signed by it. Any node trying to join with a certificate signed by an incorrect CA ends up with the following log message: - -``` -2022-09-01T12:08:53.031417Z DEBUG init:incoming{; peer_addr=127.0.0.1:50998}: [casper_node::components::small_network small_network.rs:501] incoming connection failed early; err=TLS validation error of peer certificate: the certificate is not signed by provided certificate authority -``` - -Keep in mind that for security reasons `ca_key.pem` should be stored securely and never present on each of participating machines. - -### Funding Alice's account - -The following command transfers tokens to Alice's main purse. - -```sh -casper-client \ - transfer \ - -n $NODE_ADDR \ - --chain-name $CHAIN_NAME \ - --secret-key admin/secret_key.pem \ - --session-account=$(> global_state.toml -``` - -By using `>>` shell redirection you will always append contents to existing file without overwriting it. This is helpful when you need to chain multiple operations in a single upgrade. - -Common options: - -- `--data-dir` path to a global state directory where `data.lmdb` can be found -- `--state-hash` is the state root hash at the latest block. You should use the client to obtain the most recent state root hash to generate the `global_state.toml`. - -### Rotating validators - -The following command rotates the validator set. Perform a network upgrade with a `global_state.toml` with the new entries generated by the `global-state-update-gen` command. - -```sh -global-state-update-gen validators \ - --data-dir $DATA_DIR \ - --state-hash $STATE_ROOT_HASH \ - --validator NEW_PUBLIC_KEY,NEW_STAKE \ - --validator NEW_PUBLIC_KEY2,NEW_STAKE2 -``` - -### Adding new administrators -The following command produces the administrator content in the `global_state.toml` file. - -```sh -global-state-update-gen generate-admins --admin NEW_PUBLIC_KEY,NEW_BALANCE --data-dir $DATA_DIR --state-hash $STATE_ROOT_HASH -``` -Remember that new administrators can be created, and the validator set can also be rotated in a single update. - -The `chainspec.toml` file should contain the following entries that include new administrators as well as existing ones for an upgrade: - - -```toml -[core] -administrators = ["NEW_PUBLIC_KEY"] -``` - -After this step, the private network would be ready for use. - -## Setting up a Block Explorer - -Private and hybrid blockchains can find information on how to set up and operate our free version of a block explorer [here](https://github.com/casper-network/casper-blockexplorer-frontend). \ No newline at end of file diff --git a/versioned_docs/version-2.0.0/operators/setup-network/genesis.md b/versioned_docs/version-2.0.0/operators/setup-network/genesis.md deleted file mode 100644 index 889e19450..000000000 --- a/versioned_docs/version-2.0.0/operators/setup-network/genesis.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Genesis ---- - -# The Genesis Block {#the-genesis-block} - -The Casper node software creates a genesis block from the following input files: - -- `chainspec.toml` -- `accounts.toml` - -## chainspec.toml {#chainspectoml} - -A version of the [chainspec](../../concepts/glossary/C.md#chainspec) is downloaded by the `pull_casper_node_version.sh` script installed with the casper-node-launcher debian package. This script pulls the `chainspec.toml` file from the appropriate path defined in the network config file used (`casper.conf` for MainNet and `casper-test.conf` for TestNet). - -The production version of the file from which this is based on can be found at `casper-node/resources/production/chainspec.toml` in the code base. To create a custom network, this file can be updated as desired. Any changes to this file will result in a different genesis hash. Refer to [this page](./chain-spec.md) for detailed documentation on each of the variables in the file. - -## accounts.toml {#accountstoml} - -This file contains the genesis validator set information, starting accounts and associated balances and bond amounts. - -If an account is not bonded at genesis, specify a `0` for the bond amount. - -Similar to the `chainspec.toml`, this is pulled from the appropriate path defined in the network config file used. diff --git a/versioned_docs/version-2.0.0/operators/setup-network/index.md b/versioned_docs/version-2.0.0/operators/setup-network/index.md deleted file mode 100644 index ffc64120b..000000000 --- a/versioned_docs/version-2.0.0/operators/setup-network/index.md +++ /dev/null @@ -1,10 +0,0 @@ -# Setting up Private Networks - -Some projects may require a private Casper network or a hybrid setup involving a private and public Casper network. This section covers the requirements for creating a private network. - -| Title | Description | -| ----------------------------------------------------------- | ----------------------------------------------- | -|[The Genesis Block](./genesis.md) | Files needed to create a genesis block | -|[The Chain Specification](./chain-spec.md) | Configuration settings describing the network state | -|[Setting up a Private Casper Network](./create-private.md) | A step-by-step guide to establishing and configuring a private Casper network | -|[Staging Files for a New Network](./staging-files-for-new-network.md) | A guide to hosting protocol files for a new Casper network | \ No newline at end of file diff --git a/versioned_docs/version-2.0.0/operators/setup-network/staging-files-for-new-network.md b/versioned_docs/version-2.0.0/operators/setup-network/staging-files-for-new-network.md deleted file mode 100644 index 77203c59f..000000000 --- a/versioned_docs/version-2.0.0/operators/setup-network/staging-files-for-new-network.md +++ /dev/null @@ -1,176 +0,0 @@ ---- -title: Staging Files ---- - -# Staging Files for a New Network - -:::important - -Staging files is not needed for already established running networks. - -Only use these instructions if you are creating a new Casper network and hosting protocol files for this network. - -::: - - -## Hosting Server - -Files for staging protocol versions are hosted on a typical HTTP(S) server. - -Scripts included with the `casper-node-launcher` have network configurations for Mainnet and Testnet. These scripts point to the server hosting files and network name. - -Since a given server can be used for multiple networks, a network named directory is used to -hold files for that network. - -This is a description of Mainnet protocol version hosting (with network name: `casper`). - -`genesis.casperlab.io` is the web server URL with the following directory structure: - - - `casper` - - `protocol_versions` - File listing active protocol versions so scripts know what directories to use - - `1_0_0` - Genesis protocol version - - `config.tar.gz` - Configuration files to be expanded into `/etc/casper/1_0_0` - - `bin.tar.gz` - Binary files to be expanded into `/var/lib/casper/bin/1_0_0` - - `1_1_0` - First upgrade - - `config.tar.gz` - Configuration files to be expanded into `/etc/casper/1_1_0` - - `bin.tar.gz` - Binary files to be expanded into `/var/lib/casper/bin/1_1_0` - - ... (skipping many other protocol versions) - - `1_4_6` - A later upgrade - - `config.tar.gz` - Configuration files to be expanded into `/etc/casper/1_4_6` - - `bin.tar.gz` - Binary files to be expanded into `/var/lib/casper/bin/1_4_6` - -### More on `protocol_versions` - -At the root of the hosting server directory for a given network, a `protocol_versions` file exists. This holds the valid protocol versions for a network. - -We can look at this manually on Mainnet using *curl*. As of writing this, `1.4.6` is the latest version and the contents of this file will change. - -```bash - -$ curl -s genesis.casper.network/casper/protocol_versions -1_4_5 -1_4_6 - -``` - -We should find `bin.tar.gz` and `config.tar.gz` in those directories under `casper`. - -## Protocol Version - -The protocol version of a network is not related to the `casper-node` version. In Mainnet, these have often been the same. However, with a new network, you would use the latest `casper-node` version for your -`1.0.0` protocol. - -## Network Configuration File - -When the `casper-node-launcher` package is installed, both `casper.conf` and `casper-test.conf` are installed -in `/etc/casper/network_configs`. Once a valid config file for a new network is copied to this location, -all commands with *node_util.py* will work as they do on existing networks. - -By convention, we name the config file the same as the network. So Mainnet has a network name of `casper` and we use -`casper.conf` for the config file. - -For a new network using server `casper.mydomain.com` to host files for `our-network` network, we would have a -`our-network.conf` file that looks like this: - -```bash -SOURCE_URL=casper.mydomain.com -NETWORK_NAME=our-network -``` - -Host this `our-network.conf` in the root of `casper.mydomain.com/our-network` at the same level as `protocol_versions`. - -This allows any node which wants to use the new network to run the following to install this configuration: - -```bash -cd /etc/casper/network_configs -sudo -u casper curl -JLO casper.mydomain.com/our-network/our-network.conf -``` - -Any command needing a network config from `node_util.py` can use `our-network.conf`. - -Staging protocol versions for a new node with this network or staging an upcoming upgrade would just need this command: - -```bash -sudo -u casper /etc/casper/node_util.py stage_protocols our-network.conf -``` - -## Setup Configuration Files - -For a network to be started, we to build the configuration files for a certain genesis time and with nodes that will be running. These files need to be configured in advanced, so a genesis time should be selected that allows packaging the files, loading onto nodes and starting nodes prior to the genesis time. - -### chainspec.toml - -The [chainspec.toml](../../concepts/glossary/C.md#chainspec) file is configuration for the network and must be exactly the same on all nodes. - -The name for a network is specified `network.name`. - -Each protocol will have a `version` and `activation_point`. At genesis this is a date and time in format shown below. For future upgrades it would be an integer of the `era_id` for activation of the upgrade. - -``` -[protocol] -version = '1.0.0' -activation_point = '2022-08-01T10:00:00Z' - -[network] -name = 'mynetwork' -``` - -### config-example.toml - -The config-example.toml is used to generate config.toml for a protocol after the node's IP is inserted. The `public_address` is auto-detected with `node_util.py stage_protocols`. If using a NAT environment, the public IP can be specified with the `--ip` argument. - -This file should have `known_addresses` added that are relevant to the network. Nodes that will be genesis validators are added to this list in the form: - -``` -[network] -known_addresses = [':35000',':35000',':35000'] -``` - -The `config.toml` can be setup to customized fields for a given node. `config-example.toml` is a default configuration. - -## Staging a Protocol Version - -For the initial genesis protocol version or future upgrade protocol versions, you will typically use -prebuilt and tested `bin.tar.gz` that have been tested and staged for existing networks. The `config.tar.gz` -file must be customized for the specific network with a network name, protocol version and activation point at the very least. - -These archives should be created with no directory information stored. This is done by using `tar` in the same directory as the files. - -```bash -mkdir config -cd config -mv [source of chainspec.toml] ./chainspec.toml -mv [source of config-example.toml] ./config-example.toml -tar -czvf ../config.tar.gz . -``` - -You can test what was compressed with untar'ing the file. - -```bash -mkdir conftest -cd conftest -tar -xzvf ../config.tar.gz . -``` - -This will expand files for verification. - -For custom `casper-node` builds, the minimum contents of `bin.tar.gz` is the `casper-node` executable. - -```bash -mkdir bin -cd bin -cp [source of casper-node] ./casper-node -tar -czvf ../bin.tar.gz . -``` - -A directory for the protocol_version will be created on the server. For example: `1_1_0`. - -We will copy `bin.tar.gz` and `config.tar.gz` into `1_1_0`. Once this is done, we are safe to update -`protocol_versions` by appending `1_1_0` to the end of the file and uploading it into the root of the network directory. - -Any node that runs the following command will get this new upgrade: - -```bash -sudo -u casper /etc/casper/node_util.py stage_protocols -``` - diff --git a/versioned_docs/version-2.0.0/resources/changelog.md b/versioned_docs/version-2.0.0/resources/changelog.md index 16f932af5..e9a8460d9 100644 --- a/versioned_docs/version-2.0.0/resources/changelog.md +++ b/versioned_docs/version-2.0.0/resources/changelog.md @@ -1,10 +1,10 @@ # Documentation Updates by Protocol Release -## Condor (2.0) +## Casper 2.0 ### Concepts -The following are changes introduced alongside release of the Condor network upgrade. +The following are changes introduced alongside release of the Casper 2.0 network upgrade. [Understanding Key Types](../concepts/key-types.md) - Additional Key Types and document restructuring. @@ -26,6 +26,3 @@ The following are changes introduced alongside release of the Condor network upg [Writing On-Chain Code -> Factory Contracts](../developers/writing-onchain-code/factory-pattern.md) - Guide to the new factory pattern for smart contracts. -### Operators - -[Private Network -> The Chainspec](../operators/setup-network/chain-spec.md) - Updates to the `chainpsec` relating to contract-level events. \ No newline at end of file diff --git a/versioned_sidebars/version-1.5.X-sidebars.json b/versioned_sidebars/version-1.5.X-sidebars.json index c36d54d05..2c6992e66 100644 --- a/versioned_sidebars/version-1.5.X-sidebars.json +++ b/versioned_sidebars/version-1.5.X-sidebars.json @@ -257,23 +257,7 @@ "operators/becoming-a-validator/recovering", "operators/becoming-a-validator/inactive-vs-faulty" ] - }, - { - "type": "category", - "label": "Private Networks", - "collapsible": true, - "collapsed": true, - "link": { - "type": "doc", - "id": "operators/setup-network/index" - }, - "items": [ - "operators/setup-network/genesis", - "operators/setup-network/chain-spec", - "operators/setup-network/create-private", - "operators/setup-network/staging-files-for-new-network" - ] - }, + }, { "type": "category", "label": "Maintenance", diff --git a/versioned_sidebars/version-2.0.0-sidebars.json b/versioned_sidebars/version-2.0.0-sidebars.json index b3eb7f112..bcdcfa542 100644 --- a/versioned_sidebars/version-2.0.0-sidebars.json +++ b/versioned_sidebars/version-2.0.0-sidebars.json @@ -49,8 +49,7 @@ "concepts/economics/consensus", "concepts/economics/runtime", "concepts/economics/gas-concepts", - "concepts/economics/dynamic-gas-pricing", - "concepts/economics/fee-elimination", + "concepts/economics/dynamic-gas-pricing", "concepts/economics/staking" ] }, @@ -282,23 +281,7 @@ "operators/becoming-a-validator/recovering", "operators/becoming-a-validator/inactive-vs-faulty" ] - }, - { - "type": "category", - "label": "Private Networks", - "collapsible": true, - "collapsed": true, - "link": { - "type": "doc", - "id": "operators/setup-network/index" - }, - "items": [ - "operators/setup-network/genesis", - "operators/setup-network/chain-spec", - "operators/setup-network/create-private", - "operators/setup-network/staging-files-for-new-network" - ] - }, + }, { "type": "category", "label": "Maintenance", From 6691f235c92e916b2b0bc8a700c0c96fa8e0f4fc Mon Sep 17 00:00:00 2001 From: Devendran Date: Wed, 30 Apr 2025 16:58:22 +0530 Subject: [PATCH 17/97] Fix missed updates --- docs/concepts/economics/runtime.md | 2 +- versioned_docs/version-2.0.0/concepts/about.md | 2 +- versioned_docs/version-2.0.0/operators/index.md | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/concepts/economics/runtime.md b/docs/concepts/economics/runtime.md index 02c230de2..07b2b6140 100644 --- a/docs/concepts/economics/runtime.md +++ b/docs/concepts/economics/runtime.md @@ -84,7 +84,7 @@ These are the block gas and size limits for the Casper 2.0 release on Mainnet: # Maximum block size in bytes including transactions contained by the block. 0 means unlimited. max_block_size = 5_242_880 # The upper limit of total gas of all transactions in a block. -block_gas_limit = 3_300_000_000_000 +block_gas_limit = 1_625_000_000_000 ``` ## Dynamic Gas Pricing diff --git a/versioned_docs/version-2.0.0/concepts/about.md b/versioned_docs/version-2.0.0/concepts/about.md index e598e2537..329f8795f 100644 --- a/versioned_docs/version-2.0.0/concepts/about.md +++ b/versioned_docs/version-2.0.0/concepts/about.md @@ -4,7 +4,7 @@ title: What is Casper? ## What is Casper? {#what-is-casper} -Casper is a [Turing-complete](../concepts/glossary/T.md#turing-complete-blockchain) smart-contracting platform, backed by a Proof-of-Stake (PoS) consensus algorithm and WebAssembly (Wasm). The network is a [permissionless](../concepts/glossary/P.md#permissionless), decentralized, public blockchain. +Casper is a pseudo-[Turing-complete](../concepts/glossary/T.md#turing-complete-blockchain) smart-contracting platform, backed by a Proof-of-Stake (PoS) consensus algorithm and WebAssembly (Wasm). The network is a [permissionless](../concepts/glossary/P.md#permissionless), decentralized, public blockchain. The network's consensus protocol is called [Zug](./design/zug.md), and it has several benefits over classic Byzantine Fault Tolerant (BFT) consensus protocols. First, Zug allows networks to reach higher thresholds of _finality_, meaning that every block gets finalized within seconds, as fast as the network connections allow. Second, the protocol achieves flexibility by expressing block finality in ways not possible in BFT models. This protocol is built on the following research: [From Weakly-terminating Binary Agreement and Reliable Broadcast to Atomic Broadcast](https://arxiv.org/abs/2205.06314). diff --git a/versioned_docs/version-2.0.0/operators/index.md b/versioned_docs/version-2.0.0/operators/index.md index a838169db..dad96ac71 100644 --- a/versioned_docs/version-2.0.0/operators/index.md +++ b/versioned_docs/version-2.0.0/operators/index.md @@ -19,5 +19,4 @@ Review the [node's configuration](./setup/basic-node-configuration.md) first. Th | ----------------------------------------------------------- | ----------------------------------------------- | |[Node Setup](./setup/index.md) | How to set up a Casper node | |[Becoming a Validator](./becoming-a-validator/index.md) | How to join a network and become a validator | -|[Private Network Setup](./setup-network/index.md) | How to set up a private Casper network | |[Maintenance](./maintenance/index.md) | Topics related to node maintenance | \ No newline at end of file From 78a25705d8500909c04035e1c6a8d31b5c4ddecd Mon Sep 17 00:00:00 2001 From: Devendran Date: Wed, 30 Apr 2025 18:14:30 +0530 Subject: [PATCH 18/97] Fix Jiuhongs review comments --- condor/local-setup.md | 2 +- config/sidebar.config.js | 1 - docs/concepts/addressable-entity.md | 38 ------------------- docs/concepts/glossary/A.md | 2 +- docs/concepts/index.md | 1 - docs/concepts/key-types.md | 10 ----- src/pages/condor/setting-up-condor-local.md | 2 +- .../concepts/addressable-entity.md | 38 ------------------- .../version-2.0.0-sidebars.json | 1 - 9 files changed, 3 insertions(+), 92 deletions(-) delete mode 100644 docs/concepts/addressable-entity.md delete mode 100644 versioned_docs/version-2.0.0/concepts/addressable-entity.md diff --git a/condor/local-setup.md b/condor/local-setup.md index 622e0578e..edf3f26d6 100644 --- a/condor/local-setup.md +++ b/condor/local-setup.md @@ -33,7 +33,7 @@ NCTL is your tool for managing the Casper network. We'll use a Dockerized versio git checkout feat-2.0 ``` - Modify the casper-node's branch to dev inside casper-nctl-condor.Dockerfile + Modify the casper-node's branch to v2.0.0 inside casper-nctl-condor.Dockerfile ``` ... diff --git a/config/sidebar.config.js b/config/sidebar.config.js index 558c007d1..adf58c0d6 100644 --- a/config/sidebar.config.js +++ b/config/sidebar.config.js @@ -99,7 +99,6 @@ module.exports = { items: ["concepts/serialization/primitives", "concepts/serialization/structures", "concepts/serialization/types"], }, "concepts/intro-to-dapps", - "concepts/addressable-entity", "concepts/accounts-and-keys", "concepts/key-types", "concepts/transactions", diff --git a/docs/concepts/addressable-entity.md b/docs/concepts/addressable-entity.md deleted file mode 100644 index 6a7759679..000000000 --- a/docs/concepts/addressable-entity.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Addressable Entities -# slug: /addressable-entities ---- - -# Addressable Entities - -## What is an Addressable Entity? - -The [`AddressableEntity`](../concepts/glossary/A.md#addressable-entity) data structure encapsulates the behaviour and data associated with several related concepts within the Casper type system. -Casper 2.0 introduces the concept of an [`AddressableEntity`](../concepts/glossary/A.md#addressable-entity) which replaces the existing [`Account`](./glossary/A.md#account) and [`Contract`](./glossary/S.md#smart-contract) types. - -The merger of the `Account` and `Contract` concepts allows for some new possibilities. - -For any given `AddressableEntity`, the `EntityType` will identify if it is an `Account`, a user-deployed `SmartContract`, or a `System` contract such as `Mint` or `HandlePayment`. - -This `EntityType` will dictate what the addressable entity can and cannot do. - -## Account - -An addressable entity marked as an `Account` will behave in much the same way as a traditional legacy account on a Casper network. It will have an associated key pair of a `PublicKey` and a secret key, and an `AccountHash` derived from the public key. There is also an associated main purse. - -A legacy account will automatically migrate to an addressable entity when it interacts with the network, with no action necessary on the user side. Their key pair will continue functioning as it did prior to the migration. Further, their main purse will remain the same. - -## SmartContract - -An addressable entity marked as a `SmartContract` will have the same functionality as a legacy contract, but with several new features. The `SmartContract` now possesses a main purse, and may have [associated keys](../concepts/design/casper-design.md#accounts-associated-keys-weights) and action thresholds that behave in the same way as an account. More information on multi-signature management, associated keys, and action thresholds can be found [here](../resources/advanced/multi-sig/multi-sig-workflow.md). - -## System - -As part of the migration to Casper 2.0, system contracts (`Mint`, `Auction` and `HandlePayment`) will migrate to a special type of addressable entity with the `EntityType` of `System`. The `StandardPayment` system contract will be pruned away. - -### Further Reading - -- [Accounts and Keys](../concepts/accounts-and-keys.md) -- [Smart Contracts](../concepts/smart-contracts.md) -- [Hash Types](../concepts/key-types.md) -- [Multi-Signature Management](../resources/advanced/multi-sig/index.md) diff --git a/docs/concepts/glossary/A.md b/docs/concepts/glossary/A.md index 9dfc6fd2f..983856a6a 100644 --- a/docs/concepts/glossary/A.md +++ b/docs/concepts/glossary/A.md @@ -8,7 +8,7 @@ ## Account {#account} -An Account is a structure that represents a user on a Casper network. Information on creating an account can be found [here](../design/casper-design.md#accounts-head). Casper 2.0 release introduces the concept of an [addressable entity](#addressable-entity), which contains an account entity type that supersedes legacy accounts. +An Account is a structure that represents a user on a Casper network. Information on creating an account can be found [here](../design/casper-design.md#accounts-head). Casper's Condor release introduces the concept of an [addressable entity](#addressable-entity), which contains an account entity type that supersedes legacy accounts. ## Account Hash {#account-hash} diff --git a/docs/concepts/index.md b/docs/concepts/index.md index 99973605b..93bf0fe6f 100644 --- a/docs/concepts/index.md +++ b/docs/concepts/index.md @@ -14,7 +14,6 @@ This section of the documentation covers the core concepts underpinning the Casp | ----------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | | [Introduction to the Casper Blockchain](./about.md) | High-level details about the Casper blockchain | | [Introduction to dApps](./intro-to-dapps.md) | Developing distributed applications on the Casper blockchain | -| [Addressable Entities](./addressable-entity.md) | Learn about addressable entities and how they relate to accounts and smart contracts. | | [Accounts and Cryptographic Keys](./accounts-and-keys.md) | The Casper programming model is account-based. Learn how Casper accounts work and how they are secured | | [Key Types](./key-types.md) | Hashes/Keys are used throughout the Casper ecosystem for addresses, packaging data, and more | | [Global State](./global-state.md) | Learn about the storage layer for the Casper blockchain. All accounts, contracts, and data are stored in global state | diff --git a/docs/concepts/key-types.md b/docs/concepts/key-types.md index 7000fb6a6..4e53fda98 100644 --- a/docs/concepts/key-types.md +++ b/docs/concepts/key-types.md @@ -154,16 +154,6 @@ For user convenience and compatibility, we expect the delivery of hashes, keys, |---|---|---| |Key::Package | package- | package-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a| -### AddressableEntity - -`Key::AddressableEntity` is a `Key` under which an [`AddressableEntity`](../developers/json-rpc/types_chain.md#addressableentity) is stored. It may be one of three variants: `Account`, `System` or `SmartContract`. - -|Type|Prefix|Example| -|---|---|---| -| `Account` | addressable-entity-account- |addressable-entity-account-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a | -| `System` | addressable-entity-system- | addressable-entity-system-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a | -| `SmartContract` | addressable-entity-contract- | addressable-entity-contract-2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a| - ### ByteCode `Key::ByteCode` is a `Key` under which a byte code record is stored. It may be one of two variants: `v1-wasm` or `empty`. diff --git a/src/pages/condor/setting-up-condor-local.md b/src/pages/condor/setting-up-condor-local.md index 622e0578e..b798cc418 100644 --- a/src/pages/condor/setting-up-condor-local.md +++ b/src/pages/condor/setting-up-condor-local.md @@ -33,7 +33,7 @@ NCTL is your tool for managing the Casper network. We'll use a Dockerized versio git checkout feat-2.0 ``` - Modify the casper-node's branch to dev inside casper-nctl-condor.Dockerfile + Modify the casper-node's branch to 2.0.0 inside casper-nctl-condor.Dockerfile ``` ... diff --git a/versioned_docs/version-2.0.0/concepts/addressable-entity.md b/versioned_docs/version-2.0.0/concepts/addressable-entity.md deleted file mode 100644 index 6a7759679..000000000 --- a/versioned_docs/version-2.0.0/concepts/addressable-entity.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Addressable Entities -# slug: /addressable-entities ---- - -# Addressable Entities - -## What is an Addressable Entity? - -The [`AddressableEntity`](../concepts/glossary/A.md#addressable-entity) data structure encapsulates the behaviour and data associated with several related concepts within the Casper type system. -Casper 2.0 introduces the concept of an [`AddressableEntity`](../concepts/glossary/A.md#addressable-entity) which replaces the existing [`Account`](./glossary/A.md#account) and [`Contract`](./glossary/S.md#smart-contract) types. - -The merger of the `Account` and `Contract` concepts allows for some new possibilities. - -For any given `AddressableEntity`, the `EntityType` will identify if it is an `Account`, a user-deployed `SmartContract`, or a `System` contract such as `Mint` or `HandlePayment`. - -This `EntityType` will dictate what the addressable entity can and cannot do. - -## Account - -An addressable entity marked as an `Account` will behave in much the same way as a traditional legacy account on a Casper network. It will have an associated key pair of a `PublicKey` and a secret key, and an `AccountHash` derived from the public key. There is also an associated main purse. - -A legacy account will automatically migrate to an addressable entity when it interacts with the network, with no action necessary on the user side. Their key pair will continue functioning as it did prior to the migration. Further, their main purse will remain the same. - -## SmartContract - -An addressable entity marked as a `SmartContract` will have the same functionality as a legacy contract, but with several new features. The `SmartContract` now possesses a main purse, and may have [associated keys](../concepts/design/casper-design.md#accounts-associated-keys-weights) and action thresholds that behave in the same way as an account. More information on multi-signature management, associated keys, and action thresholds can be found [here](../resources/advanced/multi-sig/multi-sig-workflow.md). - -## System - -As part of the migration to Casper 2.0, system contracts (`Mint`, `Auction` and `HandlePayment`) will migrate to a special type of addressable entity with the `EntityType` of `System`. The `StandardPayment` system contract will be pruned away. - -### Further Reading - -- [Accounts and Keys](../concepts/accounts-and-keys.md) -- [Smart Contracts](../concepts/smart-contracts.md) -- [Hash Types](../concepts/key-types.md) -- [Multi-Signature Management](../resources/advanced/multi-sig/index.md) diff --git a/versioned_sidebars/version-2.0.0-sidebars.json b/versioned_sidebars/version-2.0.0-sidebars.json index bcdcfa542..438f37623 100644 --- a/versioned_sidebars/version-2.0.0-sidebars.json +++ b/versioned_sidebars/version-2.0.0-sidebars.json @@ -107,7 +107,6 @@ ] }, "concepts/intro-to-dapps", - "concepts/addressable-entity", "concepts/accounts-and-keys", "concepts/key-types", "concepts/transactions", From f1548f944523c3abbd8385bb487c41f0f193c833 Mon Sep 17 00:00:00 2001 From: Devendran Date: Wed, 30 Apr 2025 19:44:32 +0530 Subject: [PATCH 19/97] Add chainspec link in runtime.md --- docs/concepts/economics/runtime.md | 39 ++---------------- .../concepts/economics/runtime.md | 40 ++----------------- 2 files changed, 6 insertions(+), 73 deletions(-) diff --git a/docs/concepts/economics/runtime.md b/docs/concepts/economics/runtime.md index 07b2b6140..67cdb3f76 100644 --- a/docs/concepts/economics/runtime.md +++ b/docs/concepts/economics/runtime.md @@ -46,46 +46,13 @@ There are several platform parameters that delineate the sets of transactions th - The block size limit imposes an absolute ceiling on the total byte size of included transactions. - Individual transaction size limits are also enforced. -These are the lane configuration settings for the Casper 2.0 release on Mainnet: +The lane configuration settings for the Casper 2.0 release on Mainnet is available in the `[transactions.v1]` section of the [chainspec.toml](https://github.com/casper-network/casper-protocol-release/blob/casper/config/chainspec.toml#L202). -```toml -[transactions.v1] -# The configuration settings for the lanes of transactions including both native and Wasm based interactions. -# Currently the node supports two native interactions the mint and auction and have the reserved identifiers of 0 and 1 -# respectively -# The remaining wasm based lanes specify the range of configuration settings for a given Wasm based transaction -# within a given lane. -# The maximum length in bytes of runtime args per V1 transaction. -# [0] -> Transaction lane label (apart from the reserved native identifiers these are simply labels) -# Note: For the given mainnet implementation we specially reserve the label 2 for install and upgrades and -# the lane must be present and defined. -# Different casper networks may not impose such a restriction. -# [1] -> Max serialized length of the entire transaction in bytes for a given transaction in a certain lane -# [2] -> Max args length size in bytes for a given transaction in a certain lane -# [3] -> Transaction gas limit for a given transaction in a certain lane -# [4] -> The maximum number of transactions the lane can contain -native_mint_lane = [0, 2048, 1024, 100_000_000, 650] -native_auction_lane = [1, 3096, 2048, 2_500_000_000, 650] -install_upgrade_lane = [2, 750_000, 2048, 1_000_000_000_000, 1] -wasm_lanes = [ - [3, 750_000, 2048, 1_000_000_000_000, 1], - [4, 131_072, 1024, 100_000_000_000, 2], - [5, 65_536, 512, 5_000_000_000, 80] -] -``` - -These are the block gas and size limits for the Casper 2.0 release on Mainnet: + +The block gas and size limits for the Casper 2.0 release on Mainnet is available in the `[transactions]` section of the [chainspec.toml](https://github.com/casper-network/casper-protocol-release/blob/casper/config/chainspec.toml#L183). -```toml -[transactions] -... -# Maximum block size in bytes including transactions contained by the block. 0 means unlimited. -max_block_size = 5_242_880 -# The upper limit of total gas of all transactions in a block. -block_gas_limit = 1_625_000_000_000 -``` ## Dynamic Gas Pricing diff --git a/versioned_docs/version-2.0.0/concepts/economics/runtime.md b/versioned_docs/version-2.0.0/concepts/economics/runtime.md index 07b2b6140..9396097f5 100644 --- a/versioned_docs/version-2.0.0/concepts/economics/runtime.md +++ b/versioned_docs/version-2.0.0/concepts/economics/runtime.md @@ -46,46 +46,12 @@ There are several platform parameters that delineate the sets of transactions th - The block size limit imposes an absolute ceiling on the total byte size of included transactions. - Individual transaction size limits are also enforced. -These are the lane configuration settings for the Casper 2.0 release on Mainnet: +The lane configuration settings for the Casper 2.0 release on Mainnet is available in the `[transactions.v1]` section of the [chainspec.toml](https://github.com/casper-network/casper-protocol-release/blob/casper/config/chainspec.toml#L202). -```toml -[transactions.v1] -# The configuration settings for the lanes of transactions including both native and Wasm based interactions. -# Currently the node supports two native interactions the mint and auction and have the reserved identifiers of 0 and 1 -# respectively -# The remaining wasm based lanes specify the range of configuration settings for a given Wasm based transaction -# within a given lane. -# The maximum length in bytes of runtime args per V1 transaction. -# [0] -> Transaction lane label (apart from the reserved native identifiers these are simply labels) -# Note: For the given mainnet implementation we specially reserve the label 2 for install and upgrades and -# the lane must be present and defined. -# Different casper networks may not impose such a restriction. -# [1] -> Max serialized length of the entire transaction in bytes for a given transaction in a certain lane -# [2] -> Max args length size in bytes for a given transaction in a certain lane -# [3] -> Transaction gas limit for a given transaction in a certain lane -# [4] -> The maximum number of transactions the lane can contain -native_mint_lane = [0, 2048, 1024, 100_000_000, 650] -native_auction_lane = [1, 3096, 2048, 2_500_000_000, 650] -install_upgrade_lane = [2, 750_000, 2048, 1_000_000_000_000, 1] -wasm_lanes = [ - [3, 750_000, 2048, 1_000_000_000_000, 1], - [4, 131_072, 1024, 100_000_000_000, 2], - [5, 65_536, 512, 5_000_000_000, 80] -] -``` - -These are the block gas and size limits for the Casper 2.0 release on Mainnet: - -```toml -[transactions] -... -# Maximum block size in bytes including transactions contained by the block. 0 means unlimited. -max_block_size = 5_242_880 -# The upper limit of total gas of all transactions in a block. -block_gas_limit = 1_625_000_000_000 -``` +The block gas and size limits for the Casper 2.0 release on Mainnet is available in the `[transactions]` section of the [chainspec.toml](https://github.com/casper-network/casper-protocol-release/blob/casper/config/chainspec.toml#L183). + ## Dynamic Gas Pricing From 476f719e394adbf5343d0781119ee836a43df213 Mon Sep 17 00:00:00 2001 From: Devendran Date: Wed, 30 Apr 2025 20:24:36 +0530 Subject: [PATCH 20/97] Fix opcode-costs, add block lanes --- condor/block-lanes.md | 24 ++++ condor/condor.sidebar.js | 1 + docs/developers/cli/opcode-costs.md | 171 ++----------------------- src/pages/condor/addressable-entity.md | 99 -------------- src/pages/condor/block-lanes.md | 24 ++++ 5 files changed, 57 insertions(+), 262 deletions(-) create mode 100644 condor/block-lanes.md delete mode 100644 src/pages/condor/addressable-entity.md create mode 100644 src/pages/condor/block-lanes.md diff --git a/condor/block-lanes.md b/condor/block-lanes.md new file mode 100644 index 000000000..ba32224ff --- /dev/null +++ b/condor/block-lanes.md @@ -0,0 +1,24 @@ +--- +title: Casper v2.0 Block Lanes +description: Introduction to Block Lanes in the Casper v2.0 Release +slug: index +date: 2025-04-28T22:00 +authors: [ core-team ] +tags: [v2] +hide_table_of_contents: false +--- + +In Casper 2.0 as part of the changes to the block structure, the body of the block now contains several distinct lanes which contain different transaction variants. Each lane has five properties they are the following: + +An identifier for the lane represented as number, this identifier is simply a label. However, the system does reserve the 0 and 1 lane identifiers for native mint and auction interactions respectively. +1. Max serialized length of the entire transaction in bytes for a given transaction in a certain lane +2. Max args length size in bytes for a given transaction in a certain lane +3. Transaction gas limit for a given transaction in a certain lane +4. The maximum number of transactions the lane can contain + +In 2.0, there are three distinct systemic lanes, i.e lanes which must be present and defined. These required lanes are for native transactions e.g. native transfer and native add-bid , and the installation and upgrading of stored wasm. In addition to these three lanes, a Casper network can be setup with a range of user defined lanes for Wasm transactions. The number of user defined lanes is specific to a given network and is defined in the chainspec for that given network. + +Assignment of a given transaction is determined by comparing a given transactions properties against a certain lane. If any of the transactions properties exceed the lane's specified limit, that transaction is deemed ineligible to be part of that lane. It should be noted, during lane determination, the gas limit is determined based on the pricing mode + +In payment limited mode the gas limit for the given transaction is determined by the payment amount as specified by the user. +In fixed mode, the lane determination will first estimate the lane based on the size of the transaction as represented in bytes and the additional computational factor as specified by the user. \ No newline at end of file diff --git a/condor/condor.sidebar.js b/condor/condor.sidebar.js index d950ad057..9778f4340 100644 --- a/condor/condor.sidebar.js +++ b/condor/condor.sidebar.js @@ -22,6 +22,7 @@ const sidebars = { 'local-setup', 'transactions', 'validator-rewards', + 'block-lanes', 'zug', 'devnet-info', 'migration-guide', diff --git a/docs/developers/cli/opcode-costs.md b/docs/developers/cli/opcode-costs.md index 31a4a05e1..af1ab55b4 100644 --- a/docs/developers/cli/opcode-costs.md +++ b/docs/developers/cli/opcode-costs.md @@ -2,174 +2,19 @@ title: OpCode Costs Tables --- -# OpCode Costs Tables +# OpCode Costs -The following tables outline the cost, in motes, for a given operation on Casper's Mainnet. If you are building for a private network or other instance of Casper, you will need to verify these costs in the associated `chainspec.toml`. +The [list](https://github.com/casper-network/casper-protocol-release/blob/casper/config/chainspec.toml#L240) in the [chainspec.toml](https://github.com/casper-network/casper-protocol-release/blob/casper/config/chainspec.toml) outline the cost, in motes, for a given operation on Casper's Mainnet. + +For each opcode cost there exists a static cost and a dynamic cost. +The static cost is a **fixed cost for each opcode that is hardcoded** and **validated by benchmarks**. + +If you are building for a private network or other instance of Casper, you will need to verify these costs in the associated `chainspec.toml`. :::note -All costs in this table are in [motes](/concepts/glossary/M/#motes), not CSPR, and the corresponding chainspec is [here](https://github.com/casper-network/casper-node/blob/53dd33865c2707c29284ccc0e8485f22ddd6fbe3/resources/production/chainspec.toml#L129). +All costs in this table are in [motes](/concepts/glossary/M/#motes), not CSPR. ::: -## Storage Costs - -|Attribute |Description | Cost | -|----------------- |-----------------------------------------------|-----------------| -|gas_per_byte | Gas charged per byte stored in global state. | 1_117_587| - -## OpCode Costs - -|Attribute |Description | Cost | -|----------------- |-----------------------------------------------|-----------------| -|bit | Bit operations multiplier. | 300 | -|add | Arithmetic add operations multiplier. | 210| -|mul | Mul operations multiplier. | 240| -|div | Div operations multiplier. | 320| -|load | Memory load operation multiplier. | 2_500| -|store |Memory store operation multiplier. | 4_700| -|const | Const store operation multiplier. | 110| -|local | Local operations multiplier. | 390| -|global | Global operations multiplier. | 390| -|integer_comparison | Integer operations multiplier. | 250| -|conversion | Conversion operations multiplier. | 420| -|unreachable | Unreachable operation multiplier. | 270| -|nop | Nop operation multiplier. | 200| -|current_memory | Get the current memory operation multiplier. | 290| -|grow_memory | Grow memory cost per page (64 kB). | 240_000| - -## Control Flow Operation Costs - -|Attribute |Description | Cost | -|----------------- |-----------------------------------------------|-----------------| -|block | Cost for `block` opcode. | 440| -|loop | Cost for `loop` opcode. | 440| -|if | Cost for `if` opcode. | 440| -|else | Cost for `else` opcode. | 440| -|end | Cost for `end` opcode. | 440| -|br | Cost for `br` opcode. | 35_000| -|br_if | Cost for `br_if` opcode. | 35_000| -|return | Cost for `return` opcode. | 440| -|select | Cost for `select` opcode. | 440| -|call | Cost for `call` opcode. | 68_000| -|call_indirect | Cost for `call_indirect` opcode. | 68_000| -|drop | Cost for `drop` opcode. | 440| - -## `Br_Table` OpCode Costs - -|Attribute |Description | Cost | -|----------------- |-----------------------------------------------|-----------------| -|cost | Fixed cost per `br_table` opcode. | 35_000| -|size_multiplier | Size of target labels in the `br_table` opcode will be multiplied by `size_multiplier`. | 100| - -## External Function Costs - -The following costs are for low-level bindings for host-side ("external") functions. More information on the Casper external FFI can be found [here](https://docs.rs/casper-contract/latest/casper_contract/ext_ffi/index.html). - -|Host-Side Function| Cost | Arguments | -| ---------------- | ---- | --------- | -| add | 5_800 | [0, 0, 0, 0] | -| add_associated_key | 1_200_000 | [0, 0, 0] | -| add_contract_version | 200 | [0, 0, 0, 0, 120_000, 0, 0, 0, 30_000, 0, 0] | -| blake2b | 1_200_000 | [0, 120_000, 0, 0] | -| call_contract | 300_000_000 | [0, 0, 0, 120_000, 0, 120_000, 0] | -| call_versioned_contract | 300_000_000 | [0, 0, 0, 0, 120_000, 0, 120_000, 0] | -| create_contract_package_at_hash | 200 | [0, 0] | -| create_contract_user_group | 200 | [0, 0, 0, 0, 0, 0, 0, 0] | -| create_purse | 2_500_000_000 | [0, 0] | -| disable_contract_version | 200 | [0, 0, 0, 0] | -| get_balance | 3_000_000 | [0, 0, 0] | -| get_blocktime | 330 | [0] | -| get_caller | 380 | [0] | -| get_key | 2_000 | [0, 440, 0, 0, 0] | -| get_main_purse | 1_300 | [0] | -| get_named_arg | 200 | [0, 120_000, 0, 120_000] | -| get_named_arg_size | 200 | [0, 0, 0] | -| get_phase | 710 | [0] | -| get_system_contract | 1_100 | [0, 0, 0] | -| has_key | 1_500 | [0, 840] | -| is_valid_uref | 760 | [0, 0] | -| load_named_keys | 42_000 | [0, 0] | -| new_uref | 17_000 | [0, 0, 590] | -| random_bytes | 200 | [0, 0] | -| print | 20_000 | [0, 4_600] | -| provision_contract_user_group_uref | 200 | [0, 0, 0, 0, 0] | -| put_key | 100_000_000 | [0, 120_000, 0, 120_000] | -| read_host_buffer | 3_500 | [0, 310, 0] | -| read_value | 60_000 | [0, 120_000, 0] | -| read_value_local | 5_500 | [0, 590, 0] | -| remove_associated_key | 4_200 | [0, 0] | -| remove_contract_user_group | 200 | [0, 0, 0, 0] | -| remove_contract_user_group_urefs | 200 | [0, 0, 0, 0, 0, 120_000] | -| remove_key | 61_000 | [0, 3_200] | -| ret | 23_000 | [0, 420_000] | -| revert | 500 | [0] | -| set_action_threshold | 74_000 | [0, 0] | -| transfer_from_purse_to_account | 2_500_000_000 | [0, 0, 0, 0, 0, 0, 0, 0, 0] | -| transfer_from_purse_to_purse | 82_000_000 | [0, 0, 0, 0, 0, 0, 0, 0] | -| transfer_to_account | 2_500_000_000 | [0, 0, 0, 0, 0, 0, 0] | -| update_associated_key | 4_200 | [0, 0, 0] | -| write | 14_000 | [0, 0, 0, 980] | -| dictionary_put | 9_500 | [0, 1_800, 0, 520] | -| enable_contract_version | 200 | [0, 0, 0, 0] | -| manage_message_topic | 200 | [0, 30_000, 0, 0] | -| emit_message | 200 | [0, 30_000, 0, 120_000] | -| cost_increase_per_message | 50 | | - -### `Auction` System Contract Costs - -These are the costs of calling `auction` system contract entrypoints. - -|Entrypoint |Description | Cost | -|----------------- |-----------------------------------------------|-----------------| -|get_era_validators | Cost of calling the `get_era_validators` entrypoint. | 10_000| -|read_seigniorage_recipients | Cost of calling the `read_seigniorage_recipients` entrypoint. | 10_000| -|add_bid | Cost of calling the `add_bid` entrypoint. | 2_500_000_000| -|withdraw_bid | Cost of calling the `withdraw_bid` entrypoint. | 2_500_000_000| -|delegate | Cost of calling the `delegate` entrypoint. | 2_500_000_000| -|undelegate | Cost of calling the `undelegate` entrypoint. | 2_500_000_000| -|run_auction | Cost of calling the `run_auction` entrypoint. | 10_000| -|slash | Cost of calling the `slash` entrypoint. | 10_000| -|distribute | Cost of calling the `distribute` entrypoint. | 10_000| -|withdraw_delegator_reward | Cost of calling the `withdraw_delegator_reward` entrypoint. | 10_000| -|withdraw_validator_reward | Cost of calling the `withdraw_validator_reward` entrypoint. | 10_000| -|read_era_id | Cost of calling the `read_era_id` entrypoint. | 10_000| -|activate_bid | Cost of calling the `activate_bid` entrypoint. | 10_000| -|redelegate | Cost of calling the `redelegate` entrypoint. | 2_500_000_000| -|change_bid_public_key | Cost of calling the `change_bid_public_key` entrypoint. | 5_000_000_000 | - -### `Mint` System Contract Costs - -These are the costs of calling `mint` system contract entrypoints. - -|Entrypoint |Description | Cost | -|----------------- |-----------------------------------------------|-----------------| -|mint | Cost of calling the `mint` entrypoint. | 2_500_000_000| -|reduce_total_supply | Cost of calling the `reduce_total_supply` entrypoint. | 10_000| -|create | Cost of calling the `create` entrypoint. | 2_500_000_000| -|balance | Cost of calling the `balance` entrypoint. | 10_000| -|burn | Cost of calling the `burn` entrypoint. | 10_000| -|transfer | Cost of calling the `transfer` entrypoint. | 10_000| -|read_base_round_reward | Cost of calling the `read_base_round_reward` entrypoint. | 10_000| -|mint_into_existing_purse | Cost of calling the `mint_into_existing_purse` entrypoint. | 2_500_000_000| - - -### `Handle_Payment` System Contract Costs - -These are the costs of calling entrypoints on the `handle_payment` system contract. - -|Entrypoint |Description | Cost | -|----------------- |-----------------------------------------------|-----------------| -|get_payment_purse | Cost of calling the `get_payment_purse` entrypoint. |10_000| -|set_refund_purse | Cost of calling the `set_refund_purse` entrypoint. |10_000| -|get_refund_purse | Cost of calling the `get_refund_purse` entrypoint. |10_000| -|finalize_payment | Cost of calling the `finalize_payment` entrypoint. |10_000| - -### `Standard_Payment` System Contract Costs - -These settings manage the costs of calling entrypoints on the `standard_payment` system contract. - -|Entrypoint |Description | Cost | -|----------------- |-----------------------------------------------|-----------------| -|pay| Cost of calling the `pay` entrypoint and sending an amount to a payment purse. |10_000| \ No newline at end of file diff --git a/src/pages/condor/addressable-entity.md b/src/pages/condor/addressable-entity.md deleted file mode 100644 index 39b42b6f8..000000000 --- a/src/pages/condor/addressable-entity.md +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Addressable Entity in Casper 2.0 -description: An introduction to the Addressable Entity concept. -slug: addressable-entity -date: 2024-07-17T18:00 -authors: [ sczembor, melpadden ] -tags: [condor, casper2.0] -hide_table_of_contents: false ---- - -# AddressableEntity in Casper 2.0 - -Casper 2.0 introduces significant changes in the representation and management of accounts and smart contracts, through the introduction of the `AddressableEntity` type. This new structure replaces the separate `AccountHash` and `ContractHash` used in Casper 1.x, bringing a unified approach to interact with entities on the network. Contracts can now hold and manage funds directly through associated purses, similar to user accounts. They can also manage their own keys, enabling more sophisticated access control. - -In this article, we'll dive into the details of `AddressableEntity`, exploring its structure and functionalities. - - - -## Key Concepts - -**AddressableEntity** - -At its core, an `AddressableEntity` is a versatile data structure that represents both accounts and smart contracts within the Casper global state. It encapsulates all the necessary information for identifying and managing these entities. An `AddressableEntity` provides a unified interface for various operations, including authorization, access control, and execution of functions. - -**EntityAddr** - -An `EntityAddr` serves as the address for an `AddressableEntity`. It not only encodes the unique identifier (hash) of the entity but also its type. There are three distinct variants of `EntityAddr`: - -1. **System:** Used for built-in, native contracts crucial for the blockchain's operation. -2. **Account:** Represents a user's account. -3. **SmartContract:** Represents a user-deployed smart contract. - -**AddressableEntityHash** - -The `AddressableEntityHash` is a newtype wrapper around a 32-byte hash (`HashAddr`). This hash functions as a unique identifier for the `AddressableEntity`, typically derived from either the account's public key or the smart contract's hash using hashing algorithm. - -## The inner workings of AddressableEntity - -Let's dive into the critical components within an `AddressableEntity`: - -* **`protocol_version` (ProtocolVersion):** This field indicates the protocol version that the entity is compatible with. It ensures backward compatibility and allows for smooth upgrades as the Casper network evolves. -* **`entity_kind` (EntityKind):** As mentioned earlier, this enum determines the type of entity – System, Account, or SmartContract. -* **`associated_keys` (AssociatedKeys):** This data structure stores a map of public keys authorized to interact with the entity. Each key is associated with a weight that represents its voting power in decision-making processes within the entity. -* **`action_thresholds` (ActionThresholds):** These thresholds define the minimum combined weight of associated keys required to authorize specific actions. The three main action types are `deployment`, `key_management`, and `upgrade_management`. Each action type has its own weight threshold, allowing for fine-grained control over permissions. -* **`entry_points` (EntryPoints):** This component is relevant only for smart contracts. It defines the functions (entry points) that external actors can call on the contract, along with their parameters, return types, and access permissions. - -## Obtaining and converting Keys - -In Casper 2.0, developers will primarily work with `Key::AddressableEntity` when referring to accounts and smart contracts. Here's how you can create them and convert between different key formats: - -### Creating AddressableEntity Keys - -**From Account Hash:** - -```rust -let addressable_entity_key = Key::AddressableEntity(EntityAddr::Account(account_hash)); -``` - -**From Smart Contract Hash:** - -```rust -let addressable_entity_key = Key::AddressableEntity(EntityAddr::SmartContract(contract_hash)); -``` - -### Extracting AccountHash or ContractHash from a Key -You can extract the `AccountHash` or `ContractHash` from a `Key::AddressableEntity` using pattern matching: - -```rust -//For Accounts -let account_hash = match addressable_entity_key { - Key::AddressableEntity(EntityAddr::Account(hash)) => hash, - _ => panic!("Not an account key"), -}; -//For Contracts -let contract_hash = match addressable_entity_key { - Key::AddressableEntity(EntityAddr::SmartContract(hash)) => hash, - _ => panic!("Not a contract key"), -}; -``` - -## The Address Merge in Casper 2.0 - -The "Address Merge" in the Casper 2.0 upgrade of Casper is a foundational shift, impacting how accounts and smart contracts are identified and interacted with. - -**Global State Transformation:** - -Post-Casper 2.0, all accounts and smart contract addresses residing within the global state will be automatically migrated to the `AddressableEntity` structure. This means the network itself will recognize and handle these entities using the new format. - -**Smart Contract Compatibility Considerations:** - -While the global state automatically transitions to `AddressableEntity`, existing contracts are expected to function without any modification. - -* **Caller Identification:** -Existing host functions used to identify the caller within your contract will continue to work as before, ensuring no disruption to your contract's functionality. However, new host functions have been introduced that are specifically designed to work with the AddressableEntity format. - -* **External Contract Interaction:** Other contracts may have updated their interfaces to accept AddressableEntity arguments. Its worth to verify the argument types to avoid potential errors. - -> **Note** -> * Upgrading a contract to a newer version may involve complexities, such as changes to the contract's addressable hash. These changes might require coordination with centralized and decentralized exchanges, as well as communication with your community to ensure a smooth transition. \ No newline at end of file diff --git a/src/pages/condor/block-lanes.md b/src/pages/condor/block-lanes.md new file mode 100644 index 000000000..ba32224ff --- /dev/null +++ b/src/pages/condor/block-lanes.md @@ -0,0 +1,24 @@ +--- +title: Casper v2.0 Block Lanes +description: Introduction to Block Lanes in the Casper v2.0 Release +slug: index +date: 2025-04-28T22:00 +authors: [ core-team ] +tags: [v2] +hide_table_of_contents: false +--- + +In Casper 2.0 as part of the changes to the block structure, the body of the block now contains several distinct lanes which contain different transaction variants. Each lane has five properties they are the following: + +An identifier for the lane represented as number, this identifier is simply a label. However, the system does reserve the 0 and 1 lane identifiers for native mint and auction interactions respectively. +1. Max serialized length of the entire transaction in bytes for a given transaction in a certain lane +2. Max args length size in bytes for a given transaction in a certain lane +3. Transaction gas limit for a given transaction in a certain lane +4. The maximum number of transactions the lane can contain + +In 2.0, there are three distinct systemic lanes, i.e lanes which must be present and defined. These required lanes are for native transactions e.g. native transfer and native add-bid , and the installation and upgrading of stored wasm. In addition to these three lanes, a Casper network can be setup with a range of user defined lanes for Wasm transactions. The number of user defined lanes is specific to a given network and is defined in the chainspec for that given network. + +Assignment of a given transaction is determined by comparing a given transactions properties against a certain lane. If any of the transactions properties exceed the lane's specified limit, that transaction is deemed ineligible to be part of that lane. It should be noted, during lane determination, the gas limit is determined based on the pricing mode + +In payment limited mode the gas limit for the given transaction is determined by the payment amount as specified by the user. +In fixed mode, the lane determination will first estimate the lane based on the size of the transaction as represented in bytes and the additional computational factor as specified by the user. \ No newline at end of file From 959f3b24a1206b6cac82ffe201599faeb3916a6a Mon Sep 17 00:00:00 2001 From: Muhammet Kara Date: Wed, 30 Apr 2025 18:50:39 +0300 Subject: [PATCH 21/97] Polish FAQ titles and numbering Signed-off-by: Muhammet Kara --- faq/faq.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/faq/faq.md b/faq/faq.md index 4237449bd..4459fbd9d 100644 --- a/faq/faq.md +++ b/faq/faq.md @@ -10,7 +10,7 @@ This FAQ addresses common questions from smart contract developers, dApp builder --- -## πŸ§‘β€πŸ’» Developer & dApp FAQs +## πŸ§‘β€πŸ’» Developer & dApp FAQ ### 1. How do I install `casper-sidecar` on Ubuntu/Debian? @@ -100,9 +100,9 @@ It is recommended to use these for staging and test environments rather than pro --- -## πŸ“Š Node Operator & Validator FAQs +## πŸ“Š Node Operator & Validator FAQ -### 9. When is a node considered fully synced? +### 1. When is a node considered fully synced? A node transitions through states such as `CatchUp` and `KeepUp`. When a node's `reactor_state` becomes `KeepUp`, it means it has caught up with the latest state of the blockchain and is now participating in consensus. @@ -110,7 +110,7 @@ You can check this in the node logs or via diagnostic endpoints. --- -### 10. Where can I check staking rewards? +### 2. Where can I check staking rewards? Use [cspr.live](https://cspr.live) to check staking rewards: @@ -123,9 +123,9 @@ Example: --- -## πŸ‘€ General User FAQs +## πŸ‘€ General User FAQ -### 11. What is delegation? +### 1. What is delegation? Delegation lets you participate in network security by staking your tokens with a validator. You don’t need to run a node. Validators share a portion of the staking rewards with their delegators, keeping a small fee (commission). @@ -133,13 +133,13 @@ This contributes to network decentralization and rewards you with passive income --- -### 12. How frequently are staking rewards paid? +### 2. How frequently are staking rewards paid? Staking rewards are distributed every **Era** (approximately every 2 hours). It may take up to 4 hours (2 Eras) for the first rewards to show after delegation. --- -### 13. I’ve delegated my tokens but don’t see rewards? +### 3. I’ve delegated my tokens but don’t see rewards? Staking rewards are added to your current stake and may not appear immediately as spendable balance. To view them: @@ -148,19 +148,19 @@ Staking rewards are added to your current stake and may not appear immediately a --- -### 14. Is there a lock period after delegation? +### 4. Is there a lock period after delegation? There is no lock period when delegating. However, **undelegation** incurs a 7 Era (~14 hour) unbonding period. After this, the tokens are available in your account for transfer or re-delegation. --- -### 15. Is there slashing? Can I lose tokens? +### 5. Is there slashing? Can I lose tokens? Currently, Casper does **not** have slashing enabled. If a validator is evicted from the active set, you won’t receive rewards while they’re inactive. In future, when slashing is enabled, delegators may lose a portion of their stake if their validator misbehaves. --- -### 16. What is the cost of delegation and undelegation? +### 6. What is the cost of delegation and undelegation? Each delegation transaction costs approximately **3 CSPR**. πŸ’‘ Always keep extra tokens in your account to cover fees for transactions like delegation, undelegation, and transfers. From 39fa3090fb1a82ecc361fcd0678ffc1a0f0feb45 Mon Sep 17 00:00:00 2001 From: Muhammet Kara Date: Thu, 1 May 2025 02:44:29 +0300 Subject: [PATCH 22/97] Clarify casper-sidecar installation Signed-off-by: Muhammet Kara --- faq/faq.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/faq/faq.md b/faq/faq.md index 4459fbd9d..50f7d7ae7 100644 --- a/faq/faq.md +++ b/faq/faq.md @@ -14,7 +14,7 @@ This FAQ addresses common questions from smart contract developers, dApp builder ### 1. How do I install `casper-sidecar` on Ubuntu/Debian? -`casper-sidecar` is a service that allows developers to interact with the Casper network more efficiently. To install it on a Debian-based system, follow these steps: +`casper-sidecar` is a companion service to a Casper node that improves performance and scalability by offloading event broadcasting and offering enhanced client-facing features. While typically run alongside a node, it can also operate remotely. To install it on a Debian-based system, follow these steps: ```bash sudo mkdir -m 0755 -p /etc/apt/keyrings/ @@ -28,7 +28,7 @@ sudo apt update sudo apt install casper-sidecar ``` -This sets up the public key, adds the Casper repository to your system, updates the package list, and installs the software. +This sequence of commands downloads and stores the Casper repository’s public GPG key, adds the repository to your system’s sources list, updates your package index, and installs the `casper-sidecar` service. --- From 85f8667d34bc0d26b7ad6aca0b73feb859d884d1 Mon Sep 17 00:00:00 2001 From: Muhammet Kara Date: Thu, 1 May 2025 02:45:24 +0300 Subject: [PATCH 23/97] deploy -> transaction Signed-off-by: Muhammet Kara --- faq/faq.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/faq/faq.md b/faq/faq.md index 50f7d7ae7..447b10591 100644 --- a/faq/faq.md +++ b/faq/faq.md @@ -34,7 +34,7 @@ This sequence of commands downloads and stores the Casper repository’s public ### 2. Where can I learn about serialization of transaction payloads? -Serialization is the process of converting complex data into a format that can be transmitted or stored and reconstructed later. Casper uses specific serialization methods for deploys and payloads. +Serialization is the process of converting complex data into a format that can be transmitted or stored and reconstructed later. Casper uses specific serialization methods for transactions and payloads. You can explore serialization concepts in the official documentation: πŸ”— [Serialization – Casper Docs](https://docs.casper.network/concepts/serialization) @@ -44,11 +44,11 @@ You can also refer to the JavaScript SDK for practical examples: --- -### 3. What causes an "invalid deploy" when using Casper Wallet? +### 3. What causes an "invalid transaction" when using Casper Wallet? -An "invalid deploy" error typically occurs when your system time is not synchronized with the standard internet time. +An "invalid transaction" error typically occurs when your system time is not synchronized with the standard internet time. -Casper's deploys include timestamps, and if the timestamp on your deploy is too far from the network's time, it will be rejected. +Casper's transactions include timestamps, and if the timestamp on your transaction is too far from the network's time, it will be rejected. βœ… Make sure your system clock is set to automatically sync with an NTP (Network Time Protocol) server. @@ -56,7 +56,7 @@ Casper's deploys include timestamps, and if the timestamp on your deploy is too ### 4. How do I check if a transaction was successful? -Once a deploy is submitted, you can check its status via the node RPC or via explorer tools. +Once a transaction is submitted, you can check its status via the node RPC or via explorer tools. Look for the following field in the JSON response: From a34a12051949805233d5f835626c9a52d1f86d85 Mon Sep 17 00:00:00 2001 From: Muhammet Kara Date: Thu, 1 May 2025 02:54:40 +0300 Subject: [PATCH 24/97] Clarify tx status checking Signed-off-by: Muhammet Kara --- faq/faq.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/faq/faq.md b/faq/faq.md index 447b10591..94405149d 100644 --- a/faq/faq.md +++ b/faq/faq.md @@ -58,7 +58,7 @@ Casper's transactions include timestamps, and if the timestamp on your transacti Once a transaction is submitted, you can check its status via the node RPC or via explorer tools. -Look for the following field in the JSON response: +Look for the following field in the JSON response when checking via the node RPC: ```json result.execution_info.execution_result.Version2.error_message @@ -66,6 +66,8 @@ result.execution_info.execution_result.Version2.error_message If `error_message` is `null` or empty, it means the transaction executed successfully. If it's populated, it will provide the reason for failure. +You can also search for the transaction by its hash on [CSPR.live](https://cspr.live) + --- ### 5. Where can I find Casper 2.0 RPC schema? @@ -90,7 +92,7 @@ The Casper Signer is deprecated and replaced by the Casper Wallet. To migrate: --- -### 7. What are the integration endpoints for `cspr.cloud`? +### 7. What are the Integration network endpoints for `CSPR.cloud`? These endpoints are used for developers building integrations or apps that require RPC access to the network. From d3d40904d5327e3fb99079db171ea1511578f69f Mon Sep 17 00:00:00 2001 From: Muhammet Kara Date: Thu, 1 May 2025 02:59:20 +0300 Subject: [PATCH 25/97] Clarify node status checking Signed-off-by: Muhammet Kara --- faq/faq.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/faq/faq.md b/faq/faq.md index 94405149d..7de3aeff1 100644 --- a/faq/faq.md +++ b/faq/faq.md @@ -106,15 +106,15 @@ It is recommended to use these for staging and test environments rather than pro ### 1. When is a node considered fully synced? -A node transitions through states such as `CatchUp` and `KeepUp`. When a node's `reactor_state` becomes `KeepUp`, it means it has caught up with the latest state of the blockchain and is now participating in consensus. +A node transitions through states such as `CatchUp`, `KeepUp`, and `Validate`. When a node's `reactor_state` becomes `KeepUp`, it means it has caught up with the latest state of the blockchain and is now keeping up with the rest of the network. -You can check this in the node logs or via diagnostic endpoints. +You can check this in the node logs, via diagnostic endpoints, or by using the `/etc/casper/node_util.py watch` command directly on the node's terminal through `ssh` connection. --- ### 2. Where can I check staking rewards? -Use [cspr.live](https://cspr.live) to check staking rewards: +Use [CSPR.live](https://cspr.live) to check staking rewards: 1. Navigate to your account page. 2. Click the "Staking Rewards" tab. From fbf9c1d665bf882563eb49dea7be595360c1b03f Mon Sep 17 00:00:00 2001 From: Muhammet Kara Date: Thu, 1 May 2025 03:04:33 +0300 Subject: [PATCH 26/97] What's an Era? Signed-off-by: Muhammet Kara --- faq/faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/faq/faq.md b/faq/faq.md index 7de3aeff1..2d1730c14 100644 --- a/faq/faq.md +++ b/faq/faq.md @@ -118,7 +118,7 @@ Use [CSPR.live](https://cspr.live) to check staking rewards: 1. Navigate to your account page. 2. Click the "Staking Rewards" tab. -3. You can view detailed reward history per Era. +3. You can view detailed reward history per [Era](../docs/concepts/glossary/E#era). Example: πŸ”— [Staking Rewards Example](https://cspr.live/account/02038baa714f1f45aaacb4443df31bf27a8990369c2f9d585f904ec5c5b85aeb231f) From 846f19e5388e320893d8322cbf02d1b15b19f51f Mon Sep 17 00:00:00 2001 From: Muhammet Kara Date: Thu, 1 May 2025 03:08:51 +0300 Subject: [PATCH 27/97] Expand liquid CSPR use cases, and capitalize CSPR Signed-off-by: Muhammet Kara --- faq/faq.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/faq/faq.md b/faq/faq.md index 2d1730c14..9ac44c6c4 100644 --- a/faq/faq.md +++ b/faq/faq.md @@ -145,14 +145,14 @@ Staking rewards are distributed every **Era** (approximately every 2 hours). It Staking rewards are added to your current stake and may not appear immediately as spendable balance. To view them: -- Go to [cspr.live](https://cspr.live) +- Go to [CSPR.live](https://cspr.live) - Look under your validator in the β€œRewards” tab --- ### 4. Is there a lock period after delegation? -There is no lock period when delegating. However, **undelegation** incurs a 7 Era (~14 hour) unbonding period. After this, the tokens are available in your account for transfer or re-delegation. +There is no lock period when delegating. However, **undelegation** incurs a 7-Era (~14-hour) unbonding period. After this, the tokens are available in your account for transfer, spending, or re-delegation. --- From f3b70844b46d6d622ae40df850fd84e5c69f5653 Mon Sep 17 00:00:00 2001 From: Muhammet Kara Date: Thu, 1 May 2025 03:10:33 +0300 Subject: [PATCH 28/97] Fix the delegation cost Signed-off-by: Muhammet Kara --- faq/faq.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/faq/faq.md b/faq/faq.md index 9ac44c6c4..ed483550d 100644 --- a/faq/faq.md +++ b/faq/faq.md @@ -162,8 +162,8 @@ Currently, Casper does **not** have slashing enabled. If a validator is evicted --- -### 6. What is the cost of delegation and undelegation? +### 6. What is the cost of delegation (staking) and undelegation (unstaking)? -Each delegation transaction costs approximately **3 CSPR**. +Each delegation transaction costs **2.5 CSPR**. πŸ’‘ Always keep extra tokens in your account to cover fees for transactions like delegation, undelegation, and transfers. From 9aa8a1ad2be7b2275048a363d602ed3f7b9af3fc Mon Sep 17 00:00:00 2001 From: Devendran Date: Thu, 1 May 2025 15:41:14 +0530 Subject: [PATCH 29/97] Incorporate Michael's review comments --- condor/addressable-entity.md | 99 ------------------- docs/concepts/about.md | 2 +- docs/concepts/economics/index.md | 4 +- docs/concepts/glossary/A.md | 2 +- docs/concepts/serialization/structures.md | 8 +- .../version-1.5.X/concepts/about.md | 2 +- .../version-2.0.0/concepts/about.md | 2 +- .../version-2.0.0/concepts/economics/index.md | 4 +- .../concepts/serialization/structures.md | 8 +- 9 files changed, 20 insertions(+), 111 deletions(-) delete mode 100644 condor/addressable-entity.md diff --git a/condor/addressable-entity.md b/condor/addressable-entity.md deleted file mode 100644 index 3f9448a02..000000000 --- a/condor/addressable-entity.md +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Addressable Entity in Casper 2.0 -description: An introduction to the Addressable Entity concept. -slug: addressable-entity -date: 2024-07-17T18:00 -authors: [ sczembor, melpadden ] -tags: [v2] -hide_table_of_contents: false ---- - -# AddressableEntity in Casper 2.0 - -Casper 2.0 introduces significant changes in the representation and management of accounts and smart contracts, through the introduction of the `AddressableEntity` type. This new structure replaces the separate `AccountHash` and `ContractHash` used in Casper 1.x, bringing a unified approach to interact with entities on the network. Contracts can now hold and manage funds directly through associated purses, similar to user accounts. They can also manage their own keys, enabling more sophisticated access control. - -In this article, we'll dive into the details of `AddressableEntity`, exploring its structure and functionalities. - - - -## Key Concepts - -**AddressableEntity** - -At its core, an `AddressableEntity` is a versatile data structure that represents both accounts and smart contracts within the Casper global state. It encapsulates all the necessary information for identifying and managing these entities. An `AddressableEntity` provides a unified interface for various operations, including authorization, access control, and execution of functions. - -**EntityAddr** - -An `EntityAddr` serves as the address for an `AddressableEntity`. It not only encodes the unique identifier (hash) of the entity but also its type. There are three distinct variants of `EntityAddr`: - -1. **System:** Used for built-in, native contracts crucial for the blockchain's operation. -2. **Account:** Represents a user's account. -3. **SmartContract:** Represents a user-deployed smart contract. - -**AddressableEntityHash** - -The `AddressableEntityHash` is a newtype wrapper around a 32-byte hash (`HashAddr`). This hash functions as a unique identifier for the `AddressableEntity`, typically derived from either the account's public key or the smart contract's hash using hashing algorithm. - -## The inner workings of AddressableEntity - -Let's dive into the critical components within an `AddressableEntity`: - -* **`protocol_version` (ProtocolVersion):** This field indicates the protocol version that the entity is compatible with. It ensures backward compatibility and allows for smooth upgrades as the Casper network evolves. -* **`entity_kind` (EntityKind):** As mentioned earlier, this enum determines the type of entity – System, Account, or SmartContract. -* **`associated_keys` (AssociatedKeys):** This data structure stores a map of public keys authorized to interact with the entity. Each key is associated with a weight that represents its voting power in decision-making processes within the entity. -* **`action_thresholds` (ActionThresholds):** These thresholds define the minimum combined weight of associated keys required to authorize specific actions. The three main action types are `deployment`, `key_management`, and `upgrade_management`. Each action type has its own weight threshold, allowing for fine-grained control over permissions. -* **`entry_points` (EntryPoints):** This component is relevant only for smart contracts. It defines the functions (entry points) that external actors can call on the contract, along with their parameters, return types, and access permissions. - -## Obtaining and converting Keys - -In Casper 2.0, developers will primarily work with `Key::AddressableEntity` when referring to accounts and smart contracts. Here's how you can create them and convert between different key formats: - -### Creating AddressableEntity Keys - -**From Account Hash:** - -```rust -let addressable_entity_key = Key::AddressableEntity(EntityAddr::Account(account_hash)); -``` - -**From Smart Contract Hash:** - -```rust -let addressable_entity_key = Key::AddressableEntity(EntityAddr::SmartContract(contract_hash)); -``` - -### Extracting AccountHash or ContractHash from a Key -You can extract the `AccountHash` or `ContractHash` from a `Key::AddressableEntity` using pattern matching: - -```rust -//For Accounts -let account_hash = match addressable_entity_key { - Key::AddressableEntity(EntityAddr::Account(hash)) => hash, - _ => panic!("Not an account key"), -}; -//For Contracts -let contract_hash = match addressable_entity_key { - Key::AddressableEntity(EntityAddr::SmartContract(hash)) => hash, - _ => panic!("Not a contract key"), -}; -``` - -## The Address Merge in Casper 2.0 - -The "Address Merge" in Casper 2.0 is a foundational shift, impacting how accounts and smart contracts are identified and interacted with. - -**Global State Transformation:** - -In Casper 2.0, all accounts and smart contract addresses residing within the global state will be automatically migrated to the `AddressableEntity` structure. This means the network itself will recognize and handle these entities using the new format. - -**Smart Contract Compatibility Considerations:** - -While the global state automatically transitions to `AddressableEntity`, existing contracts are expected to function without any modification. - -* **Caller Identification:** -Existing host functions used to identify the caller within your contract will continue to work as before, ensuring no disruption to your contract's functionality. However, new host functions have been introduced that are specifically designed to work with the AddressableEntity format. - -* **External Contract Interaction:** Other contracts may have updated their interfaces to accept AddressableEntity arguments. Its worth to verify the argument types to avoid potential errors. - -> **Note** -> * Upgrading a contract to a newer version may involve complexities, such as changes to the contract's addressable hash. These changes might require coordination with centralized and decentralized exchanges, as well as communication with your community to ensure a smooth transition. \ No newline at end of file diff --git a/docs/concepts/about.md b/docs/concepts/about.md index 9e77b83ad..365eacfcb 100644 --- a/docs/concepts/about.md +++ b/docs/concepts/about.md @@ -4,7 +4,7 @@ title: What is Casper? ## What is Casper? {#what-is-casper} -Casper is a pseudo-[Turing-complete](../concepts/glossary/T.md#turing-complete-blockchain) smart-contracting platform, backed by a Proof-of-Stake (PoS) consensus algorithm and WebAssembly (Wasm). The network is a [permissionless](../concepts/glossary/P.md#permissionless), decentralized, public blockchain. +Casper is a [Turing-complete](../concepts/glossary/T.md#turing-complete-blockchain)(given the limitations of finite memory) smart-contracting platform, backed by a Proof-of-Stake (PoS) consensus algorithm and WebAssembly (Wasm). The network is a [permissionless](../concepts/glossary/P.md#permissionless), decentralized, public blockchain. The network's consensus protocol is called [Zug](./design/zug.md), and it has several benefits over classic Byzantine Fault Tolerant (BFT) consensus protocols. First, Zug allows networks to reach higher thresholds of _finality_, meaning that every block gets finalized within seconds, as fast as the network connections allow. Second, the protocol achieves flexibility by expressing block finality in ways not possible in BFT models. This protocol is built on the following research: [From Weakly-terminating Binary Agreement and Reliable Broadcast to Atomic Broadcast](https://arxiv.org/abs/2205.06314). diff --git a/docs/concepts/economics/index.md b/docs/concepts/economics/index.md index b2c82ee78..66fc24c4b 100644 --- a/docs/concepts/economics/index.md +++ b/docs/concepts/economics/index.md @@ -45,7 +45,7 @@ _Users_ execute session and contract code using the platform's computational res ### Incentives (runtime layer) {#incentives-runtime-layer} -The Casper node software can be configured to support various fee, refund, and cost-handling strategies. Subject to governance voting, a future release(after Casper 2.0 launch) will enable fee elimination model by default, setting the `no_fee`,`no_refund`, and `fixed` pricing configurations in the network's chainspec. +The Casper node software can be configured to support various fee, refund, and cost-handling strategies. Subject to governance voting, a future release (after Casper 2.0 mainnet activation) will enable fee elimination model by default, setting the `no_fee`,`no_refund`, and `fixed` pricing configurations in the network's chainspec. The `no_fee` mode means the token is put on hold instead of being taken from the payer. The hold interval is configured in the chainspec. The hold release mechanism is based on the "accrued" or "amortized" settings in the chainspec. Accrued holds are released after a certain amount of time has passed. Amortized holds are released using a linear schedule over a specified period. @@ -55,7 +55,7 @@ Fixed pricing means the gas costs are determined using a cost table, and transac When fees are eliminated, the block proposer receives validator credits instead of transaction fees. These credits contribute to the validator's total weight, determining their chances of winning a slot in the next era. Validators get rewards for proposing a block and creating and publishing finality signatures. In essence, gas/balance holds ensure that the network still compensates validators for their computations. -The fee elimination model will be different from the refund model introduced on Mainnet with release 1.5.6. Since all these behaviors are configurable, [private networks](../../operators/setup-network/create-private.md) can set their fee, refund, and pricing strategies. +The fee elimination model will be different from the refund model introduced on Mainnet with release 1.5.6. ## Ecosystem {#ecosystem} diff --git a/docs/concepts/glossary/A.md b/docs/concepts/glossary/A.md index 983856a6a..6980c5dc3 100644 --- a/docs/concepts/glossary/A.md +++ b/docs/concepts/glossary/A.md @@ -8,7 +8,7 @@ ## Account {#account} -An Account is a structure that represents a user on a Casper network. Information on creating an account can be found [here](../design/casper-design.md#accounts-head). Casper's Condor release introduces the concept of an [addressable entity](#addressable-entity), which contains an account entity type that supersedes legacy accounts. +An Account is a structure that represents a user on a Casper network. Information on creating an account can be found [here](../design/casper-design.md#accounts-head). ## Account Hash {#account-hash} diff --git a/docs/concepts/serialization/structures.md b/docs/concepts/serialization/structures.md index dbd9f0f0a..1a9693dbd 100644 --- a/docs/concepts/serialization/structures.md +++ b/docs/concepts/serialization/structures.md @@ -2,7 +2,7 @@ ## Account {#serialization-standard-account} -An Account is a structure that represented a user on a legacy Casper network. Alongside the Casper 2.0 protocol release, `Accounts` were replaced with `AddressableEntities` of the type `Account`. The account structure consists of the following fields: +An Account is a structure that represented a user on a Casper network. The account structure consists of the following fields: - [`account_hash`](./types.md#account-hash) @@ -16,7 +16,11 @@ An Account is a structure that represented a user on a legacy Casper network. Al ## AddressableEntity {#addressable-entity} -An Addressable Entity is a structure that represents an entity on a Casper network. The addressable entity consists of the following fields: +An Addressable Entity is a structure that represents an entity on a Casper network. + +**Important:** Addressable Entity is turned off in Casper 2.0 and will be enabled in a future release. + +The addressable entity consists of the following fields: - [`package_hash`](./types.md#package-hash) diff --git a/versioned_docs/version-1.5.X/concepts/about.md b/versioned_docs/version-1.5.X/concepts/about.md index b8c066750..264257790 100644 --- a/versioned_docs/version-1.5.X/concepts/about.md +++ b/versioned_docs/version-1.5.X/concepts/about.md @@ -5,7 +5,7 @@ slug: / ## What is Casper? {#what-is-casper} -Casper is a new [Turing-complete](../concepts/glossary/T.md#turing-complete-blockchain) smart-contracting platform, backed by a Proof-of-Stake (PoS) consensus algorithm and WebAssembly (Wasm). The network is a [permissionless](../concepts/glossary/P.md#permissionless), decentralized, public blockchain. +Casper is a new [Turing-complete](../concepts/glossary/T.md#turing-complete-blockchain)(given the limitations of finite memory) smart-contracting platform, backed by a Proof-of-Stake (PoS) consensus algorithm and WebAssembly (Wasm). The network is a [permissionless](../concepts/glossary/P.md#permissionless), decentralized, public blockchain. The network's consensus protocol is called [Highway](https://arxiv.org/pdf/2101.02159.pdf), and it has several benefits over classic Byzantine Fault Tolerant (BFT) consensus protocols. First, Highway allows networks to reach higher thresholds of _finality_, meaning that more blocks are finalized, and validators agree to add them to the blockchain. Second, the protocol achieves flexibility by expressing block finality in ways not possible in BFT models. This protocol is built on the [correct-by-construction (CBC) Casper](https://github.com/cbc-casper/cbc-casper-paper) research. diff --git a/versioned_docs/version-2.0.0/concepts/about.md b/versioned_docs/version-2.0.0/concepts/about.md index 329f8795f..d513c4257 100644 --- a/versioned_docs/version-2.0.0/concepts/about.md +++ b/versioned_docs/version-2.0.0/concepts/about.md @@ -4,7 +4,7 @@ title: What is Casper? ## What is Casper? {#what-is-casper} -Casper is a pseudo-[Turing-complete](../concepts/glossary/T.md#turing-complete-blockchain) smart-contracting platform, backed by a Proof-of-Stake (PoS) consensus algorithm and WebAssembly (Wasm). The network is a [permissionless](../concepts/glossary/P.md#permissionless), decentralized, public blockchain. +Casper is a [Turing-complete](../concepts/glossary/T.md#turing-complete-blockchain)(given the limitations of finite memory) smart-contracting platform, backed by a Proof-of-Stake (PoS) consensus algorithm and WebAssembly (Wasm). The network is a [permissionless](../concepts/glossary/P.md#permissionless), decentralized, public blockchain. The network's consensus protocol is called [Zug](./design/zug.md), and it has several benefits over classic Byzantine Fault Tolerant (BFT) consensus protocols. First, Zug allows networks to reach higher thresholds of _finality_, meaning that every block gets finalized within seconds, as fast as the network connections allow. Second, the protocol achieves flexibility by expressing block finality in ways not possible in BFT models. This protocol is built on the following research: [From Weakly-terminating Binary Agreement and Reliable Broadcast to Atomic Broadcast](https://arxiv.org/abs/2205.06314). diff --git a/versioned_docs/version-2.0.0/concepts/economics/index.md b/versioned_docs/version-2.0.0/concepts/economics/index.md index 595d39828..bd61cbc94 100644 --- a/versioned_docs/version-2.0.0/concepts/economics/index.md +++ b/versioned_docs/version-2.0.0/concepts/economics/index.md @@ -45,7 +45,7 @@ _Users_ execute session and contract code using the platform's computational res ### Incentives (runtime layer) {#incentives-runtime-layer} -The Casper node software can be configured to support various fee, refund, and cost-handling strategies. Subject to governance voting, a future release(after Casper 2.0 launch) will enable fee elimination model by default, setting the `no_fee`,`no_refund`, and `fixed` pricing configurations in the network's chainspec. +The Casper node software can be configured to support various fee, refund, and cost-handling strategies. Subject to governance voting, a future release (after Casper 2.0 mainnet activation) will enable fee elimination model by default, setting the `no_fee`,`no_refund`, and `fixed` pricing configurations in the network's chainspec. The `no_fee` mode means the token is put on hold instead of being taken from the payer. The hold interval is configured in the chainspec. The hold release mechanism is based on the "accrued" or "amortized" settings in the chainspec. Accrued holds are released after a certain amount of time has passed. Amortized holds are released using a linear schedule over a specified period. @@ -55,7 +55,7 @@ Fixed pricing means the gas costs are determined using a cost table, and transac When fees are eliminated, the block proposer receives validator credits instead of transaction fees. These credits contribute to the validator's total weight, determining their chances of winning a slot in the next era. Validators get rewards for proposing a block and creating and publishing finality signatures. In essence, gas/balance holds ensure that the network still compensates validators for their computations. -The fee elimination model will be different from the refund model introduced on Mainnet with release 1.5.6 and has replaced the refund behavior. Since all these behaviors are configurable, [private networks](../../operators/setup-network/create-private.md) can set their fee, refund, and pricing strategies. +The fee elimination model will be different from the refund model introduced on Mainnet with release 1.5.6 and has replaced the refund behavior. ## Ecosystem {#ecosystem} diff --git a/versioned_docs/version-2.0.0/concepts/serialization/structures.md b/versioned_docs/version-2.0.0/concepts/serialization/structures.md index dbd9f0f0a..41627ae2d 100644 --- a/versioned_docs/version-2.0.0/concepts/serialization/structures.md +++ b/versioned_docs/version-2.0.0/concepts/serialization/structures.md @@ -2,7 +2,7 @@ ## Account {#serialization-standard-account} -An Account is a structure that represented a user on a legacy Casper network. Alongside the Casper 2.0 protocol release, `Accounts` were replaced with `AddressableEntities` of the type `Account`. The account structure consists of the following fields: +An Account is a structure that represented a user on a legacy Casper network. The account structure consists of the following fields: - [`account_hash`](./types.md#account-hash) @@ -16,7 +16,11 @@ An Account is a structure that represented a user on a legacy Casper network. Al ## AddressableEntity {#addressable-entity} -An Addressable Entity is a structure that represents an entity on a Casper network. The addressable entity consists of the following fields: +An Addressable Entity is a structure that represents an entity on a Casper network. + +**Important:** Addressable Entity is turned off in Casper 2.0 and will be enabled in a future release. + +The addressable entity consists of the following fields: - [`package_hash`](./types.md#package-hash) From b00078691713913ce1cec9da872e40f33642f63e Mon Sep 17 00:00:00 2001 From: Devendran Date: Fri, 2 May 2025 13:14:09 +0530 Subject: [PATCH 30/97] Fix review comments from Joe Sacher --- condor/index.md | 2 +- src/pages/condor/index.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/condor/index.md b/condor/index.md index 15d3ee3c3..9592b0b3b 100644 --- a/condor/index.md +++ b/condor/index.md @@ -137,7 +137,7 @@ Among the improvements in VM 2.0 are: ### Fee Elimination -Subject to a governance vote by the Casper Network validators on behalf of their delegators, configuration changes in a future minor release of Casper 2.0 will activate a gas fee model known as **Fee Elimination**. +Subject to a governance vote by the Casper Network validators on behalf of their delegators, configuration changes in a future minor release of Casper 2.0 could activate a gas fee model known as **Fee Elimination**. Fee Elimination is the strategy of placing temporary holds on transactor balances corresponding to their incurred gas costs, instead of taking those costs from their on-chain balances. diff --git a/src/pages/condor/index.md b/src/pages/condor/index.md index 15d3ee3c3..9592b0b3b 100644 --- a/src/pages/condor/index.md +++ b/src/pages/condor/index.md @@ -137,7 +137,7 @@ Among the improvements in VM 2.0 are: ### Fee Elimination -Subject to a governance vote by the Casper Network validators on behalf of their delegators, configuration changes in a future minor release of Casper 2.0 will activate a gas fee model known as **Fee Elimination**. +Subject to a governance vote by the Casper Network validators on behalf of their delegators, configuration changes in a future minor release of Casper 2.0 could activate a gas fee model known as **Fee Elimination**. Fee Elimination is the strategy of placing temporary holds on transactor balances corresponding to their incurred gas costs, instead of taking those costs from their on-chain balances. From 90d3996453d5a8d3723b10571bac84a14df37ad2 Mon Sep 17 00:00:00 2001 From: Jakub Zajkowski Date: Tue, 29 Apr 2025 16:26:23 +0200 Subject: [PATCH 31/97] Introducing monitor-and-consume-events.md with contemporary SSE event examples, various fixes to errors in serialization documentation for v2.0.0 --- .../concepts/serialization/primitives.md | 2 +- .../concepts/serialization/structures.md | 119 ++-- .../concepts/serialization/types.md | 15 +- .../developers/cli/opcode-costs.md | 6 +- .../developers/json-rpc/types_chain.md | 2 +- .../developers/monitor-and-consume-events.md | 582 ++++++++++++++++++ 6 files changed, 674 insertions(+), 52 deletions(-) create mode 100644 versioned_docs/version-2.0.0/developers/monitor-and-consume-events.md diff --git a/versioned_docs/version-2.0.0/concepts/serialization/primitives.md b/versioned_docs/version-2.0.0/concepts/serialization/primitives.md index 77ef1bc41..14ae5799a 100644 --- a/versioned_docs/version-2.0.0/concepts/serialization/primitives.md +++ b/versioned_docs/version-2.0.0/concepts/serialization/primitives.md @@ -21,7 +21,7 @@ enum CLType { String, // e.g. "Hello, World!" URef, // unforgeable reference (see above) Key, // global state key (see above) - PublicKey // A Casper system PublicKey type + PublicKey, // A Casper system PublicKey type Option(CLType), // optional value of the given type List(CLType), // list of values of the given type (e.g. Vec in rust) ByteArray(CLType, u32), // same as `List` above, but number of elements diff --git a/versioned_docs/version-2.0.0/concepts/serialization/structures.md b/versioned_docs/version-2.0.0/concepts/serialization/structures.md index c3c018c2c..025f021de 100644 --- a/versioned_docs/version-2.0.0/concepts/serialization/structures.md +++ b/versioned_docs/version-2.0.0/concepts/serialization/structures.md @@ -17,25 +17,21 @@ An Account is a structure that represented a user on a legacy Casper network. Al ## AddressableEntity {#addressable-entity} An Addressable Entity is a structure that represents an entity on a Casper network. The addressable entity consists of the following fields: - - [`package_hash`](./types.md#package-hash) - [`byte_code_hash`](./types.md#byte-code-hash) -- [`entry_points`](./types.md#entrypoints) - - [`protocol_version`](./types.md#protocolversion) -- `main_purse`: The entity's main purse `URef`. You may find information on `URef` serialization [here](./primitives.md#clvalue-uref). +- [`main_purse`]: The entity's main purse `URef`. You may find information on `URef` serialization [here](./primitives.md#clvalue-uref). - [`associated_keys`](./types.md#associatedkey) - [`action_thresholds`](./types.md#entity-action-thresholds) -- [`message_topics`](./types.md#message-topics) - - [`entity_kind`](./types.md#entity-kind) + ## Block {#serialization-standard-block} A block is the core component of the Casper linear blockchain, used in two contexts: @@ -43,27 +39,26 @@ A block is the core component of the Casper linear blockchain, used in two conte 1. A data structure containing a collection of transactions. Blocks form the primary structure of the blockchain. 2. A message that is exchanged between nodes containing the data structure as explained in (1). -Each block has a globally unique ID, achieved by hashing the contents of the block. - -Each block points to its parent. An exception is the first block, which has no parent. - -A block is structurally defined as follows: - -- `hash`: A hash over the header of the block. -- `header`: The header of the block that contains information about the contents of the block with additional metadata. -- `body`: The block's body contains the proposer of the block and hashes of deploys and transfers contained within it. +The block is a polymorphic structure that assumes one of the well-defined variants: +* `V1` which type is `BlockV1` (it has a binary `prefix` of 0) +* `V2` which type is `BlockV2` (it has a binary `prefix` of 1) -Further, a block may consist of one of the following types: +To byte-serialize a `Block` you first need to serialize it's binary prefix and then write the bytes of the byte-serialized representation of it's variant. -- `Version1`: A legacy block created prior to the Condor upgrade. +## BlockV1 {#block-v1} -- `Version2`: A modern block. +This type encapsulates block data that used to be produced in versions of the nodes prior to 2.0. +This type represents a historical block that was produced prior to 2.0 +Each block has a globally unique ID, achieved by hashing the contents of the block. +Each block points to its parent. An exception is the first block, which has no parent. -### BlockHash {#block-hash} +A block is structurally defined as follows: -The block hash is a `Digest` over the contents of the block Header. The `BlockHash` serializes as the byte representation of the hash itself. +- `hash`: A hash over the header of the block. It's type is `BlockHash` +- `header`: The header of the block that contains information about the contents of the block with additional metadata. It's type is `BlockHeaderV1`. +- `body`: The block's body contains the proposer of the block and hashes of deploys and transfers contained within it. It's type is `BlockBodyV1`. -### BlockHeader {#block-header} +### BlockHeaderV1 {#block-header-v1} The header portion of a block, structurally, is defined as follows: @@ -72,15 +67,13 @@ The header portion of a block, structurally, is defined as follows: - `body_hash` the hash of the block body. It serializes to the byte representation of the body hash. The serialized buffer of the `body_hash` is 32 bytes long. - `random_bit` is a boolean needed for initializing a future era. It is serialized as a single byte; true maps to 1, while false maps to 0. - `accumulated_seed` is a seed needed for initializing a future era. It serializes to the byte representation of the parent Hash. The serialized buffer of the `accumulated_hash` is 32 bytes long. -- `era_end` contains equivocation and reward information to be included in the terminal finalized block. It is an optional field. Thus if the field is set as `None`, it serializes to _0_. The serialization of the other case is described in the EraEnd. +- `era_end` contains equivocation and reward information to be included in the terminal finalized block. It is an optional field. Thus if the field is set as `None`, it serializes to _0_. The serialization of the other case is described in the `EraEndV1`. - `timestamp` The timestamp from when the block was proposed. It serializes as a single `u64` value. The serialization of a `u64` value is described in the CLValues section. - `era_id` Era ID in which this block was created. It serializes as a single `u64` value. - `height` The height of this block, i.e., the number of ancestors. It serializes as a single `u64` value. - `protocol_version` The version of the Casper network when this block was proposed. It is 3-element tuple containing `u32` values. It serializes as a buffer containing the three `u32` serialized values. Refer to the CLValues section on how `u32` values are serialized. -Both `BlockHeaderV1` and `BlockHeaderV2` serialize in the same way. - -### EraEndV1 {#eraendV1} +#### EraEndV1 {#eraendV1} `EraEndV1` as represented within the block header, is a struct containing two fields. @@ -102,18 +95,6 @@ When serializing the overarching struct of `EraEndV1`, we first allocate a buffe Note that `EraEndV1` is an optional field. Thus the above scheme only applies if there is an `EraEndV1`; if there is no era end, the field simply serializes to _0_. -### EraEndV2 {#eraendV2} - -`EraEndV1` as represented within the block header, is a struct containing four fields. - -- `equivocators`: A vector of `PublicKey` listing equivocators for the era. -- `inactive_validators`: A list of inactive validators for the era. -- `next_era_validator_weights`: A map of validators and their weights for the era to follow. -- `rewards`: A Binary Tree Map of `PublicKey` and `u64`. -- `next_era_gas_price`: The next era's gas price as a `u8`. - -Note that `EraEndV2` is an optional field. Thus the above scheme only applies if there is an `EraEndV2`; if there is no era end, the field simply serializes to _0_. - ### BlockBodyV1 {#blockbodyV1} The body portion of a block, prior to the Condor upgrade, is structurally defined as: @@ -128,6 +109,52 @@ When we serialize the `BlockBodyV1`, we create a buffer that contains the serial - `deploy_hashes` serializes to the byte representation of all the deploy_hashes within the block header. Its length is `32 * n`, where n denotes the number of deploy hashes present within the body. - `transfer_hashes` serializes to the byte representation of all the deploy_hashes within the block header. Its length is `32 * n`, where n denotes the number of transfers present within the body. +## BlockV2 {#block-v2} + +This type represents a contemporary block that is produced by the network. A block is the core component of the Casper linear blockchain, used in two contexts: +1. A data structure containing a collection of transactions. Blocks form the primary structure of the blockchain. +2. A message that is exchanged between nodes containing the data structure as explained in (1). + +Each block has a globally unique ID, achieved by hashing the contents of the block. + +Each block points to its parent. An exception is the first block, which has no parent. + +A block is structurally defined as follows: + +- `hash`: A hash over the header of the block. It's type is `BlockHash` +- `header`: The header of the block that contains information about the contents of the block with additional metadata. It's type is `BlockHeaderV2`. +- `body`: The block's body contains the proposer of the block and hashes of deploys and transfers contained within it. It's type is `BlockBodyV2`. + +### BlockHeaderV2 {#block-header-v2} + +The header portion of a block, structurally, is defined as follows: + +- `parent_hash` is the hash of the parent block. It serializes to the byte representation of the parent hash. The serialized buffer of the `parent_hash` is 32 bytes long. +- `state_root_hash` is the global state root hash produced by executing this block's body. It serializes to the byte representation of the `state root hash`. The serialized buffer of the `state_root_hash` is 32 bytes long. +- `body_hash` the hash of the block body. It serializes to the byte representation of the body hash. The serialized buffer of the `body_hash` is 32 bytes long. +- `random_bit` is a boolean needed for initializing a future era. It is serialized as a single byte; true maps to 1, while false maps to 0. +- `accumulated_seed` is a seed needed for initializing a future era. It serializes to the byte representation of the parent Hash. The serialized buffer of the `accumulated_hash` is 32 bytes long. +- `era_end` contains equivocation and reward information to be included in the terminal finalized block. It is an optional field. Thus if the field is set as `None`, it serializes to _0_. The serialization of the other case is described in the `EraEndV1`. +- `timestamp` The timestamp from when the block was proposed. It serializes as a single `u64` value. The serialization of a `u64` value is described in the CLValues section. +- `era_id` Era ID in which this block was created. It serializes as a single `u64` value. +- `height` The height of this block, i.e., the number of ancestors. It serializes as a single `u64` value. +- `protocol_version` The version of the Casper network when this block was proposed. It is 3-element tuple containing `u32` values. It serializes as a buffer containing the three `u32` serialized values. Refer to the CLValues section on how `u32` values are serialized. +- `proposer` public key of the proposer of the block. It's type is `PublicKey` +- `current_gas_price` gas price of the block. It is an unsigned 8 bit number. +- `last_switch_block_hash` it is an optional block hash pointing to the last switch block. It's type is `BlockHash`, but since it's optional, rules of serializing (optional fields)[./primitives.md#clvalue-option] apply. + +### EraEndV2 {#eraendV2} + +`EraEndV1` as represented within the block header, is a struct containing four fields. + +- `equivocators`: A vector of `PublicKey` listing equivocators for the era. +- `inactive_validators`: A list of inactive validators for the era. +- `next_era_validator_weights`: A map of validators and their weights for the era to follow. +- `rewards`: A Binary Tree Map of `PublicKey` and `u64`. +- `next_era_gas_price`: The next era's gas price as a `u8`. + +Note that `EraEndV2` is an optional field. Thus the above scheme only applies if there is an `EraEndV2`; if there is no era end, the field simply serializes to _0_. + ### BlockBodyV2 {blockbodyv2} A modern block is structurally defined as: @@ -136,6 +163,20 @@ A modern block is structurally defined as: - [`rewarded_signatures`](./types.md#rewarded-signatures): A list of identifiers for finality signatures for a particular past block. It serializes as a vector of `SingleBlockRewardedSignatures` which describes signatures for a single ancestor block. The first entry represents the signatures for the parent block, the second for the parent of the parent, and so on. + +## BlockHash {#block-hash} + +The block hash is a `Digest` over the contents of the block Header. The `BlockHash` serializes as the byte representation of the hash itself. + + +## ByteCodeAddr {#byte-code-addr} + +An address for ByteCode records stored in global state. Comes in one of three variants: +- `Empty`. It serializes as a `u8` tag of `0`. +- `V1CasperWasm`. It serializes as a `u8` tag of `1` followed by 32 bytes interpreted as hex-encoded address. +- `V2CasperWasm`. It serializes as a `u8` tag of `2` followed by 32 bytes interpreted as hex-encoded address. + + ## Contract {#contract} A contract struct containing the following fields: @@ -406,10 +447,6 @@ The scheduling mode of a transaction, serialized as a [`u8`](./primitives.md#clv - `Standard` serializes as a `0`. -- `FutureEra` serializes as a `1` followed by a future [`era_id`](./types.md#eraid). - -- `FutureTimestamp` serializes as a `2` followed by a future [`timestamp`](./types.md#timestamp). - ### TransactionInvocationTarget {#transactioninvocationtarget} The identifier of a `stored` transaction target, serialized as one of the following: diff --git a/versioned_docs/version-2.0.0/concepts/serialization/types.md b/versioned_docs/version-2.0.0/concepts/serialization/types.md index 37babce96..a833cfd46 100644 --- a/versioned_docs/version-2.0.0/concepts/serialization/types.md +++ b/versioned_docs/version-2.0.0/concepts/serialization/types.md @@ -214,7 +214,7 @@ Hex-encoded bytes serialized as a `u32` value describing the length of the bytes ## ByteCodeKind -The type of byte code, serialized as a single `u8` value. A `0` indicates empty byte code, while a `1` indicates a `V1CasperWasm` to be executed with the first version of the Casper execution engine. +The type of byte code, serialized as a single `u8` value. A `0` indicates empty byte code. `1` indicates a `V1CasperWasm` to be executed with the first version of the Casper execution engine. `2` indicates a `V2CasperWasm` to be executed with the first version of the Casper execution engine ## Caller {#caller} @@ -252,6 +252,9 @@ ChainspecRegistry is a unique key variant which contains a mapping of file names The checksum registry. It serializes as a `BTreeMap` where the first 4 bytes represent a `u32` value describing the number of checksum names as strings and [digests](#digest) held within. The remainder consists of a repeating pattern of serialized strings and then digests of the length dictated by the first four bytes. +## ContractRuntimeTag {#contract-runtime-tag} +A tag for the contracts runtime tag, serialized as a single `u8` tag of 0 for `VmCasperV1`, 1 for `VmCasperV2`. + ## Delegator {#delegator} Represents a party delegating their stake to a validator (or "delegatee"). The structure consists of the following fields: @@ -368,7 +371,7 @@ An `enum` specifying who pays for the invocation and execution of an entry point - `Caller`: Serializes as a 0 and indicates that the caller must cover the cost. -- `SelfOnly`: Serializes as a 1 and indicates that the contract will pay the cost to execute itself, but no subsequent invoked contracts. +- `DirectInvocationOnly`: Serializes as a 1 and indicates that the contract will pay the cost to execute itself, but no subsequent invoked contracts. - `SelfOnward`: Serializes as a 2 and indicates that the contract will pay for executing itself and any subsequent invocations. @@ -378,9 +381,9 @@ The context of method execution. It serializes as one of the following: - `Caller`: Serializes as a single `u8`, `0b00000000` -- `Called`: Serializes as a single `u8`, `0b00000001` +- `DirectInvocationOnly`: Serializes as a single `u8`, `0b00000001` -- `Factory`: Serializes as a single `u8`, `0b10000000` +- `SelfOnward`: Serializes as a single `u8`, `0b10000000` ## EntrypointV2 @@ -770,9 +773,9 @@ Entity types for system contracts, serialized as a single `u8` tag identifying t | Tag | System Contract | | --- | --------------- | | 0 | `Mint` | -| 1 | `Auction` | +| 1 | `HandlePayment` | | 2 | `StandardPayment` | -| 3 | `HandlePayment` | +| 3 | `Auction` | ## TimeDiff {#timediff} diff --git a/versioned_docs/version-2.0.0/developers/cli/opcode-costs.md b/versioned_docs/version-2.0.0/developers/cli/opcode-costs.md index 0795f7c68..be56aeb00 100644 --- a/versioned_docs/version-2.0.0/developers/cli/opcode-costs.md +++ b/versioned_docs/version-2.0.0/developers/cli/opcode-costs.md @@ -14,13 +14,13 @@ All costs in this table are in [motes](/concepts/glossary/M/#motes), not CSPR, a ::: -## Storage Costs +## StorageCosts |Attribute |Description | Cost | |----------------- |-----------------------------------------------|-----------------| |gas_per_byte | Gas charged per byte stored in global state. | 1_117_587| -## OpCode Costs +## OpCodeCosts |Attribute |Description | Cost | |----------------- |-----------------------------------------------|-----------------| @@ -40,7 +40,7 @@ All costs in this table are in [motes](/concepts/glossary/M/#motes), not CSPR, a |current_memory | Get the current memory operation multiplier. | 290| |grow_memory | Grow memory cost per page (64 kB). | 240_000| -## Control Flow Operation Costs +## ControlFlowCost |Attribute |Description | Cost | |----------------- |-----------------------------------------------|-----------------| diff --git a/versioned_docs/version-2.0.0/developers/json-rpc/types_chain.md b/versioned_docs/version-2.0.0/developers/json-rpc/types_chain.md index 90c229b9c..eb9654203 100644 --- a/versioned_docs/version-2.0.0/developers/json-rpc/types_chain.md +++ b/versioned_docs/version-2.0.0/developers/json-rpc/types_chain.md @@ -423,7 +423,7 @@ Required Parameters: ## ByteCodeHash -The hex-encoded address of a smart contract [`AddressableEntity`](#addressableentity). +A type wrapping a `HashAddr` which is the raw bytes of the ByteCodeHash. Serializes as `HashAddr` ## ByteCodeKind diff --git a/versioned_docs/version-2.0.0/developers/monitor-and-consume-events.md b/versioned_docs/version-2.0.0/developers/monitor-and-consume-events.md new file mode 100644 index 000000000..1de48214d --- /dev/null +++ b/versioned_docs/version-2.0.0/developers/monitor-and-consume-events.md @@ -0,0 +1,582 @@ +import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; + +# Monitoring and Consuming Events + +The Casper platform uses event streaming to signal state changes in smart contracts and nodes. Using Casper's client-side SDKs, dApps actively listening for emitted events can consume these events and perform actions based on event data. + +Each Casper node streams events through the SSE (Server Sent Event) server via the port specified as the `event_stream_server.address` in the node's _config.toml_. This port is by default `9999` for nodes on [Testnet](https://testnet.cspr.live/tools/peers) and [Mainnet](https://cspr.live/tools/peers). + +Events in `2.0` are all emitted via the firehose `http://:/events` endpoint. Bear in mind that a node is not obligated to have the sse server turned on to operate in the network. + +:::note + +An `ApiVersion` event is always emitted when a new client connects to a node's SSE server, informing the client of the node's software version. + +::: + +## Listening to the Event Stream + +Applications can listen for such events for a specific account during a particular era, containing certain data. Then, they can parse the data and discard what they do not need. To consume the event stream, you need to set up an event listener in your dApp. Here are example code snippets doing that: + + + + + +```javascript +import { SseClient, EventName } from "casper-js-sdk"; + +const sseClient = new SseClient("http://:9999/events"); + +sseClient.subscribe(EventName.BlockAddedEventType, (rawEvent) => { + try { + const parsedEvent = rawEvent.parseAsBlockAddedEvent(); + console.log(`Block hash: ${parsedEvent.BlockAdded.blockHash}`); + } catch (error) { + console.error("Error processing event:", error); + } +}); + +// Start the client with the last known event ID ( Optional ) +const lastEventID = 1234; + +sseClient.start(lastEventID); +``` + +For more in-depth explanation of features of the SSE client of js-sdk, plese refer to it's (repository and documentation)[https://github.com/casper-ecosystem/casper-js-sdk/blob/dev/src/sse/README.md]. + + + + +```bash +curl -s http://NODE_ADDRESS:9999/events/CHANNEL +``` + + + + + +You can find node addresses of active online peers to replace `NODE_ADDRESS`, by navigating to [cspr.live](https://cspr.live/tools/peers) for Mainnet and [testnet.cspr.live](https://testnet.cspr.live/tools/peers) for Testnet. + +You will find a list with all the possible event types below. + +## Event Types + +### ApiVersion + +The `ApiVersion` event is always the first event emitted when a new client connects to a node's SSE server. It specifies the protocol version of a node on the Casper platform. The following example contains the JSON representation of the `ApiVersion` event structure. + +```bash +data:{"ApiVersion":"2.0.0"} +``` + +### BlockAdded + +A `BlockAdded` event is emitted when a new block is added to the blockchain and stored locally in the node. The `BlockAdded` can be in either a `Version1` (1.x compliant) or `Version2` (2.x compliant) variants. + +
+Expand to see example of a Version1 BlockAdded + +```json +{ + "BlockAdded": { + "block_hash": "9571b9b27dacbed06e048cb656829128e4cab06a45ffe84a5ffff88f919f99b1", + "block": { + "Version1": { + "hash": "4fb7be0031f4dc0d107061065c603d79d3691c37f769e9e3285c73357ae952fa", + "header": { + "parent_hash": "50fdb9b02e429283ef1ff94c5317185a081eaf56a163f4de0f581eefe999e7b7", + "state_root_hash": "ec741f31e84de97db9a1f8d3ed1c48f5448656970a59f9b2267430124ab93fb1", + "body_hash": "7a38b4cf9fb5b1ad88724e67a16ae92fc1b76f8647b8aab0585c683ba3008a2f", + "random_bit": true, + "accumulated_seed": "f6167f91fe62d37fb601cb17dd7ec822f49a31c3da10ff8def194a8d118c4389", + "era_end": null, + "timestamp": "2025-04-28T10:12:51.985Z", + "era_id": 100, + "height": 555, + "protocol_version": "2.0.0" + }, + "body": { + "proposer": "02027ee0d7fdab27eeab089f292d64d78af865c8e79800f9b376e6ce68a3d5f41f5f", + "deploy_hashes": [ + "040dd42480760133c25ca33b394395c115090f40577c4792cc3c58c5c7c812fb", + "3f9f0f42b4e548693598e7b0ecd969ae7851087c66e6c9733161ad137d75fddf", + "8dadb644ca8d6e5678a619c14c7994b832a2d5cfbc222f0ddae6f18ccc61f3f6" + ], + "transfer_hashes": [] + } + } + } + } +} +``` + +- [block_hash](../concepts/serialization/structures.md#block-hash) - The cryptographic hash that identifies a block. +- [block](../concepts/serialization/structures.md#serialization-standard-block) - The JSON representation of the block. + +
+ +
+Expand to see example of a Version2 BlockAdded + +```json +{ + "BlockAdded": { + "block_hash": "290eb1ecd5c4e8bda94dae647fb9c21aeb531fe817467abb60f7c12be6a672eb", + "block": { + "Version2": { + "hash": "290eb1ecd5c4e8bda94dae647fb9c21aeb531fe817467abb60f7c12be6a672eb", + "header": { + "parent_hash": "3236c683ec5f220c1936a25a0be96b976cfbe784f06d2319933b432f2a1fe1eb", + "state_root_hash": "89ba71746096011be36cda29fdf1d1bd8067af51a0ea7eaf65e90666a35bcbf6", + "body_hash": "11b6c10321aea27c2fc4d292f570a93b32488759c16cf9ee22e747c35c3873fc", + "random_bit": true, + "accumulated_seed": "e376199ca38015a57760e9431fc6723e9500ab3f18c93a26830b5b4ccc9f6a29", + "era_end": null, + "timestamp": "2025-04-28T10:12:52.090Z", + "era_id": 246749, + "height": 2467498, + "protocol_version": "1.0.0", + "proposer": "0203c5ecdb1ad56b65cbc7dbbf99ea492e7566a6b2259191f9ab604c58b19d2a01f3", + "current_gas_price": 1, + "last_switch_block_hash": "0808080808080808080808080808080808080808080808080808080808080808" + }, + "body": { + "transactions": { + "0": [], + "1": [ + { + "Version1": "1f3b12822cfa6ef26d8f1e369ffbab37fa0e963385d124db5ab09ba22d2ec452" + }, + { + "Version1": "a13c6a737a926562a02e88f62bf84c3811f2fe20bcc6a9b1454802640dfc730d" + } + ], + "2": [], + "3": [ + { + "Deploy": "5825b4fcdb6e180bd80f83d743910b16e6217dd4e74d1147ac0eb656214ab5d4" + }, + { + "Deploy": "e83a459beef99015de50e3c33ba0acbe658aea8f0b72f0f55599889dc3025b68" + } + ], + "4": [], + "5": [] + }, + "rewarded_signatures": [] + } + } + } + } +} +``` + +- [block_hash](../concepts/serialization/structures.md#block-hash) - The cryptographic hash that identifies a block. +- [block](../concepts/serialization/structures.md#serialization-standard-block) - The JSON representation of the block. + +
+ +### TransactionAccepted + +`TransactionAccepted` events are emitted when a node on the network receives a transaction. This event will be produced in both cases - if a transaction is of variant Deploy and TransactionV1. + +
+Expand to view example of Transaction::Version1 + +```json +{ + "TransactionAccepted": { + "Version1": { + "hash": "942785a412289a5aaffdb01d58ee91478bb0cc6b68646519531f4e859ed80566", + "payload": { + "initiator_addr": { + "PublicKey": "02020707086bf373174af44dd96ff43cf73ee4ed01d5a563c97926d880acfda55476" + }, + "timestamp": "2020-08-07T01:30:31.750Z", + "ttl": "1h 56m 52s 389ms", + "chain_name": "xyz", + "pricing_mode": { + "Fixed": { + "additional_computation_factor": 0, + "gas_price_tolerance": 5 + } + }, + "fields": { + "args": { + "Named": [ + [ + "delegator", + { + "cl_type": "PublicKey", + "bytes": "01714f5b526d0ce966b0c7d7a6a7eda7fb5b8b10e8b0b18cfe085e8fe7abc0ab66", + "parsed": "01714f5b526d0ce966b0c7d7a6a7eda7fb5b8b10e8b0b18cfe085e8fe7abc0ab66" + } + ], + [ + "validator", + { + "cl_type": "PublicKey", + "bytes": "01fb60a66cdb914e7448b48213d247edacadc1b17cb2180fbc432460f2fcce497f", + "parsed": "01fb60a66cdb914e7448b48213d247edacadc1b17cb2180fbc432460f2fcce497f" + } + ], + [ + "amount", + { + "cl_type": "U512", + "bytes": "088063df0de89d7c06", + "parsed": "467422081330406272" + } + ] + ] + }, + "entry_point": "Undelegate", + "scheduling": "Standard", + "target": "Native" + } + }, + "approvals": [ + { + "signer": "02020707086bf373174af44dd96ff43cf73ee4ed01d5a563c97926d880acfda55476", + "signature": "02b049620953b7f2b828d8e435d37608e7b4dfe203056016a66228b0ffd933d1861dcbeeceab8cfc457a381ce4763734bf3cd1ecb912033a3c340c657d436ebe50" + } + ] + } + } +} +``` + +- [Version1.hash](../concepts/serialization/hash-types.md) - The blake2b hash of the Transaction. +- [Version1.payload](../concepts/serialization/serialization-standard.md#serialization-standard-account) - Internal data of the Version1 Transaction. +- [Version1.approvals](../concepts/serialization/types_chain.md#approval) - The signer's hexadecimal-encoded public key and signature. + +
+ +
+Expand to view example of Transaction::Deploy + +```json +{ + "TransactionAccepted": { + "Deploy": { + "hash": "916ab2344cdf29581221d9ff6b9947b683f955b4687455cd8a0f6f63d33b36f6", + "header": { + "account": "01800075cc557e3270b686784b2ea3a45bf6e6a7f88f9cc3d17a9c60c96ff16dbd", + "timestamp": "2020-08-07T01:20:22.509Z", + "ttl": "4m 12s", + "gas_price": 22, + "body_hash": "bc45450393b656a1fb3ee570f0345116dbc5ff1c18a9825955d2387cf62142b5", + "dependencies": [], + "chain_name": "casper-example" + }, + "payment": { + "StoredContractByName": { + "name": "casper-example", + "entry_point": "example-entry-point", + "args": [ + [ + "amount", + { + "cl_type": "U512", + "bytes": "0400f90295", + "parsed": "2500000000" + } + ] + ] + } + }, + "session": { + "ModuleBytes": { + "module_bytes": "6f49f3fc98c1514dd815ddef8ef20de772e72a3f523f562b8b47369e1d5cb4462f7644f8dab833228262b7ce4cbf42554edf98a0e4cc24aa1e77cd76506b922c7d281ffd0769f18e29e0080972b7036468463dde97cf73c11e3f86aa924fbe", + "args": [ + [ + "l2w4NZKZvxezK52Xb3I6", + { + "cl_type": { "List": "U8" }, + "bytes": "05000000f72c275005", + "parsed": [247, 44, 39, 80, 5] + } + ] + ] + } + }, + "approvals": [ + { + "signer": "01800075cc557e3270b686784b2ea3a45bf6e6a7f88f9cc3d17a9c60c96ff16dbd", + "signature": "016a1ae5c57d233baec536920a9c4dcf712f32456d07b3a5e669f624ffdd2281e9438780a73fca2fed154e9028b2d9fae118298457d03b232250a3cdbd71625603" + } + ] + } + } +} +``` + +- [Deploy.hash](../concepts/serialization/structures.md#deploy-hash) - The blake2b hash of the Deploy. +- [Deploy.body_hash](../concepts/serialization/hash-types.md) - The blake2b hash of the Deploy body. +- [Deploy.session](./developers/writing-onchain-code/contract-hash-vs-package-hash.md#what-is-session-code) - The session logic defining the Deploy's functionality. +- [Deploy.approvals](../json-rpc/types_chain.md#approval) - The signer's hexadecimal-encoded public key and signature. + +
+ +For details on custom serializations, check the [Serialization Standard](../../concepts/serialization-standard.md). Also, the [Types](../json-rpc/types_chain.md) page defines the terms used in the event stream output. + +### TransactionProcessed + +A `TransactionProcessed` event is emitted when a given Deploy has been executed. + +
+Expand to view output + +```json +{ + "TransactionProcessed": { + "transaction_hash": { + "Version1": "25329c14a4f9307830f2b4b6b529b0c3fd618dec65af7456ad9f9e2c7ba1ff4a" + }, + "initiator_addr": { + "PublicKey": "02024e2b994a52bcf4c0cc112512c4be04853c4e824203a8e627c107a8d595707801" + }, + "timestamp": "2020-08-07T01:30:33.119Z", + "ttl": "54m 11s 767ms", + "block_hash": "315210f005e7d2d7130004f0178c29cf7e4718d8b642f3f832a35a028ed094cf", + "execution_result": { + "Version1": { + "Success": { + "effect": { + "operations": [], + "transforms": [ + { + "key": "12730438218135504636", + "transform": { + "AddUInt256": "16420226327505839383" + } + }, + { + "key": "10696215255214620472", + "transform": { + "AddUInt256": "14018730981435988852" + } + }, + { + "key": "15638241704090226222", + "transform": { + "AddUInt256": "2486508393436959391" + } + } + ] + }, + "transfers": [], + "cost": "2379796918402242989" + } + } + }, + "messages": [ + { + "entity_addr": "entity-contract-a8648307789543cbf38afb24c970844e755654d462a25624edd775219d0cdacf", + "message": { + "String": "Sax8BEJtXE6vRPXMqOruOhyDxar7N70OeiyPVtfYqiOVNzvHThJwennWwoOs3HHd" + }, + "topic_name": "PTgw4HZ6CPRhYmSSBbXsI0rnMOcQXgrr", + "topic_name_hash": "54a3c9afacf3d475ed69af9de5d4f5496798af12d914aa7f5f8b5cec9935096f", + "topic_index": 4003932854, + "block_index": 2261021254199878090 + } + ] + } +} +``` + +- [transaction_hash](../concepts/serialization/structures.md#transaction-hash) - The cryptographic hash of a Deploy. +- [initiator_addr](../concepts/serialization/types.md#initiatoraddr) - Representation of the address that initiated this transaction. +- [timestamp](../concepts/serialization/types.md#timestamp) - A timestamp type representing a concrete moment in time. +- [block_hash](../concepts/serialization/structures.md#block-hash) - A cryptographic hash identifying a Block. +- [execution_result](../concepts/serialization/types.md#execution-result) - The execution status of the transaction. It is a polymorphic type that can be either `Deploy` or `Version1`. + +
+ +### TransactionExpired + +A `TransactionExpired` event is emitted when the Deploy is no longer valid for processing or being added to a block due to its time to live (TTL) having expired. + +
+Expand to view output + +```json +{ + "TransactionExpired": { + "transaction_hash": { + "Version1": "fa1bf753a9b361316531f691db06e0798e4cb29e70724e2c7bf8619b8066be8c" + } + } +} +``` + +- [transaction_hash](../concepts/serialization/types.md#transactionhash) - The cryptographic hash of a Transaction. + +
+ +### Fault + +The `Fault` event is emitted if there is a validator error. + +
+Expand the below section to view the Fault event details: + +```json +{ + "Fault": { + "era_id": 4591448806312642600, + "public_key": "013da85eb06279da42e28530e1116be04bfd2aa25ed8d63401ebff4d9153a609a9", + "timestamp": "2023-01-01T01:26:58.364Z" + } +} +``` + +- [era_id](../concepts/serialization/types.md#eraid) - A period of time during which the validator set does not change. +- [public_key](../concepts/serialization/types.md#publickey) - The hexadecimal-encoded public key of the validator that caused the fault. +- [timestamp](../concepts/serialization/types.md#timestamp) - A timestamp representing the moment the validator faulted. + +
+ +### FinalitySignature + +This event indicates validators have signed the final approvals and further alterations to the block will not be allowed. Refer to the [consensus reached](../concepts/transactions-and-transaction-lifecycle.md#consensus-reached) and [block finality](../concepts/glossary/B.md#block-finality) sections to learn more about finality signatures. The body of `FinalitySignature` is polymorphic - it will either hold `V1` or `V2` field. The content of `V1` is to support compatibility with the payload of 1.x node `FinalitySignature` event + +
+Expand to view example of FinalitySignature::V1 + +```json +{ + "FinalitySignature": { + "V1": { + "block_hash": "92be2255d4d47cc236b037b761ee1d2a92b94c5bbac12e43982b1a8736dad97a", + "era_id": 878101, + "signature": "02f9c63d28dc1ffb6555de629358d9e784e73f612a7a78bc918b2e7a5e0a67b195162d6606f01069aa2f23e1198268b15e483b0b63a29746f56205d977a0aedf26", + "public_key": "020355c10a87a7fa97ca0b9b4dad262d8eed977a25e2c4a9dcb85bd954476b496d6f" + } + } +} +``` + +- [block_hash](../concepts/serialization/structures.md#block-hash) - A cryptographic hash identifying a Block. +- [era_id](../concepts/serialization/types.md#eraid) - A period of time during which the validator set does not change. +- [signature](../concepts/serialization/types.md#signature) - Serialized bytes representing the validator's signature. +- [public_key](../concepts/serialization/types.md#publickey) - The hexadecimal-encoded public key of the validator. + +
+ +
+Expand to view example of FinalitySignature::V2 + +```json +{ + "FinalitySignature": { + "V2": { + "block_hash": "75420adf11cc23a52fd45a9a843cce770ce0e7056dd37943584625d97cdac31c", + "block_height": 15850176021194416983, + "era_id": 724437, + "chain_name_hash": "63803374d60b19e25baa34d306a74c19fc09866df48d9dd5a4e645b7cb26026c", + "signature": "015b88427cffd2d7d58833d09378323d65dec72e2e0a8a9c53991024c53a0bebfe836bcf233f4233bcf63f22f3025b68efb2b00226700bc5d49293cce3a98edc00", + "public_key": "01a792c3e2db14a130676d2498f70acf15e33aa22945d9b300f3f35021acaeb3cf" + } + } +} +``` + +- [block_hash](../concepts/serialization/structures.md#block-hash) - A cryptographic hash identifying a Block. +- [block_height](../concepts/serialization/primitives.md#clvalue-numeric) - A cryptographic hash identifying a Block. +- [era_id](../concepts/serialization/types.md#eraid) - A period of time during which the validator set does not change. +- [signature](../concepts/serialization/types.md#signature) - Serialized bytes representing the validator's signature. +- [public_key](../concepts/serialization/types.md#publickey) - The hexadecimal-encoded public key of the validator. + +
+ +### Step + +The `Step` event is emitted at the end of every era and contains the execution effects produced by running the auction contract's `step` function. + +
+Expand to view output: + +```json +{ + "Step": { + "era_id": 1245, + "execution_effects": [ + { + "key": "account-hash-0909090909090909090909090909090909090909090909090909090909090909", + "kind": "Identity" + }, + { + "key": "withdraw-0909090909090909090909090909090909090909090909090909090909090909", + "kind": { + "AddInt32": 543 + } + } + ] + } +} +``` + +- [era_id](../concepts/serialization/types.md#eraid) - A period of time during which the validator set does not change. +- [execution_effect](../concepts/serialization/types.md#effects) - The journal of execution effects. + +
+ +### Shutdown + +The `Shutdown` event is emitted when the node is about to shut down, usually for an upgrade, causing a termination of the event stream. + +
+Expand the below section to view the Shutdown event details: + +```bash +"Shutdown" +``` + +- Shutdown - The "Shutdown" text notifies the event listener that a shutdown will occur. + +
+ +## Replaying the Event Stream + +This command will replay the event stream from an old event onward. Replace the `NODE_ADDRESS`, `CHANNEL`, and `ID` fields with the values of your scenario. + + + + + +```bash +curl -sN http://NODE_ADDRESS:9999/events/CHANNEL?start_from=ID +``` + +_Example:_ + +```bash +curl -sN http://65.21.235.219:9999/events/main?start_from=29267508 +``` + + + + + +Each URL can have a query string added to the form `?start_from=ID`, where ID is an integer representing an old event ID. With this query, you can replay the event stream from that old event onward. If you specify an event ID already purged from the cache, the server will replay all the cached events. + +:::note + +The server keeps only a limited number of events cached to allow replaying the stream to clients using the `?start_from=` query string. The cache size can be set differently on each node using the `event_stream_buffer_length` value in the _config.toml_. By default, it is only 5000. +The intended use case is to allow a client consuming the event stream that loses its connection to reconnect and catch up with events that were emitted while it was disconnected. + +::: + +# 1.5 vs 2.x compatibility note + +The SSE events serve went through significant, backwards incompatible changes. Here are the most important ones of them that need to be taken into consideration: + +1. 2.0 SSE supports the firehose `/events` endpoint which channels all the beforementioned events. +1. `DeployAccepted`, `DeployProcessed`, `DeployExpired` +1. `BlockAdded` has a 1.5 incompatible structure +1. `TransactionAccepted` is an event analogous to `DeployAccepted`, but there is no backwards-compatibility guarantee - their structure differs. +1. `TransactionProcessed` is an event analogous to `DeployProcessed`, but there is no backwards-compatibility guarantee - their structure differs. +1. `TransactionExpired` is an event analogous to `DeployExpired`, but there is no backwards-compatibility guarantee - their structure differs. +1. `FinalitySignature` has a 1.5 incompatible structure. From e531d7815ab732bc3fbb6005600b94c48fd6cec4 Mon Sep 17 00:00:00 2001 From: Jakub Zajkowski Date: Wed, 30 Apr 2025 15:28:33 +0200 Subject: [PATCH 32/97] Added mention of sidecar in version-2.0.0/developers/monitor-and-consume-events.md --- .../version-2.0.0/developers/monitor-and-consume-events.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/versioned_docs/version-2.0.0/developers/monitor-and-consume-events.md b/versioned_docs/version-2.0.0/developers/monitor-and-consume-events.md index 1de48214d..fee68aebe 100644 --- a/versioned_docs/version-2.0.0/developers/monitor-and-consume-events.md +++ b/versioned_docs/version-2.0.0/developers/monitor-and-consume-events.md @@ -569,7 +569,7 @@ The intended use case is to allow a client consuming the event stream that loses ::: -# 1.5 vs 2.x compatibility note +## 1.5 vs 2.x compatibility note The SSE events serve went through significant, backwards incompatible changes. Here are the most important ones of them that need to be taken into consideration: @@ -580,3 +580,7 @@ The SSE events serve went through significant, backwards incompatible changes. H 1. `TransactionProcessed` is an event analogous to `DeployProcessed`, but there is no backwards-compatibility guarantee - their structure differs. 1. `TransactionExpired` is an event analogous to `DeployExpired`, but there is no backwards-compatibility guarantee - their structure differs. 1. `FinalitySignature` has a 1.5 incompatible structure. + +## Sidecar and SSE events + +The Sidecar App offers some benefits and extensions to how the SSE of the node itself works. For instance it allows to store events to drive and query them with a separate REST API. It also allows the nodes SSE endpoint to be not-public since Sidecar has the ability to republish SSE events. For details on how it works please consult (Sidecar documentation)[https://github.com/casper-network/casper-sidecar/blob/dev/README.md] From 8b57f1ba27b3cbe4ae489729b52cf361ecae5738 Mon Sep 17 00:00:00 2001 From: Jakub Zajkowski Date: Sun, 4 May 2025 15:43:09 +0200 Subject: [PATCH 33/97] Applied CR remarks --- .../concepts/serialization/structures.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/versioned_docs/version-2.0.0/concepts/serialization/structures.md b/versioned_docs/version-2.0.0/concepts/serialization/structures.md index 025f021de..38f7e1954 100644 --- a/versioned_docs/version-2.0.0/concepts/serialization/structures.md +++ b/versioned_docs/version-2.0.0/concepts/serialization/structures.md @@ -2,7 +2,7 @@ ## Account {#serialization-standard-account} -An Account is a structure that represented a user on a legacy Casper network. Alongside the Condor protocol release, `Accounts` were replaced with `AddressableEntities` of the type `Account`. The account structure consists of the following fields: +An Account is a structure that represented a user on a legacy Casper network. Alongside the Casper 2.0 protocol release, `Accounts` were replaced with `AddressableEntities` of the type `Account`. The account structure consists of the following fields: - [`account_hash`](./types.md#account-hash) @@ -47,10 +47,12 @@ To byte-serialize a `Block` you first need to serialize it's binary prefix and t ## BlockV1 {#block-v1} -This type encapsulates block data that used to be produced in versions of the nodes prior to 2.0. -This type represents a historical block that was produced prior to 2.0 -Each block has a globally unique ID, achieved by hashing the contents of the block. -Each block points to its parent. An exception is the first block, which has no parent. +This type: +* encapsulates block data that used to be produced in versions of the nodes prior to 2.0. +* represents a historical block that was produced prior to 2.0 +Each block: +* has a globally unique ID, achieved by hashing the contents of the block. +* points to its parent. An exception is the first block, which has no parent. A block is structurally defined as follows: @@ -97,7 +99,7 @@ Note that `EraEndV1` is an optional field. Thus the above scheme only applies if ### BlockBodyV1 {#blockbodyV1} -The body portion of a block, prior to the Condor upgrade, is structurally defined as: +The body portion of a block, prior to the Casper 2.0 upgrade, is structurally defined as: - `proposer`: The PublicKey which proposed this block. - `deploy_hashes`: Is a vector of hex-encoded hashes identifying Deploys included in this block. @@ -134,7 +136,7 @@ The header portion of a block, structurally, is defined as follows: - `body_hash` the hash of the block body. It serializes to the byte representation of the body hash. The serialized buffer of the `body_hash` is 32 bytes long. - `random_bit` is a boolean needed for initializing a future era. It is serialized as a single byte; true maps to 1, while false maps to 0. - `accumulated_seed` is a seed needed for initializing a future era. It serializes to the byte representation of the parent Hash. The serialized buffer of the `accumulated_hash` is 32 bytes long. -- `era_end` contains equivocation and reward information to be included in the terminal finalized block. It is an optional field. Thus if the field is set as `None`, it serializes to _0_. The serialization of the other case is described in the `EraEndV1`. +- `era_end` contains equivocation and reward information to be included in the terminal finalized block. It is an optional field. Thus if the field is set as `None`, it serializes to _0_. The serialization of the other case is described in the `EraEndV2`. - `timestamp` The timestamp from when the block was proposed. It serializes as a single `u64` value. The serialization of a `u64` value is described in the CLValues section. - `era_id` Era ID in which this block was created. It serializes as a single `u64` value. - `height` The height of this block, i.e., the number of ancestors. It serializes as a single `u64` value. @@ -145,7 +147,7 @@ The header portion of a block, structurally, is defined as follows: ### EraEndV2 {#eraendV2} -`EraEndV1` as represented within the block header, is a struct containing four fields. +`EraEndV2` as represented within the block header, is a struct containing four fields. - `equivocators`: A vector of `PublicKey` listing equivocators for the era. - `inactive_validators`: A list of inactive validators for the era. From 2c821b5748d6b90e68fe3b85a607d9c26465db9f Mon Sep 17 00:00:00 2001 From: Jakub Zajkowski Date: Mon, 5 May 2025 09:43:31 +0200 Subject: [PATCH 34/97] Extended the documentation to include calltable serialization documentation. --- .../serialization/calltable-serialization.md | 179 ++++++++++++++++ .../concepts/serialization/structures.md | 88 +------- .../concepts/serialization/transaction.md | 193 ++++++++++++++++++ .../concepts/serialization/types.md | 23 +-- .../developers/json-rpc/types_chain.md | 4 +- .../developers/monitor-and-consume-events.md | 2 +- 6 files changed, 380 insertions(+), 109 deletions(-) create mode 100644 versioned_docs/version-2.0.0/concepts/serialization/calltable-serialization.md create mode 100644 versioned_docs/version-2.0.0/concepts/serialization/transaction.md diff --git a/versioned_docs/version-2.0.0/concepts/serialization/calltable-serialization.md b/versioned_docs/version-2.0.0/concepts/serialization/calltable-serialization.md new file mode 100644 index 000000000..2ccf167bb --- /dev/null +++ b/versioned_docs/version-2.0.0/concepts/serialization/calltable-serialization.md @@ -0,0 +1,179 @@ +# Calltable serialization scheme + +The `Calltable serialization scheme` is a way to byte-serialize data in a way that can change over time and can retain backwards compatibility. + +## Calltable envelope + +As mentioned before, the `calltable serialization approach` requires serializing a `calltable evelope`, from now called an `envelope`. The `envelope` consists of: + +- `fields` - field which is an ordered collection of [Field](#field). This collection is serialized as a Vec<Field> in the "regular" `Binary Serialization Standard` schema. The invariants for `fields` are: + - for each fi, fj given `i` < `j` implies fi.index < fj.index + - for each fi, fj given `i` < `j` implies fi.offset < fj.offset +- `bytes` - field which is an amorphous blob of bytes serialized as `Bytes` in the "regular" `Binary Serialization Standard` schema. + +A `Field` consists of: + +- `index` - field (`u16`), +- `offset` - field (`u32`), + +The `fields` part of the envelope is the `self describing` data for the binary payload stored in `bytes`. To successfully serialize something into a calltable, we need to assign unique `serialization index` identifiers to it's parts. In a structure those parts would be fields. Let's denote the index of nth field as in. We then byte-serialize (according to Binary Serialization Standard) each field, let's denote the calculated bytes of the n-th field as bn. +We create an ordered collection of indices `I` which constist of all the `serialization indices` of fields in an ascending order. + +> I = [i0, i1, ..., ii-1, ii] + +We create an ordered collection of bytes collection `B` from all bi keeping i's order, so: + +> B = [b0, b1, ..., bi-1, bi] + +Next, we can create the calltable `fields` and `bytes` with this example implementation: + +```python + + def build_calltable_data(I, B): + assert len(I) == len(B) + offset = 0 + bytes_arr = bytes([]) + fields = [] + for i in range(0, len(I)): + this_fields_serialization_index = I[i] + this_field_bytes = B[i] + this_field_length = len(this_field_bytes) + fields.append({ + "index": this_fields_serialization_index, + "offset": offset, + }) + offset += this_field_length + bytes_arr += this_field_bytes + return { + "fields": fields, + "bytes": bytes_arr + } + +``` + +so in this example of usage: + +```python +I = [0, 1, 3, 5] +B = [b'\x00\x01\xff', b'\x37\x0c\x6e\x3c\x0f', b'\x07\x95\x01', b'\x37'] +envelope = build_calltable_data(I, B) +``` + +`envelope["fields"]` would be `[{'index': 0, 'offset': 0}, {'index': 1, 'offset': 3}, {'index': 3, 'offset': 8}, {'index': 5, 'offset': 11}]` + +and `envelope["bytes"]` would be an array of bytes, which represented as hex string would look like: + +``` +00 01 ff 37 0c 6e 3c 0f 07 95 01 37 +``` + +(whitespaces added for clarity) + +Once we have the `fields` and `bytes` we can proceed to serialize those in the "default Binary Serialization Standard" way using this script: + +```python + def serialize_calltable_representation(fields, concatenated_serialized_fields): + bytes_arr = bytes([]) + fields_len = len(fields) + bytes_arr += fields_len.to_bytes(4, byteorder = 'little') + for i in range(0, len(fields)): + bytes_arr += fields[i]["index"].to_bytes(2, byteorder = 'little') + bytes_arr += fields[i]["offset"].to_bytes(4, byteorder = 'little') + bytes_arr += concatenated_serialized_fields + return bytes_arr +``` + +and once we have all that we can apply the scripts to example: + +```python + I = [0, 1, 3, 5] + B = [bytes([0, 1, 255]), bytes([55, 12, 110, 60, 15]), bytes([7, 149, 1]), bytes([55])] + envelope = buildCalltableData(I, B) + serialized_calltable_representation = serialize_calltable_representation(envelope["fields"], envelope["bytes"]) + print(f"{serialized_calltable_representation.hex()}") +``` + +which produces: + +``` +0400000000000000000001000300000003000800000005000b0000000001ff370c6e3c0f07950137 +``` + +In the above hex: +| Serialized length of `fields` collection | field[0].index | field[0].offset | field[1].index | field[1].offset | field[2].index | field[2].offset | field[3].index | field[3].offset | bytes | +| ---------------------------------------- | -------------- | --------------- | -------------- | --------------- | -------------- | --------------- | -------------- | --------------- | ----- | +| 04000000 | 0000 | 00000000 | 0100 | 03000000 | 0300 | 08000000 | 0500 | 0b000000 | 0001ff370c6e3c0f07950137 + +This concludes how we construct and byte-serialize an `envelope`. In the next paragraphs we will explain what are the assumptions and conventions when dealing with `struct`s and `enum`s. + +## Serializing uniform data structures + +In this paragraph we will explain how to use `calltable serialization scheme` for non-polymorphic data structure. We know what their fields will be. We assign each field a unique `serialization index`, starting from `0`. For a specific structure, an index used for a field is assigned to that field indefinitely - if we ever decided to retire a field from a structure, we will stop using that index in the serialization. If we ever decide to add a field to a struct, we will add a new index that was never used for that structure. Although it is not required for the indices to be contiguous, the assumption is that we are assigning them one-by-one. Any "holes" in the indexing should indicate that there used to be a field that is no longer used or is not mandatory. + +```rust +struct A { + a: u16, + b: String, + c: Vec +} +``` + +In the above example we could assign `a` index `0`, `b` index `1` and `c` index `2`. Knowing this and assuming that we know how to byte-serialize `OtherStruct` we should be able to create an `envelope` for this struct and serialize it in the `calltable` scheme. + +## Serializing enums + +By `enums` we understand polymorphic, but limited (an instance of an enum can be only one of N known `variants`) data structures that are unions of structures and/or other enums. An enum variant can be: + +- empty (tag variant) +- a struct +- a nested enum + +As mentioned, there is a polymorphic aspect to these kinds of enums and we handle them by convention - `serialization index` `0` is always reserved for a 1 byte discriminator number which defines which enum variant is being serialized, the next indices are used to serialize the fields of specific variants (for empty tag variants there will be no more indices). So, given an enum: + +```rust + enum X { + A, + B {a: u16, b: u32}, + C (u16, u32, u64) + } +``` + +First we need to chose variant discriminator values for each of the enum variants, let's select: + +- if variant `A` - the variant discriminator will be `0` +- if variant `B` - the variant discriminator will be `1` +- if variant `C` - the variant discriminator will be `2` + +Again, as with fields in `Serializing enums` the variant discriminator values don't need to start from `0` and don't need to be contiguous, but that is our convention and any "holes" in the definition would indicate a retired enum variant. + +Next we need to assign field `serialization indices` for each variant: + +- for A there are no fields so no indices are needed +- for B: + - `1` for field `a` (remember, `0` is reserved for the discriminator), + - `2` for field `b` +- for C: + - `1` for the first tuple element (of type u16) (remember, `0` is reserved for the discriminator), + - `2` for the second tuple element (of type u32), + - `3` for the second tuple element (of type u64), + +As you can see, `serialization indices` for fields need to be unique in scope of a particular enum variant. +Knowing the above, let's see how the `I` and `B` collections would look like for different instances of this enum: + +- when serializing variant `X::A` (assuming python notation): + ```python + I = [0] + B = [(0).to_bytes(1, byteorder = 'little')] + ``` +- when serializing variant `X::B {a: 155, b: 9500}` (assuming python notation): + ```python + I = [0, 1, 2] + B = [(1).to_bytes(1, byteorder = 'little'), (155).to_bytes(2, byteorder = 'little'), (9500).to_bytes(4, byteorder = 'little')] + ``` +- when serializing variant `X::C(5, 10, 15)` (assuming python notation): + ```python + I = [0, 1, 2] + B = [(2).to_bytes(1, byteorder = 'little'), (5).to_bytes(2, byteorder = 'little'), (10).to_bytes(4, byteorder = 'little'), (15).to_bytes(8, byteorder = 'little')] + ``` + +You can apply the above `I` and `B` values to the prior defined functions: `build_calltable_data` and `serialize_calltable_representation` to determine the output bytes. diff --git a/versioned_docs/version-2.0.0/concepts/serialization/structures.md b/versioned_docs/version-2.0.0/concepts/serialization/structures.md index 38f7e1954..07924589c 100644 --- a/versioned_docs/version-2.0.0/concepts/serialization/structures.md +++ b/versioned_docs/version-2.0.0/concepts/serialization/structures.md @@ -281,7 +281,7 @@ The hash of the name of a message topic, serialized as a [`u8`](./primitives.md# ## Transaction {#transaction} -A versioned wrapper for a transaction or deploy. It serializes as a `u8` tag of `0` followed by a [`Deploy`](#serialization-standard-deploy) or a `u8` tag of `1` followed by a [`TransactionV1`](#transactionV1). +Please see the [Transaction serialization document](./transaction.md) ### Deploy {#serialization-standard-deploy} @@ -346,61 +346,16 @@ A `struct` containing configuration values associated with `deploys`. The struct ### TransactionV1 {#transactionV1} -A unit of work sent by a client to the network, which when executed can cause global state to be altered. It is structurally defined as follows: +Please see the [Transaction serialization document](./transaction.md) -- [`TransactionV1Hash`](#transactionv1hash) - -- [`TransactionV1Header`](#transactionv1header) - -- [`TransactionV1Body`](#transactionv1body) +### TransactionHash {#transactionhash} -- `approvals`: A list of signatures. +A versioned wrapper for transaction hash or deploy hash. It serializes as either a `u8` tag of 0 followed by a [`DeployHash`](#deploy-hash) or a `u8` tag of 1 followed by a [`TransactionV1Hash`](#transactionv1hash). ### TransactionV1Hash The transaction hash is a digest over the contents of the transaction header. The transaction hash serializes as the byte representation of the hash itself. -### TransactionV1Header - -The header portion of a transaction, structurally, is defined as follows: - -- `chain_name`: Chain name is a human-readable string describing the name of the chain as detailed in the chainspec. It is serialized as a [String](./primitives.md#clvalue-string). -- `timestamp`: A timestamp is a struct that is a unary tuple containing a `u64` value. This value is a count of the milliseconds since the UNIX epoch. Thus the value `1603994401469` serializes as `0xbd3a847575010000`. -- `ttl`: The **Time to live** is defined as the amount of time for which the transaction is considered valid. The `ttl` serializes in the same manner as the timestamp. -- `body_hash`: Body hash is a hash over the contents of the [transaction body](#transactionv1body). It serializes as the byte representation of the hash itself. -- [`pricing_mode`](./types.md#pricingmode) -- [`initator_addr`](./types.md#initiatoraddr) - -### TransactionV1Body - -The body of a `TransactionV1`, consisting of the following: - -- [`args`](./types.md#runtimeargs) -- [`target`](#transactiontarget) -- [`entry_point`](#transactionentrypoint) -- [`scheduling`](#transactionscheduling) - -### TransactionRuntime {#transactionruntime} - -The runtime used to execute a transaction, serialized as a [`u8`](./primitives.md#clvalue-numeric). Currently, only the `VmCasperV1` is available, which serializes as a `0`. - -### TransactionEntryPoint {#transactionentrypoint} - -An entry point of a transaction, serialized as a [`u8`](./primitives.md#clvalue-numeric) value based on the type of entry point. The following table outlines the available types: - -| Tag | Entry Point | -| --- | ----------- | -| 0 | Custom | -| 1 | Transfer | -| 2 | Add_Bid | -| 3 | Withdraw_Bid | -| 4 | Delegate | -| 5 | Undelegate | -| 6 | Redelegate | -| 7 | Activate_Bid | -| 8 | ChangePublicKey | -| 9 | Call | - ### TransactionConfig {#transactionconfig} A `struct` containing configuration values associated with `Transactions`. The structure contains the following fields: @@ -435,42 +390,7 @@ A `struct` containing configuration values associated with `TransactionV1s`. The A versioned wrapper for transaction hash or deploy hash. It serializes as either a `u8` tag of 0 followed by a [`DeployHash`](#deploy-hash) or a `u8` tag of 1 followed by a [`TransactionV1Hash`](#transactionv1hash). -### TransactionHeader {#transactionheader} - -A versioned wrapper for transaction header or deploy header. It serializes as either a `u8` tag of 0 followed by a [`DeployHeader`](#deploy-header) or a `u8` tag of 1 followed by a [`TransactionV1Header`](#transactionv1header). - ### TransactionId {#transactionid} The unique identifier of a `Transaction`, serialized as its [`TransactionHash`](#transactionhash) and [`ApprovalsHash`](#approvals-hash). -### TransactionScheduling {#transactionscheduling} - -The scheduling mode of a transaction, serialized as a [`u8`](./primitives.md#clvalue-numeric) tag identifying the type: - -- `Standard` serializes as a `0`. - -### TransactionInvocationTarget {#transactioninvocationtarget} - -The identifier of a `stored` transaction target, serialized as one of the following: - -- `InvocableEntity` serializes as a `u8` tag of `0` followed by the hex-encoded entity address serialized as the byte representation of itself. - -- `InvocableEntityAlias` serializes as a `u8` tag of `1` followed by the alias serialized as a [`string`](./primitives.md#clvalue-string). - -- `Package` serializes as a `u8` tag of `2` followed by the [`package hash`](./types.md#package-hash) and optionally the [`entity_version`](./types.md#entityversionkey). - -- `PackageAlias` serializes as a `u8` tag of `3` followed by the alias serialized as a [`string`](./primitives.md#clvalue-string) and optionally the [`entity_version`](./types.md#entityversionkey). - -### TransactionTarget {#transactiontarget} - -The execution target of a transaction, serializing as a [`u8`](./primitives.md#clvalue-numeric) that identifies the type, followed by any additional data. - -- `native` serializes as a `0`. - -- `stored` serializes as a `1` followed by the [`id`](#transactioninvocationtarget) and [`runtime`](#transactionruntime). - -- `session` serializes as a `2` followed by the [`kind`](#transactionsessionkind), [`module_bytes`](#payment--session) and [`runtime`](#transactionruntime). - -### TransactionWithExecutionInfo {#transaction-with-execution-info} - -A `struct` containing a`Transaction` with execution info. It serializes as a [`Transaction`](#transaction) followed by an [`Option`](./primitives.md#clvalue-option) of `ExecutionInfo`. diff --git a/versioned_docs/version-2.0.0/concepts/serialization/transaction.md b/versioned_docs/version-2.0.0/concepts/serialization/transaction.md new file mode 100644 index 000000000..a066be930 --- /dev/null +++ b/versioned_docs/version-2.0.0/concepts/serialization/transaction.md @@ -0,0 +1,193 @@ +# The Transaction type + +| Table of contents | +| --------------------- | +| [Deploy](#deploy) | +| [Version1](#version1) | + +A transaction is an enum-type whose variants represent atomic units of work that can be sent to the node for execution. + +Currently it consists of two possible variants: + +- Deploy +- Version1 + +## Deploy + +The Transaction::Deploy variant is equivalent to the 1.x Deploy. + +Serializing a `Transaction` of variant `Deploy`: + +- The first byte is a `0` +- Next bytes are binary representation of a [Deploy](./structures.md#serialization-standard-deploy) + +## Version1 + +Transaction::Version1 is the new way that work can be proposed to a node. It's nature is more amorphic than Transaction::Deploy. This type of Transaction uses a self-describing binary serialization scheme (comparing to other [Binary Serialization Standard](./index.md) types). The self-describing scheme is called `Calltable serialization` in this document. An in-depth description of how this self-describing standard works is in the [calltable serialization](./calltable-serialization.md) document. We will be using `serialization_index` and `variant discriminator` terms, their interpretation is explained in the [calltable serialization](./calltable-serialization.md) document also. + +Serializing a `Transaction` of variant `Version1`: + +- The first byte is a `1` +- Next bytes are binary representation of a [TransactionV1](#transactionv1) + +### TransactionV1 + +`TransactionV1` (serialized using calltable scheme) consists of: + +- `hash` - hash calculated over binary serialization of `payload`. It's `serialization_index` is `0`. In the sense of binary serialization it is a [Digest](./types.md#digest-digest) +- `payload`- of type [`TransactionV1Payload`](#transactionv1payload), contains all the actual data that the transaction sends to node. It's `serialization_index` is `1` +- `approvals` - collection of [Approvals](./structures.md#approval) being signatures over `hash`. It's `serialization_index` is `2` + +### TransactionV1Payload + +`TransactionV1Payload` (serialized using calltable scheme) consists of: + +- `initiator_addr` - of type [InitiatorAddr](#initiatoraddr) identifies the initiator of this Transaction. It's `serialization_index` is `0` +- `timestamp` - [Timestamp](./types.md#timestamp) identifying the self-declared time of creation for this transaction. It's `serialization_index` is `1` +- `ttl` - [TimeDiff](./types.md#timediff) self-declared period in which the transaction should be included in a block and executed. It's `serialization_index` is `2` +- `chain_name` - [`String`](./primitives.md#string-clvalue-string) identifying the network name on which this transaction should be executed. It's `serialization_index` is `3` +- `pricing_mode` - [PricingMode](#pricingmode) declaration of how the transaction should be payed for. It's `serialization_index` is `4` +- `fields` - please see [v1.payload.fields](#v1payloadfields) section. It's `serialization_index` is `5` + +#### InitiatorAddr + +`InitiatorAddr` (serialized using calltable scheme) consists of: + +- in variant InitiatorAddr::PublicKey + - variant discriminator of value `0` + - [`PublicKey`](./types.md#publickey-publickey) serialized under serialization key `1` +- in variant InitiatorAddr::AccountHash + - variant discriminator of value `1` + - [`AccountHash`](./types.md#account-hash-account-hash) serialized under serialization key `1` + +#### PricingMode + +`PricingMode` (serialized using calltable scheme) consists of: + +- in variant `PaymentLimited` + - variant discriminator of value `0` + - field `payment_amount` of type `u64` (8 bytes unsigned [number](./primitives.md#numeric-clvalue-numeric)) with serialization index `1` + - field `gas_price_tolerance` of type `u8` (1 bytes unsigned [number](./primitives.md#numeric-clvalue-numeric)) with serialization index `2` + - field `standard_payment` of type [bool](./primitives.md#boolean-clvalue-boolean) with serialization index `3` +- in variant `Fixed` + - variant discriminator of value `1` + - field `additional_computation_factor` of type `u8` (1 bytes unsigned [number](./primitives.md#numeric-clvalue-numeric)) with serialization index `1` + - field `gas_price_tolerance` of type `u8` (1 bytes unsigned [number](./primitives.md#numeric-clvalue-numeric)) with serialization index `2` +- in variant `Prepaid` + - variant discriminator of value `2` + - field `receipt` of type [Digest](./types.md#digest-digest) with serialization index `1` + +### V1.payload.fields + +This is an amorphous data holder. It is serialized as an [ordered collection](./primitives.md#list-clvalue-list) of [tuples](./primitives.md#tuple-clvalue-tuple) holding (u16, [Bytes](./types.md#bytes-bytes)). By u16 we understand an unsigned 2 byte number (see [numeric](./primitives.md#numeric-clvalue-numeric)). +The invariants for this field are: + +- keys (first tuple entries) are unique +- the collection is ordered ascending by first element of the tuple (u16) + +Breaking the above invariants will cause the node to reject the the transaction as malformed. + +This field is design in this amorphous way to facilitate the possibility of reshaping (adding, removing) fields in the future while keeping the byte serialization structure compatible. First tuple entries of this collection discern internal fields, second tuple entries are Binary Serialization Standard compliant serializations of data. + +_Currently_ the "keys" (first tuple entries) of the `fields` map are interpreted as: + +- payload with key `0`: an instance of [`TransactionArgs`](#transactionargs) +- payload with key `1`: an instance of [`TransactionTarget`](#transactiontarget) +- payload with key `2`: an instance of [`TransactionEntryPoint`](#transactionentrypoint) +- payload with key `3`: an instance of [`TransactionScheduling`](#transactionscheduling) + +#### TransactionArgs + +`TransactionArgs` (serialized using calltable scheme) consists of: + +- in variant `Named` + - variant discriminator of value `0` + - [RuntimeArgs](./types.md#runtimeargs-runtimeargs) with serialization index `1` +- in variant `Bytesrepr` + - variant discriminator of value `1` + - [Bytes](./types.md#bytes-bytes) with serialization index `1` + +#### TransactionTarget + +`TransactionTarget` (serialized using calltable scheme) consists of: + +- in variant `Native` + - variant discriminator of value `0` +- in variant `Stored` + - variant discriminator of value `1` + - field `id` of type [TransactionInvocationTarget](#transactioninvocationtarget) with serialization index `1` + - field `runtime` of type [TransactionRuntimeParams](#transactionruntimeparams) with serialization index `2` +- in variant `Session` + - variant discriminator of value `2` + - field `is_install_upgrade` of type `bool` with serialization index `1` + - field `module_bytes` of type `Bytes` with serialization index `2` + - field `runtime` of type [TransactionRuntimeParams](#transactionruntimeparams) with serialization index `2` + +#### TransactionInvocationTarget + +`TransactionInvocationTarget` (serialized using calltable scheme) consists of: + +- in variant `ByHash` + - variant discriminator of value `0` + - `HashAddr` with serialization index `1` +- in variant `ByName` + - variant discriminator of value `1` + - `String` with serialization index `1` +- in variant `ByPackageHash` + - variant discriminator of value `2` + - field `addr` which is a 32 bytes hash digest with serialization index `1` + - field `version` of type `Option` ([option](./primitives.md#option-clvalue-option) of 4 bytes unsigned [number](./primitives.md#numeric-clvalue-numeric)) with serialization index `2` +- in variant `ByPackageName` + - variant discriminator of value `3` + - field `name` of type `String` with serialization index `1` + - field `version` of type `Option` ([option](./primitives.md#option-clvalue-option) of 4 bytes unsigned [number](./primitives.md#numeric-clvalue-numeric)) with serialization index `2` + +#### TransactionRuntimeParams + +`TransactionRuntimeParams` (serialized using calltable scheme) consists of: + +- in variant `VmCasperV1`: + - variant discriminator of value `0` +- in variant `VmCasperV2`: + - variant discriminator of value `1` + - field `transferred_value` of type `u64` (8 bytes unsigned [number](./primitives.md#numeric-clvalue-numeric)) with serialization index `1` + - field `seed` of type `Option<[u8; 32]>` ([option](./primitives.md#option-clvalue-option) of 32 bytes [Byte array](./primitives.md#bytearray-clvalue-bytearray)) with serialization index `2` + +#### TransactionEntryPoint + +`TransactionEntryPoint` (serialized using calltable scheme) consists of: + +- in variant `Call`: + - variant discriminator of value `0` +- in variant `Custom`: + - variant discriminator of value `1` + - `String` with serialization index `1` +- in variant `Transfer`: + - variant discriminator of value `2` +- in variant `AddBid`: + - variant discriminator of value `3` +- in variant `WithdrawBid`: + - variant discriminator of value `4` +- in variant `Delegate`: + - variant discriminator of value `5` +- in variant `Undelegate`: + - variant discriminator of value `6` +- in variant `Redelegate`: + - variant discriminator of value `7` +- in variant `ActivateBid`: + - variant discriminator of value `8` +- in variant `ChangeBidPublicKey` + - variant discriminator of value `9` +- in variant `AddReservations`: + - variant discriminator of value `10` +- in variant `CancelReservations`: + - variant discriminator of value `11` +- in variant `Burn`: + - variant discriminator of value `12` + +#### TransactionScheduling + +`TransactionScheduling` (serialized using calltable scheme) consists of: + +- in variant `Standard`: + - variant discriminator of value `0` diff --git a/versioned_docs/version-2.0.0/concepts/serialization/types.md b/versioned_docs/version-2.0.0/concepts/serialization/types.md index a833cfd46..10e00c7ca 100644 --- a/versioned_docs/version-2.0.0/concepts/serialization/types.md +++ b/versioned_docs/version-2.0.0/concepts/serialization/types.md @@ -313,7 +313,7 @@ The type of `Package`, serialized as a `u8` [`EntityKindTag`](#entity-kind-tag) - `Account`: A package associated with an Account hash, serialized as a `u8` of 1 followed by an [`account_hash`](#account-hash). -- `SmartContract`: A package associated with Wasm stored on chain, serialized as a `u8` of 2 followed by a [`transaction_runtime`](./structures.md#transactionruntime). +- `SmartContract`: A package associated with Wasm stored on chain, serialized as a `u8` of 2 followed by a [`contract runtime tag`](./types.md#contractruntimetag-contract-runtime-tag). ## EntityKindTag {#entity-kind-tag} @@ -489,10 +489,6 @@ A (labeled) "user group". Each method of a versioned contract may be associated They are serialized as a `BTreeMap` where the first 4 bytes represent a `u32` value describing the number of user groups and `BTreeSets` of [`URef`](./primitives.md#clvalue-uref)s held within. The remainder consists of a repeating pattern of serialized user groups and `BTreeSets` of the length dictated by the first four bytes. -## InitiatorAddr {#initiatoraddr} - -The address of the initiator of a [`TransactionV1`](./structures.md#transactionV1), which serializes as a `u8` of `0` followed by a [`PublicKey`](#publickey) or a `1` followed by an [`AccountHash`](#account-hash). - ## Keys {#serialization-standard-state-keys} A _key_ in [Global State](../design/casper-design.md) is one of the following data types: @@ -690,23 +686,6 @@ The lock status of the package, serialized as a [`boolean`](./primitives.md#clva Parameter to a method, structured as a name followed by a `CLType`. It is serialized as a [`String`](./primitives.md#clvalue-string) followed by a [`CLType`](./primitives.md#clvalue-cltype). -## PricingMode {#pricingmode} - -The pricing mode of a transaction, with two possible variants. It serializes as a `u8` tag followed by additional data based on the following table: - -| Tag | PricingMode| Description | -| --- | ---------- | ----------- | -| 0 | Classic | The original payment model, in which the creator of a transaction specifies how much they will pay and at which gas price. | -| 1 | Fixed | The cost of the transaction is determined by the cost table, per the transaction kind. | - -### Classic {#pricingmode-classic} - -After the `0` tag, a `Classic` `PricingMode` serializes as the [`u64`](./primitives.md#clvalue-numeric) `payment_amount` followed by the `u64` value of the `gas_price`. - -### Fixed {#pricingmode-fixed} - -After the `1` tag, a `Fixed` `PricingMode` serializes as the [`u64`](./primitives.md#clvalue-numeric) `gas_price_tolerance`. - ## ProtocolVersion {#protocolversion} A newtype indicating the Casper Platform protocol version. It is serialized as three [`u32`](./primitives.md#clvalue-numeric) values indicating major, minor and patch versions in that order. diff --git a/versioned_docs/version-2.0.0/developers/json-rpc/types_chain.md b/versioned_docs/version-2.0.0/developers/json-rpc/types_chain.md index eb9654203..e9156a97c 100644 --- a/versioned_docs/version-2.0.0/developers/json-rpc/types_chain.md +++ b/versioned_docs/version-2.0.0/developers/json-rpc/types_chain.md @@ -723,7 +723,7 @@ One of: * [`Account`](#accounthash) Package associated with an Account hash. -* [`SmartContract`](#transactionruntime) Packages associated with Wasm stored on chain. +* [`SmartContract`](#transactionruntimetag) Packages associated with Wasm stored on chain. ## EntityOrAccount @@ -1544,7 +1544,7 @@ One of: * `version` The package version. If `None`, the latest enabled version is implied. -## TransactionRuntime +## TransactionRuntimeTag Runtime used to execute a transaction. diff --git a/versioned_docs/version-2.0.0/developers/monitor-and-consume-events.md b/versioned_docs/version-2.0.0/developers/monitor-and-consume-events.md index fee68aebe..07e5d50fd 100644 --- a/versioned_docs/version-2.0.0/developers/monitor-and-consume-events.md +++ b/versioned_docs/version-2.0.0/developers/monitor-and-consume-events.md @@ -387,7 +387,7 @@ A `TransactionProcessed` event is emitted when a given Deploy has been executed. ``` - [transaction_hash](../concepts/serialization/structures.md#transaction-hash) - The cryptographic hash of a Deploy. -- [initiator_addr](../concepts/serialization/types.md#initiatoraddr) - Representation of the address that initiated this transaction. +- [initiator_addr](../concepts/serialization/transaction.md#initiatoraddr) - Representation of the address that initiated this transaction. - [timestamp](../concepts/serialization/types.md#timestamp) - A timestamp type representing a concrete moment in time. - [block_hash](../concepts/serialization/structures.md#block-hash) - A cryptographic hash identifying a Block. - [execution_result](../concepts/serialization/types.md#execution-result) - The execution status of the transaction. It is a polymorphic type that can be either `Deploy` or `Version1`. From c91d59f4b7d0a0283eacdf4d2cd676a3e9c5f489 Mon Sep 17 00:00:00 2001 From: Devendran Date: Mon, 5 May 2025 18:51:56 +0530 Subject: [PATCH 35/97] Update navbar for sse and cltypes --- config/sidebar.config.js | 1 + docs/developers/json-rpc/types_chain.md | 2 +- docs/developers/monitor-and-consume-events.md | 586 ++++++++++++++++++ .../version-2.0.0-sidebars.json | 1 + 4 files changed, 589 insertions(+), 1 deletion(-) create mode 100644 docs/developers/monitor-and-consume-events.md diff --git a/config/sidebar.config.js b/config/sidebar.config.js index adf58c0d6..ad8343dd8 100644 --- a/config/sidebar.config.js +++ b/config/sidebar.config.js @@ -113,6 +113,7 @@ module.exports = { "developers/index", "developers/prerequisites", "developers/essential-crates", + "developers/monitor-and-consume-events", { type: "category", label: "Writing On-Chain Code", diff --git a/docs/developers/json-rpc/types_chain.md b/docs/developers/json-rpc/types_chain.md index 90c229b9c..eb9654203 100644 --- a/docs/developers/json-rpc/types_chain.md +++ b/docs/developers/json-rpc/types_chain.md @@ -423,7 +423,7 @@ Required Parameters: ## ByteCodeHash -The hex-encoded address of a smart contract [`AddressableEntity`](#addressableentity). +A type wrapping a `HashAddr` which is the raw bytes of the ByteCodeHash. Serializes as `HashAddr` ## ByteCodeKind diff --git a/docs/developers/monitor-and-consume-events.md b/docs/developers/monitor-and-consume-events.md new file mode 100644 index 000000000..fee68aebe --- /dev/null +++ b/docs/developers/monitor-and-consume-events.md @@ -0,0 +1,586 @@ +import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; + +# Monitoring and Consuming Events + +The Casper platform uses event streaming to signal state changes in smart contracts and nodes. Using Casper's client-side SDKs, dApps actively listening for emitted events can consume these events and perform actions based on event data. + +Each Casper node streams events through the SSE (Server Sent Event) server via the port specified as the `event_stream_server.address` in the node's _config.toml_. This port is by default `9999` for nodes on [Testnet](https://testnet.cspr.live/tools/peers) and [Mainnet](https://cspr.live/tools/peers). + +Events in `2.0` are all emitted via the firehose `http://:/events` endpoint. Bear in mind that a node is not obligated to have the sse server turned on to operate in the network. + +:::note + +An `ApiVersion` event is always emitted when a new client connects to a node's SSE server, informing the client of the node's software version. + +::: + +## Listening to the Event Stream + +Applications can listen for such events for a specific account during a particular era, containing certain data. Then, they can parse the data and discard what they do not need. To consume the event stream, you need to set up an event listener in your dApp. Here are example code snippets doing that: + + + + + +```javascript +import { SseClient, EventName } from "casper-js-sdk"; + +const sseClient = new SseClient("http://:9999/events"); + +sseClient.subscribe(EventName.BlockAddedEventType, (rawEvent) => { + try { + const parsedEvent = rawEvent.parseAsBlockAddedEvent(); + console.log(`Block hash: ${parsedEvent.BlockAdded.blockHash}`); + } catch (error) { + console.error("Error processing event:", error); + } +}); + +// Start the client with the last known event ID ( Optional ) +const lastEventID = 1234; + +sseClient.start(lastEventID); +``` + +For more in-depth explanation of features of the SSE client of js-sdk, plese refer to it's (repository and documentation)[https://github.com/casper-ecosystem/casper-js-sdk/blob/dev/src/sse/README.md]. + + + + +```bash +curl -s http://NODE_ADDRESS:9999/events/CHANNEL +``` + + + + + +You can find node addresses of active online peers to replace `NODE_ADDRESS`, by navigating to [cspr.live](https://cspr.live/tools/peers) for Mainnet and [testnet.cspr.live](https://testnet.cspr.live/tools/peers) for Testnet. + +You will find a list with all the possible event types below. + +## Event Types + +### ApiVersion + +The `ApiVersion` event is always the first event emitted when a new client connects to a node's SSE server. It specifies the protocol version of a node on the Casper platform. The following example contains the JSON representation of the `ApiVersion` event structure. + +```bash +data:{"ApiVersion":"2.0.0"} +``` + +### BlockAdded + +A `BlockAdded` event is emitted when a new block is added to the blockchain and stored locally in the node. The `BlockAdded` can be in either a `Version1` (1.x compliant) or `Version2` (2.x compliant) variants. + +
+Expand to see example of a Version1 BlockAdded + +```json +{ + "BlockAdded": { + "block_hash": "9571b9b27dacbed06e048cb656829128e4cab06a45ffe84a5ffff88f919f99b1", + "block": { + "Version1": { + "hash": "4fb7be0031f4dc0d107061065c603d79d3691c37f769e9e3285c73357ae952fa", + "header": { + "parent_hash": "50fdb9b02e429283ef1ff94c5317185a081eaf56a163f4de0f581eefe999e7b7", + "state_root_hash": "ec741f31e84de97db9a1f8d3ed1c48f5448656970a59f9b2267430124ab93fb1", + "body_hash": "7a38b4cf9fb5b1ad88724e67a16ae92fc1b76f8647b8aab0585c683ba3008a2f", + "random_bit": true, + "accumulated_seed": "f6167f91fe62d37fb601cb17dd7ec822f49a31c3da10ff8def194a8d118c4389", + "era_end": null, + "timestamp": "2025-04-28T10:12:51.985Z", + "era_id": 100, + "height": 555, + "protocol_version": "2.0.0" + }, + "body": { + "proposer": "02027ee0d7fdab27eeab089f292d64d78af865c8e79800f9b376e6ce68a3d5f41f5f", + "deploy_hashes": [ + "040dd42480760133c25ca33b394395c115090f40577c4792cc3c58c5c7c812fb", + "3f9f0f42b4e548693598e7b0ecd969ae7851087c66e6c9733161ad137d75fddf", + "8dadb644ca8d6e5678a619c14c7994b832a2d5cfbc222f0ddae6f18ccc61f3f6" + ], + "transfer_hashes": [] + } + } + } + } +} +``` + +- [block_hash](../concepts/serialization/structures.md#block-hash) - The cryptographic hash that identifies a block. +- [block](../concepts/serialization/structures.md#serialization-standard-block) - The JSON representation of the block. + +
+ +
+Expand to see example of a Version2 BlockAdded + +```json +{ + "BlockAdded": { + "block_hash": "290eb1ecd5c4e8bda94dae647fb9c21aeb531fe817467abb60f7c12be6a672eb", + "block": { + "Version2": { + "hash": "290eb1ecd5c4e8bda94dae647fb9c21aeb531fe817467abb60f7c12be6a672eb", + "header": { + "parent_hash": "3236c683ec5f220c1936a25a0be96b976cfbe784f06d2319933b432f2a1fe1eb", + "state_root_hash": "89ba71746096011be36cda29fdf1d1bd8067af51a0ea7eaf65e90666a35bcbf6", + "body_hash": "11b6c10321aea27c2fc4d292f570a93b32488759c16cf9ee22e747c35c3873fc", + "random_bit": true, + "accumulated_seed": "e376199ca38015a57760e9431fc6723e9500ab3f18c93a26830b5b4ccc9f6a29", + "era_end": null, + "timestamp": "2025-04-28T10:12:52.090Z", + "era_id": 246749, + "height": 2467498, + "protocol_version": "1.0.0", + "proposer": "0203c5ecdb1ad56b65cbc7dbbf99ea492e7566a6b2259191f9ab604c58b19d2a01f3", + "current_gas_price": 1, + "last_switch_block_hash": "0808080808080808080808080808080808080808080808080808080808080808" + }, + "body": { + "transactions": { + "0": [], + "1": [ + { + "Version1": "1f3b12822cfa6ef26d8f1e369ffbab37fa0e963385d124db5ab09ba22d2ec452" + }, + { + "Version1": "a13c6a737a926562a02e88f62bf84c3811f2fe20bcc6a9b1454802640dfc730d" + } + ], + "2": [], + "3": [ + { + "Deploy": "5825b4fcdb6e180bd80f83d743910b16e6217dd4e74d1147ac0eb656214ab5d4" + }, + { + "Deploy": "e83a459beef99015de50e3c33ba0acbe658aea8f0b72f0f55599889dc3025b68" + } + ], + "4": [], + "5": [] + }, + "rewarded_signatures": [] + } + } + } + } +} +``` + +- [block_hash](../concepts/serialization/structures.md#block-hash) - The cryptographic hash that identifies a block. +- [block](../concepts/serialization/structures.md#serialization-standard-block) - The JSON representation of the block. + +
+ +### TransactionAccepted + +`TransactionAccepted` events are emitted when a node on the network receives a transaction. This event will be produced in both cases - if a transaction is of variant Deploy and TransactionV1. + +
+Expand to view example of Transaction::Version1 + +```json +{ + "TransactionAccepted": { + "Version1": { + "hash": "942785a412289a5aaffdb01d58ee91478bb0cc6b68646519531f4e859ed80566", + "payload": { + "initiator_addr": { + "PublicKey": "02020707086bf373174af44dd96ff43cf73ee4ed01d5a563c97926d880acfda55476" + }, + "timestamp": "2020-08-07T01:30:31.750Z", + "ttl": "1h 56m 52s 389ms", + "chain_name": "xyz", + "pricing_mode": { + "Fixed": { + "additional_computation_factor": 0, + "gas_price_tolerance": 5 + } + }, + "fields": { + "args": { + "Named": [ + [ + "delegator", + { + "cl_type": "PublicKey", + "bytes": "01714f5b526d0ce966b0c7d7a6a7eda7fb5b8b10e8b0b18cfe085e8fe7abc0ab66", + "parsed": "01714f5b526d0ce966b0c7d7a6a7eda7fb5b8b10e8b0b18cfe085e8fe7abc0ab66" + } + ], + [ + "validator", + { + "cl_type": "PublicKey", + "bytes": "01fb60a66cdb914e7448b48213d247edacadc1b17cb2180fbc432460f2fcce497f", + "parsed": "01fb60a66cdb914e7448b48213d247edacadc1b17cb2180fbc432460f2fcce497f" + } + ], + [ + "amount", + { + "cl_type": "U512", + "bytes": "088063df0de89d7c06", + "parsed": "467422081330406272" + } + ] + ] + }, + "entry_point": "Undelegate", + "scheduling": "Standard", + "target": "Native" + } + }, + "approvals": [ + { + "signer": "02020707086bf373174af44dd96ff43cf73ee4ed01d5a563c97926d880acfda55476", + "signature": "02b049620953b7f2b828d8e435d37608e7b4dfe203056016a66228b0ffd933d1861dcbeeceab8cfc457a381ce4763734bf3cd1ecb912033a3c340c657d436ebe50" + } + ] + } + } +} +``` + +- [Version1.hash](../concepts/serialization/hash-types.md) - The blake2b hash of the Transaction. +- [Version1.payload](../concepts/serialization/serialization-standard.md#serialization-standard-account) - Internal data of the Version1 Transaction. +- [Version1.approvals](../concepts/serialization/types_chain.md#approval) - The signer's hexadecimal-encoded public key and signature. + +
+ +
+Expand to view example of Transaction::Deploy + +```json +{ + "TransactionAccepted": { + "Deploy": { + "hash": "916ab2344cdf29581221d9ff6b9947b683f955b4687455cd8a0f6f63d33b36f6", + "header": { + "account": "01800075cc557e3270b686784b2ea3a45bf6e6a7f88f9cc3d17a9c60c96ff16dbd", + "timestamp": "2020-08-07T01:20:22.509Z", + "ttl": "4m 12s", + "gas_price": 22, + "body_hash": "bc45450393b656a1fb3ee570f0345116dbc5ff1c18a9825955d2387cf62142b5", + "dependencies": [], + "chain_name": "casper-example" + }, + "payment": { + "StoredContractByName": { + "name": "casper-example", + "entry_point": "example-entry-point", + "args": [ + [ + "amount", + { + "cl_type": "U512", + "bytes": "0400f90295", + "parsed": "2500000000" + } + ] + ] + } + }, + "session": { + "ModuleBytes": { + "module_bytes": "6f49f3fc98c1514dd815ddef8ef20de772e72a3f523f562b8b47369e1d5cb4462f7644f8dab833228262b7ce4cbf42554edf98a0e4cc24aa1e77cd76506b922c7d281ffd0769f18e29e0080972b7036468463dde97cf73c11e3f86aa924fbe", + "args": [ + [ + "l2w4NZKZvxezK52Xb3I6", + { + "cl_type": { "List": "U8" }, + "bytes": "05000000f72c275005", + "parsed": [247, 44, 39, 80, 5] + } + ] + ] + } + }, + "approvals": [ + { + "signer": "01800075cc557e3270b686784b2ea3a45bf6e6a7f88f9cc3d17a9c60c96ff16dbd", + "signature": "016a1ae5c57d233baec536920a9c4dcf712f32456d07b3a5e669f624ffdd2281e9438780a73fca2fed154e9028b2d9fae118298457d03b232250a3cdbd71625603" + } + ] + } + } +} +``` + +- [Deploy.hash](../concepts/serialization/structures.md#deploy-hash) - The blake2b hash of the Deploy. +- [Deploy.body_hash](../concepts/serialization/hash-types.md) - The blake2b hash of the Deploy body. +- [Deploy.session](./developers/writing-onchain-code/contract-hash-vs-package-hash.md#what-is-session-code) - The session logic defining the Deploy's functionality. +- [Deploy.approvals](../json-rpc/types_chain.md#approval) - The signer's hexadecimal-encoded public key and signature. + +
+ +For details on custom serializations, check the [Serialization Standard](../../concepts/serialization-standard.md). Also, the [Types](../json-rpc/types_chain.md) page defines the terms used in the event stream output. + +### TransactionProcessed + +A `TransactionProcessed` event is emitted when a given Deploy has been executed. + +
+Expand to view output + +```json +{ + "TransactionProcessed": { + "transaction_hash": { + "Version1": "25329c14a4f9307830f2b4b6b529b0c3fd618dec65af7456ad9f9e2c7ba1ff4a" + }, + "initiator_addr": { + "PublicKey": "02024e2b994a52bcf4c0cc112512c4be04853c4e824203a8e627c107a8d595707801" + }, + "timestamp": "2020-08-07T01:30:33.119Z", + "ttl": "54m 11s 767ms", + "block_hash": "315210f005e7d2d7130004f0178c29cf7e4718d8b642f3f832a35a028ed094cf", + "execution_result": { + "Version1": { + "Success": { + "effect": { + "operations": [], + "transforms": [ + { + "key": "12730438218135504636", + "transform": { + "AddUInt256": "16420226327505839383" + } + }, + { + "key": "10696215255214620472", + "transform": { + "AddUInt256": "14018730981435988852" + } + }, + { + "key": "15638241704090226222", + "transform": { + "AddUInt256": "2486508393436959391" + } + } + ] + }, + "transfers": [], + "cost": "2379796918402242989" + } + } + }, + "messages": [ + { + "entity_addr": "entity-contract-a8648307789543cbf38afb24c970844e755654d462a25624edd775219d0cdacf", + "message": { + "String": "Sax8BEJtXE6vRPXMqOruOhyDxar7N70OeiyPVtfYqiOVNzvHThJwennWwoOs3HHd" + }, + "topic_name": "PTgw4HZ6CPRhYmSSBbXsI0rnMOcQXgrr", + "topic_name_hash": "54a3c9afacf3d475ed69af9de5d4f5496798af12d914aa7f5f8b5cec9935096f", + "topic_index": 4003932854, + "block_index": 2261021254199878090 + } + ] + } +} +``` + +- [transaction_hash](../concepts/serialization/structures.md#transaction-hash) - The cryptographic hash of a Deploy. +- [initiator_addr](../concepts/serialization/types.md#initiatoraddr) - Representation of the address that initiated this transaction. +- [timestamp](../concepts/serialization/types.md#timestamp) - A timestamp type representing a concrete moment in time. +- [block_hash](../concepts/serialization/structures.md#block-hash) - A cryptographic hash identifying a Block. +- [execution_result](../concepts/serialization/types.md#execution-result) - The execution status of the transaction. It is a polymorphic type that can be either `Deploy` or `Version1`. + +
+ +### TransactionExpired + +A `TransactionExpired` event is emitted when the Deploy is no longer valid for processing or being added to a block due to its time to live (TTL) having expired. + +
+Expand to view output + +```json +{ + "TransactionExpired": { + "transaction_hash": { + "Version1": "fa1bf753a9b361316531f691db06e0798e4cb29e70724e2c7bf8619b8066be8c" + } + } +} +``` + +- [transaction_hash](../concepts/serialization/types.md#transactionhash) - The cryptographic hash of a Transaction. + +
+ +### Fault + +The `Fault` event is emitted if there is a validator error. + +
+Expand the below section to view the Fault event details: + +```json +{ + "Fault": { + "era_id": 4591448806312642600, + "public_key": "013da85eb06279da42e28530e1116be04bfd2aa25ed8d63401ebff4d9153a609a9", + "timestamp": "2023-01-01T01:26:58.364Z" + } +} +``` + +- [era_id](../concepts/serialization/types.md#eraid) - A period of time during which the validator set does not change. +- [public_key](../concepts/serialization/types.md#publickey) - The hexadecimal-encoded public key of the validator that caused the fault. +- [timestamp](../concepts/serialization/types.md#timestamp) - A timestamp representing the moment the validator faulted. + +
+ +### FinalitySignature + +This event indicates validators have signed the final approvals and further alterations to the block will not be allowed. Refer to the [consensus reached](../concepts/transactions-and-transaction-lifecycle.md#consensus-reached) and [block finality](../concepts/glossary/B.md#block-finality) sections to learn more about finality signatures. The body of `FinalitySignature` is polymorphic - it will either hold `V1` or `V2` field. The content of `V1` is to support compatibility with the payload of 1.x node `FinalitySignature` event + +
+Expand to view example of FinalitySignature::V1 + +```json +{ + "FinalitySignature": { + "V1": { + "block_hash": "92be2255d4d47cc236b037b761ee1d2a92b94c5bbac12e43982b1a8736dad97a", + "era_id": 878101, + "signature": "02f9c63d28dc1ffb6555de629358d9e784e73f612a7a78bc918b2e7a5e0a67b195162d6606f01069aa2f23e1198268b15e483b0b63a29746f56205d977a0aedf26", + "public_key": "020355c10a87a7fa97ca0b9b4dad262d8eed977a25e2c4a9dcb85bd954476b496d6f" + } + } +} +``` + +- [block_hash](../concepts/serialization/structures.md#block-hash) - A cryptographic hash identifying a Block. +- [era_id](../concepts/serialization/types.md#eraid) - A period of time during which the validator set does not change. +- [signature](../concepts/serialization/types.md#signature) - Serialized bytes representing the validator's signature. +- [public_key](../concepts/serialization/types.md#publickey) - The hexadecimal-encoded public key of the validator. + +
+ +
+Expand to view example of FinalitySignature::V2 + +```json +{ + "FinalitySignature": { + "V2": { + "block_hash": "75420adf11cc23a52fd45a9a843cce770ce0e7056dd37943584625d97cdac31c", + "block_height": 15850176021194416983, + "era_id": 724437, + "chain_name_hash": "63803374d60b19e25baa34d306a74c19fc09866df48d9dd5a4e645b7cb26026c", + "signature": "015b88427cffd2d7d58833d09378323d65dec72e2e0a8a9c53991024c53a0bebfe836bcf233f4233bcf63f22f3025b68efb2b00226700bc5d49293cce3a98edc00", + "public_key": "01a792c3e2db14a130676d2498f70acf15e33aa22945d9b300f3f35021acaeb3cf" + } + } +} +``` + +- [block_hash](../concepts/serialization/structures.md#block-hash) - A cryptographic hash identifying a Block. +- [block_height](../concepts/serialization/primitives.md#clvalue-numeric) - A cryptographic hash identifying a Block. +- [era_id](../concepts/serialization/types.md#eraid) - A period of time during which the validator set does not change. +- [signature](../concepts/serialization/types.md#signature) - Serialized bytes representing the validator's signature. +- [public_key](../concepts/serialization/types.md#publickey) - The hexadecimal-encoded public key of the validator. + +
+ +### Step + +The `Step` event is emitted at the end of every era and contains the execution effects produced by running the auction contract's `step` function. + +
+Expand to view output: + +```json +{ + "Step": { + "era_id": 1245, + "execution_effects": [ + { + "key": "account-hash-0909090909090909090909090909090909090909090909090909090909090909", + "kind": "Identity" + }, + { + "key": "withdraw-0909090909090909090909090909090909090909090909090909090909090909", + "kind": { + "AddInt32": 543 + } + } + ] + } +} +``` + +- [era_id](../concepts/serialization/types.md#eraid) - A period of time during which the validator set does not change. +- [execution_effect](../concepts/serialization/types.md#effects) - The journal of execution effects. + +
+ +### Shutdown + +The `Shutdown` event is emitted when the node is about to shut down, usually for an upgrade, causing a termination of the event stream. + +
+Expand the below section to view the Shutdown event details: + +```bash +"Shutdown" +``` + +- Shutdown - The "Shutdown" text notifies the event listener that a shutdown will occur. + +
+ +## Replaying the Event Stream + +This command will replay the event stream from an old event onward. Replace the `NODE_ADDRESS`, `CHANNEL`, and `ID` fields with the values of your scenario. + + + + + +```bash +curl -sN http://NODE_ADDRESS:9999/events/CHANNEL?start_from=ID +``` + +_Example:_ + +```bash +curl -sN http://65.21.235.219:9999/events/main?start_from=29267508 +``` + + + + + +Each URL can have a query string added to the form `?start_from=ID`, where ID is an integer representing an old event ID. With this query, you can replay the event stream from that old event onward. If you specify an event ID already purged from the cache, the server will replay all the cached events. + +:::note + +The server keeps only a limited number of events cached to allow replaying the stream to clients using the `?start_from=` query string. The cache size can be set differently on each node using the `event_stream_buffer_length` value in the _config.toml_. By default, it is only 5000. +The intended use case is to allow a client consuming the event stream that loses its connection to reconnect and catch up with events that were emitted while it was disconnected. + +::: + +## 1.5 vs 2.x compatibility note + +The SSE events serve went through significant, backwards incompatible changes. Here are the most important ones of them that need to be taken into consideration: + +1. 2.0 SSE supports the firehose `/events` endpoint which channels all the beforementioned events. +1. `DeployAccepted`, `DeployProcessed`, `DeployExpired` +1. `BlockAdded` has a 1.5 incompatible structure +1. `TransactionAccepted` is an event analogous to `DeployAccepted`, but there is no backwards-compatibility guarantee - their structure differs. +1. `TransactionProcessed` is an event analogous to `DeployProcessed`, but there is no backwards-compatibility guarantee - their structure differs. +1. `TransactionExpired` is an event analogous to `DeployExpired`, but there is no backwards-compatibility guarantee - their structure differs. +1. `FinalitySignature` has a 1.5 incompatible structure. + +## Sidecar and SSE events + +The Sidecar App offers some benefits and extensions to how the SSE of the node itself works. For instance it allows to store events to drive and query them with a separate REST API. It also allows the nodes SSE endpoint to be not-public since Sidecar has the ability to republish SSE events. For details on how it works please consult (Sidecar documentation)[https://github.com/casper-network/casper-sidecar/blob/dev/README.md] diff --git a/versioned_sidebars/version-2.0.0-sidebars.json b/versioned_sidebars/version-2.0.0-sidebars.json index 438f37623..bed394bbd 100644 --- a/versioned_sidebars/version-2.0.0-sidebars.json +++ b/versioned_sidebars/version-2.0.0-sidebars.json @@ -121,6 +121,7 @@ "developers/index", "developers/prerequisites", "developers/essential-crates", + "developers/monitor-and-consume-events", { "type": "category", "label": "Writing On-Chain Code", From c450597fe18693dafec73e86dd36552e35230e8f Mon Sep 17 00:00:00 2001 From: Devendran Date: Tue, 6 May 2025 00:34:19 +0530 Subject: [PATCH 36/97] Fix Muhammets review comments --- condor/block-lanes.md | 10 +++++----- docs/concepts/economics/gas-concepts.md | 2 +- docs/concepts/economics/runtime.md | 4 ++-- src/pages/condor/block-lanes.md | 10 +++++----- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/condor/block-lanes.md b/condor/block-lanes.md index ba32224ff..f36e43524 100644 --- a/condor/block-lanes.md +++ b/condor/block-lanes.md @@ -8,7 +8,7 @@ tags: [v2] hide_table_of_contents: false --- -In Casper 2.0 as part of the changes to the block structure, the body of the block now contains several distinct lanes which contain different transaction variants. Each lane has five properties they are the following: +In Casper 2.0 as part of the changes to the block structure, the body of the block now contains several distinct lanes which contain different transaction variants. Each lane has the following five properties: An identifier for the lane represented as number, this identifier is simply a label. However, the system does reserve the 0 and 1 lane identifiers for native mint and auction interactions respectively. 1. Max serialized length of the entire transaction in bytes for a given transaction in a certain lane @@ -16,9 +16,9 @@ An identifier for the lane represented as number, this identifier is simply a la 3. Transaction gas limit for a given transaction in a certain lane 4. The maximum number of transactions the lane can contain -In 2.0, there are three distinct systemic lanes, i.e lanes which must be present and defined. These required lanes are for native transactions e.g. native transfer and native add-bid , and the installation and upgrading of stored wasm. In addition to these three lanes, a Casper network can be setup with a range of user defined lanes for Wasm transactions. The number of user defined lanes is specific to a given network and is defined in the chainspec for that given network. +In 2.0, there are three distinct systemic lanes - lanes that must be present and defined. These required lanes are for native transactions (e.g., native transfer and native add-bid), and for the installation and upgrading of stored Wasm. In addition to these three lanes, a Casper network can be set up with a range of user-defined lanes for Wasm transactions. The number of user defined lanes is specific to a given network and is defined in the chainspec for that given network. -Assignment of a given transaction is determined by comparing a given transactions properties against a certain lane. If any of the transactions properties exceed the lane's specified limit, that transaction is deemed ineligible to be part of that lane. It should be noted, during lane determination, the gas limit is determined based on the pricing mode +The assignment of a given transaction is determined by comparing the transaction's properties against those of a specific lane. If any of the transaction's properties exceed the lane's specified limits, the transaction is deemed ineligible to be part of that lane. It should be noted that during lane determination, the gas limit is determined based on the pricing mode. -In payment limited mode the gas limit for the given transaction is determined by the payment amount as specified by the user. -In fixed mode, the lane determination will first estimate the lane based on the size of the transaction as represented in bytes and the additional computational factor as specified by the user. \ No newline at end of file +In payment-limited mode, the gas limit for a given transaction is determined by the payment amount as specified by the user. +In fixed mode, lane determination first estimates the lane based on the size of the transaction, measured in bytes, and the additional computational factor as specified by the user. \ No newline at end of file diff --git a/docs/concepts/economics/gas-concepts.md b/docs/concepts/economics/gas-concepts.md index 3383662ba..5132c4b0a 100644 --- a/docs/concepts/economics/gas-concepts.md +++ b/docs/concepts/economics/gas-concepts.md @@ -10,7 +10,7 @@ title: Gas Cost Gas is a conceptual measure of resources used while executing transactions on the blockchain. Gas cost is the amount of gas consumed during the processing cycles that execute a transaction on the network. It correlates directly with the amount of computer processing a validator needs to provide to execute a transaction. -Gas fees are consumed on the network irrespective of whether a transaction was successful or not. Even when a transaction fails, the network measures [computational work as gas](../design/casper-design.md#measuring-computational-work-execution-semantics-gas) because it consumes resources and space on the block as the validator attempts to execute it. Depending on how the network was configured, the transaction fee may or may not be refunded, or a hold may placed on the paying purse. +Gas fees are consumed on the network irrespective of whether a transaction was successful or not. Even when a transaction fails, the network measures [computational work as gas](../design/casper-design.md#measuring-computational-work-execution-semantics-gas) because it consumes resources and space on the block as the validator attempts to execute it. Depending on how the network was configured, the transaction fee may or may not be refunded, or a hold may be placed on the paying purse. ## How is gas cost determined? diff --git a/docs/concepts/economics/runtime.md b/docs/concepts/economics/runtime.md index 67cdb3f76..11437450a 100644 --- a/docs/concepts/economics/runtime.md +++ b/docs/concepts/economics/runtime.md @@ -47,11 +47,11 @@ There are several platform parameters that delineate the sets of transactions th - Individual transaction size limits are also enforced. The lane configuration settings for the Casper 2.0 release on Mainnet is available in the `[transactions.v1]` section of the [chainspec.toml](https://github.com/casper-network/casper-protocol-release/blob/casper/config/chainspec.toml#L202). - + The block gas and size limits for the Casper 2.0 release on Mainnet is available in the `[transactions]` section of the [chainspec.toml](https://github.com/casper-network/casper-protocol-release/blob/casper/config/chainspec.toml#L183). - + ## Dynamic Gas Pricing diff --git a/src/pages/condor/block-lanes.md b/src/pages/condor/block-lanes.md index ba32224ff..b9717b192 100644 --- a/src/pages/condor/block-lanes.md +++ b/src/pages/condor/block-lanes.md @@ -8,7 +8,7 @@ tags: [v2] hide_table_of_contents: false --- -In Casper 2.0 as part of the changes to the block structure, the body of the block now contains several distinct lanes which contain different transaction variants. Each lane has five properties they are the following: +In Casper 2.0 as part of the changes to the block structure, the body of the block now contains several distinct lanes which contain different transaction variants. Each lane has the following five properties: An identifier for the lane represented as number, this identifier is simply a label. However, the system does reserve the 0 and 1 lane identifiers for native mint and auction interactions respectively. 1. Max serialized length of the entire transaction in bytes for a given transaction in a certain lane @@ -16,9 +16,9 @@ An identifier for the lane represented as number, this identifier is simply a la 3. Transaction gas limit for a given transaction in a certain lane 4. The maximum number of transactions the lane can contain -In 2.0, there are three distinct systemic lanes, i.e lanes which must be present and defined. These required lanes are for native transactions e.g. native transfer and native add-bid , and the installation and upgrading of stored wasm. In addition to these three lanes, a Casper network can be setup with a range of user defined lanes for Wasm transactions. The number of user defined lanes is specific to a given network and is defined in the chainspec for that given network. +In 2.0, there are three distinct systemic lanes - lanes that must be present and defined. These required lanes are for native transactions (e.g., native transfer and native add-bid), and for the installation and upgrading of stored Wasm. In addition to these three lanes, a Casper network can be set up with a range of user-defined lanes for Wasm transactions. The number of user-defined lanes is specific to a given network and is defined in the chainspec for that given network. -Assignment of a given transaction is determined by comparing a given transactions properties against a certain lane. If any of the transactions properties exceed the lane's specified limit, that transaction is deemed ineligible to be part of that lane. It should be noted, during lane determination, the gas limit is determined based on the pricing mode +The assignment of a given transaction is determined by comparing the transaction's properties against those of a specific lane. If any of the transaction's properties exceed the lane's specified limits, the transaction is deemed ineligible to be part of that lane. It should be noted that during lane determination, the gas limit is determined based on the pricing mode. -In payment limited mode the gas limit for the given transaction is determined by the payment amount as specified by the user. -In fixed mode, the lane determination will first estimate the lane based on the size of the transaction as represented in bytes and the additional computational factor as specified by the user. \ No newline at end of file +In payment-limited mode, the gas limit for a given transaction is determined by the payment amount as specified by the user. +In fixed mode, lane determination first estimates the lane based on the size of the transaction, measured in bytes, and the additional computational factor as specified by the user. \ No newline at end of file From 002c775fd2e14349a33fba5e4103219b510fd51e Mon Sep 17 00:00:00 2001 From: Devendran Date: Tue, 6 May 2025 00:54:33 +0530 Subject: [PATCH 37/97] Remove fee-elimination from sidebar --- config/sidebar.config.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/config/sidebar.config.js b/config/sidebar.config.js index ad8343dd8..1944fd217 100644 --- a/config/sidebar.config.js +++ b/config/sidebar.config.js @@ -44,8 +44,7 @@ module.exports = { "concepts/economics/consensus", "concepts/economics/runtime", "concepts/economics/gas-concepts", - "concepts/economics/dynamic-gas-pricing", - "concepts/economics/fee-elimination", + "concepts/economics/dynamic-gas-pricing", "concepts/economics/staking", ], }, From af5e2255200a10670e2d8a03bbb384a4ae0dbb6f Mon Sep 17 00:00:00 2001 From: Devendran Date: Tue, 6 May 2025 08:21:58 +0530 Subject: [PATCH 38/97] Fix block-lanes slug --- condor/block-lanes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/condor/block-lanes.md b/condor/block-lanes.md index f36e43524..3abe466eb 100644 --- a/condor/block-lanes.md +++ b/condor/block-lanes.md @@ -1,7 +1,7 @@ --- title: Casper v2.0 Block Lanes description: Introduction to Block Lanes in the Casper v2.0 Release -slug: index +slug: block-lanes date: 2025-04-28T22:00 authors: [ core-team ] tags: [v2] From fa4df4c0fff879af746d2533e1cad12652c2e5a5 Mon Sep 17 00:00:00 2001 From: Devendran Date: Tue, 6 May 2025 09:06:49 +0530 Subject: [PATCH 39/97] Fix FAQ config --- docusaurus.config.js | 10 ++++++++++ faq/{condor.sidebar.js => faq.sidebar.js} | 0 2 files changed, 10 insertions(+) rename faq/{condor.sidebar.js => faq.sidebar.js} (100%) diff --git a/docusaurus.config.js b/docusaurus.config.js index 0596b0a71..e0eff203c 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -126,6 +126,16 @@ const config = { // ... other options }, ], + [ + '@docusaurus/plugin-content-docs', + { + id: 'faq', + path: './faq', + routeBasePath: '/faq', + sidebarPath: './faq/faq.sidebar.js', + // ... other options + }, + ], // [ // 'docusaurus-plugin-dotenv', // { diff --git a/faq/condor.sidebar.js b/faq/faq.sidebar.js similarity index 100% rename from faq/condor.sidebar.js rename to faq/faq.sidebar.js From 43fde4540887c0063778d23f0a6c66a4e0f8c93f Mon Sep 17 00:00:00 2001 From: Devendran Date: Tue, 6 May 2025 11:20:12 +0530 Subject: [PATCH 40/97] Fix concepts side navbar order --- config/sidebar.config.js | 43 +++++++-------- .../version-2.0.0-sidebars.json | 52 +++++++++---------- 2 files changed, 48 insertions(+), 47 deletions(-) diff --git a/config/sidebar.config.js b/config/sidebar.config.js index 1944fd217..a1ccc78c9 100644 --- a/config/sidebar.config.js +++ b/config/sidebar.config.js @@ -48,6 +48,27 @@ module.exports = { "concepts/economics/staking", ], }, + "concepts/accounts-and-keys", + "concepts/key-types", + "concepts/transactions", + "concepts/transactions-and-transaction-lifecycle", + "concepts/global-state", + "concepts/smart-contracts", + "concepts/list-auth-keys", + "concepts/callstack", + "concepts/dictionaries", + { + type: "category", + label: "Binary Serialization Standard", + collapsible: true, + collapsed: true, + link: { + type: "doc", + id: "concepts/serialization/index", + }, + items: ["concepts/serialization/primitives", "concepts/serialization/structures", "concepts/serialization/types"], + }, + "concepts/intro-to-dapps", { type: "category", label: "Glossary", @@ -86,28 +107,8 @@ module.exports = { "concepts/glossary/Z", ], }, - { - type: "category", - label: "Binary Serialization Standard", - collapsible: true, - collapsed: true, - link: { - type: "doc", - id: "concepts/serialization/index", - }, - items: ["concepts/serialization/primitives", "concepts/serialization/structures", "concepts/serialization/types"], - }, - "concepts/intro-to-dapps", - "concepts/accounts-and-keys", - "concepts/key-types", - "concepts/transactions", - "concepts/transactions-and-transaction-lifecycle", - "concepts/global-state", - "concepts/smart-contracts", - "concepts/list-auth-keys", - "concepts/callstack", - "concepts/dictionaries", ], + developers: [ "developers/index", "developers/prerequisites", diff --git a/versioned_sidebars/version-2.0.0-sidebars.json b/versioned_sidebars/version-2.0.0-sidebars.json index bed394bbd..da3fd050e 100644 --- a/versioned_sidebars/version-2.0.0-sidebars.json +++ b/versioned_sidebars/version-2.0.0-sidebars.json @@ -53,6 +53,31 @@ "concepts/economics/staking" ] }, + "concepts/accounts-and-keys", + "concepts/key-types", + "concepts/transactions", + "concepts/transactions-and-transaction-lifecycle", + "concepts/global-state", + "concepts/smart-contracts", + "concepts/list-auth-keys", + "concepts/callstack", + "concepts/dictionaries", + { + "type": "category", + "label": "Binary Serialization Standard", + "collapsible": true, + "collapsed": true, + "link": { + "type": "doc", + "id": "concepts/serialization/index" + }, + "items": [ + "concepts/serialization/primitives", + "concepts/serialization/structures", + "concepts/serialization/types" + ] + }, + "concepts/intro-to-dapps", { "type": "category", "label": "Glossary", @@ -90,32 +115,7 @@ "concepts/glossary/Y", "concepts/glossary/Z" ] - }, - { - "type": "category", - "label": "Binary Serialization Standard", - "collapsible": true, - "collapsed": true, - "link": { - "type": "doc", - "id": "concepts/serialization/index" - }, - "items": [ - "concepts/serialization/primitives", - "concepts/serialization/structures", - "concepts/serialization/types" - ] - }, - "concepts/intro-to-dapps", - "concepts/accounts-and-keys", - "concepts/key-types", - "concepts/transactions", - "concepts/transactions-and-transaction-lifecycle", - "concepts/global-state", - "concepts/smart-contracts", - "concepts/list-auth-keys", - "concepts/callstack", - "concepts/dictionaries" + } ], "developers": [ "developers/index", From 2856528d4f45d6561e22c8ab699981bbc5506081 Mon Sep 17 00:00:00 2001 From: Devendran Date: Tue, 6 May 2025 12:38:57 +0530 Subject: [PATCH 41/97] Add CPU flag details to hardware-setup --- docs/operators/setup/hardware.md | 17 +++++++++++++++++ .../version-2.0.0/operators/setup/hardware.md | 19 ++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/docs/operators/setup/hardware.md b/docs/operators/setup/hardware.md index c8f40b8a9..1179b06a2 100644 --- a/docs/operators/setup/hardware.md +++ b/docs/operators/setup/hardware.md @@ -26,10 +26,27 @@ The following hardware specifications are recommended for the Casper [Mainnet](h Attempting to run a Casper node on older hardware can result in unexpected crashes. This is due to the CPU not supporting instructions used by our official binaries, including AVX2 and Intel SHA extensions. +These are the list of CPU flags on x86_64 architecture, for reference; + +- AVX2 +- AVX +- BMI +- CMOV +- MODE64 +- NOVLX +- SHA +- SSE1 +- SSE2 +- SSE3 +- SSE41 +- SSSE3 + To avoid these issues, we recommend a CPU running AMD Zen, Intel Ice Lake or newer architecture. :::note This only applies to official binaries released by Casper. If you are compiling your node from scratch, you may choose to disable the extensions in question. +If you are using a non standard OS, you should compile from source instead of using released binaries. + ::: diff --git a/versioned_docs/version-2.0.0/operators/setup/hardware.md b/versioned_docs/version-2.0.0/operators/setup/hardware.md index c8f40b8a9..72ea6a8a1 100644 --- a/versioned_docs/version-2.0.0/operators/setup/hardware.md +++ b/versioned_docs/version-2.0.0/operators/setup/hardware.md @@ -24,7 +24,22 @@ The following hardware specifications are recommended for the Casper [Mainnet](h ### CPU Requirements {#cpu-requirements} -Attempting to run a Casper node on older hardware can result in unexpected crashes. This is due to the CPU not supporting instructions used by our official binaries, including AVX2 and Intel SHA extensions. +Attempting to run a Casper node on older hardware can result in unexpected crashes. This is due to the CPU not supporting instructions used by our official binaries, including AVX2 and Intel SHA extensions. + +These are the list of CPU flags on x86_64 architecture, for reference; + +- AVX2 +- AVX +- BMI +- CMOV +- MODE64 +- NOVLX +- SHA +- SSE1 +- SSE2 +- SSE3 +- SSE41 +- SSSE3 To avoid these issues, we recommend a CPU running AMD Zen, Intel Ice Lake or newer architecture. @@ -32,4 +47,6 @@ To avoid these issues, we recommend a CPU running AMD Zen, Intel Ice Lake or new This only applies to official binaries released by Casper. If you are compiling your node from scratch, you may choose to disable the extensions in question. +If you are using a non standard OS, you should compile from source instead of using released binaries. + ::: From 76685e5627dba00ca0969d6f2038caff0e636253 Mon Sep 17 00:00:00 2001 From: Jiu-hong Date: Tue, 6 May 2025 16:38:14 +0800 Subject: [PATCH 42/97] remove non-sense --- condor/local-setup.md | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/condor/local-setup.md b/condor/local-setup.md index edf3f26d6..69640cf9f 100644 --- a/condor/local-setup.md +++ b/condor/local-setup.md @@ -92,7 +92,7 @@ NCTL is your tool for managing the Casper network. We'll use a Dockerized versio ```bash docker-compose up ``` - "Ensure you're in the `casper-nctl-docker` directory when running this command. + Ensure you're in the `casper-nctl-docker` directory when running this command. * **Manual Docker Command:** @@ -161,7 +161,7 @@ To interact with your local Casper 2.0 network, we'll use the Casper Client. You **Option 1: Using the Casper Client from the Docker Image** * The `casper-nctl:v2.0.0` Docker image already includes the `casper-client`. -* You can skip the next two steps if you want to use the pre-installed client. + **Option 2: Using Your Local Casper Client** @@ -190,9 +190,17 @@ To interact with your local Casper 2.0 network, we'll use the Casper Client. You cargo build --release ``` -4. **Test Your Setup:** +**Test Your Setup:** + + Option 1: + + ```bash + casper-client get-block --node-address http://127.0.0.1:11101 + ``` + Option 2: + ```bash - casper-client get-block -n http://localhost:11101 + cargo run --release get-block --node-address http://127.0.0.1:11101 ``` This command should return the status of all the nodes running in your local network, indicating a successful setup. The output should look similar to this: @@ -312,4 +320,4 @@ This allows you to visually explore blocks, transactions, and other details of y ## Additional Tips -* **Community Resources:** Join the [Casper Telegram](https://t.me/CSPRCondor) or [Casper Discord](https://discord.gg/caspernetwork) for help and discussion. \ No newline at end of file +* **Community Resources:** Join the [Casper Telegram](https://t.me/casperblockchainsupport) or [Casper Discord](https://discord.gg/caspernetwork) for help and discussion. \ No newline at end of file From 65f1d66550c48217383fe3ef99015bc4babedbef Mon Sep 17 00:00:00 2001 From: Jiu-hong Date: Tue, 6 May 2025 17:03:52 +0800 Subject: [PATCH 43/97] change js release --- condor/devnet-info.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/condor/devnet-info.md b/condor/devnet-info.md index aefcfbbcd..e0dba89cb 100644 --- a/condor/devnet-info.md +++ b/condor/devnet-info.md @@ -45,8 +45,8 @@ Once your request has been processed, you will be notified and provided with a l **SDKs:** - JavaScript/TypeScript - - Github release : [casper-js-sdk-5.0.5](https://github.com/casper-ecosystem/casper-js-sdk/releases/tag/5.0.5) - - npm : [casper-js-sdk-5.0.5](https://www.npmjs.com/package/casper-js-sdk/v/5.0.5) + - Github release : [casper-js-sdk-5.0.6](https://github.com/casper-ecosystem/casper-js-sdk/releases/tag/5.0.6) + - npm : [casper-js-sdk](https://www.npmjs.com/package/casper-js-sdk) - .NET - Github release : [casper-net-sdk-v3.0.0](https://github.com/make-software/casper-net-sdk/releases/tag/v3.0.0) From 28939b061f65a64e558c138685520d5178f4d9a1 Mon Sep 17 00:00:00 2001 From: Jiu-hong Date: Tue, 6 May 2025 17:37:33 +0800 Subject: [PATCH 44/97] fix about --- versioned_docs/version-2.0.0/concepts/about.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versioned_docs/version-2.0.0/concepts/about.md b/versioned_docs/version-2.0.0/concepts/about.md index d513c4257..c83656b47 100644 --- a/versioned_docs/version-2.0.0/concepts/about.md +++ b/versioned_docs/version-2.0.0/concepts/about.md @@ -20,4 +20,4 @@ To understand the design further, read [this article](../concepts/design/casper- ## Disclaimer -Read the [Legal Disclaimer](../disclaimer.md) regarding this CasperLabs Tech Spec (this "Whitepaper"). +Read the [Legal Disclaimer](../disclaimer.md) regarding this documentation. Use of this documentation and the Casper network is subject to this disclaimer. From 57afbc88bfacc81280bf310ae52d84965e7e2ae0 Mon Sep 17 00:00:00 2001 From: Devendran Date: Wed, 14 May 2025 19:57:57 +0530 Subject: [PATCH 45/97] (CD-90) Fix NCTL activate command and broken links --- docs/developers/dapps/setup-nctl.md | 2 +- docs/operators/setup/casper-sidecar.md | 14 +++++++------- .../version-2.0.0/developers/dapps/setup-nctl.md | 2 +- .../operators/setup/casper-sidecar.md | 14 +++++++------- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/developers/dapps/setup-nctl.md b/docs/developers/dapps/setup-nctl.md index b12a3b8c5..59c3d4c41 100644 --- a/docs/developers/dapps/setup-nctl.md +++ b/docs/developers/dapps/setup-nctl.md @@ -218,7 +218,7 @@ Followed by refreshing the bash session: Instructions for MacOS and Linux: ```bash -$ source casper-node/utils/nctl/activate +$ source activate ``` **Step 17.** Compile the NCTL binary scripts. The following command compiles both the _casper-node_ and the _casper-client_ in release mode. diff --git a/docs/operators/setup/casper-sidecar.md b/docs/operators/setup/casper-sidecar.md index 5cc83a4f7..ff918209d 100644 --- a/docs/operators/setup/casper-sidecar.md +++ b/docs/operators/setup/casper-sidecar.md @@ -8,18 +8,18 @@ title: Sidecar Setup The Casper Sidecar is an application running alongside the node process. It allows subscribers to monitor a node's event stream, query stored events, and query the node's JSON-RPC API, thus receiving faster responses and reducing the load placed on the node. The Sidecar usually runs on the same machine as the node process, but it can be configured to run remotely if necessary. The Sidecar supports the following functionalities: -* A [server-sent events (SSE) endpoint](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/README.md#the-sse-server) with an `/events` endpoint streaming events from all the connected nodes. The Sidecar also stores these events. -* A [REST API server](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/README.md#the-rest-api-server) that allows clients to query stored events. -* A [JSON-RPC API](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/README.md#the-rpc-api-server) to interact with a Casper node. +* A [server-sent events (SSE) endpoint](https://github.com/casper-network/casper-sidecar/blob/release-1.0.2-rc8_node-2.0.0-rc8/README.md#the-sse-server) with an `/events` endpoint streaming events from all the connected nodes. The Sidecar also stores these events. +* A [REST API server](https://github.com/casper-network/casper-sidecar/blob/release-1.0.2-rc8_node-2.0.0-rc8/README.md#the-rest-api-server) that allows clients to query stored events. +* A [JSON-RPC API](https://github.com/casper-network/casper-sidecar/blob/release-1.0.2-rc8_node-2.0.0-rc8/README.md#the-rpc-api-server) to interact with a Casper node. * [Legacy emulation](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/LEGACY_SSE_EMULATION.md) for clients using older versions of the SSE API. -Visit GitHub for the latest source code and information on [system architecture](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/README.md#system-components--architecture), [configurations](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/README.md#configuring-the-sidecar), [testing](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/README.md#running-and-testing-the-sidecar) and [troubleshooting](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/README.md#troubleshooting-tips). +Visit GitHub for the latest source code and information on [system architecture](https://github.com/casper-network/casper-sidecar/blob/release-1.0.2-rc8_node-2.0.0-rc8/README.md#system-components-and-architecture), [configurations](https://github.com/casper-network/casper-sidecar/blob/release-1.0.2-rc8_node-2.0.0-rc8/README.md#configuring-the-sidecar), [testing](https://github.com/casper-network/casper-sidecar/blob/release-1.0.2-rc8_node-2.0.0-rc8/README.md#running-and-testing-the-sidecar) and [troubleshooting](https://github.com/casper-network/casper-sidecar/blob/release-1.0.2-rc8_node-2.0.0-rc8/README.md#troubleshooting-tips). ![Sidecar components and architecture diagram](./_casper-sidecar/sidecar-diagram.png) ## Configuring the Sidecar Service {#configuring-the-sidecar} -Operators need to update the Sidecar configuration file according to their needs. Detailed configuration instructions are available in [GitHub](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/resources/ETC_README.md). Further details regarding each [configuration option](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/README.md#configuring-the-sidecar) are available in GitHub. +Operators need to update the Sidecar configuration file according to their needs. Detailed configuration instructions are available in [GitHub](https://github.com/casper-network/casper-sidecar/blob/release-1.0.2-rc8_node-2.0.0-rc8/resources/ETC_README.md). Further details regarding each [configuration option](https://github.com/casper-network/casper-sidecar/blob/release-1.0.2-rc8_node-2.0.0-rc8/README.md#configuring-the-sidecar) are available in GitHub. ## Installing the Sidecar {#installing-the-sidecar} @@ -141,7 +141,7 @@ An OpenAPI schema is available at `http://localhost:PORT/api-doc.json/`. The `PO ## Using the Sidecar -The [Casper Sidecar Usage Guide](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/USAGE.md) describes how to consume events and perform queries using the Sidecar, covering the following topics: +The [Casper Sidecar Usage Guide](https://github.com/casper-network/casper-sidecar/blob/release-1.0.2-rc8_node-2.0.0-rc8/USAGE.md) describes how to consume events and perform queries using the Sidecar, covering the following topics: * Node-generated events emitted by the node(s) to which the Sidecar connects * Sidecar-generated events originating solely from the Sidecar service and not from a node @@ -149,4 +149,4 @@ The [Casper Sidecar Usage Guide](https://github.com/casper-network/casper-sideca ## Troubleshooting Tips -For troubleshooting tips, visit [Github](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/README.md#troubleshooting-tips). \ No newline at end of file +For troubleshooting tips, visit [Github](https://github.com/casper-network/casper-sidecar/blob/release-1.0.2-rc8_node-2.0.0-rc8/USAGE.md#troubleshooting-tips). \ No newline at end of file diff --git a/versioned_docs/version-2.0.0/developers/dapps/setup-nctl.md b/versioned_docs/version-2.0.0/developers/dapps/setup-nctl.md index b12a3b8c5..59c3d4c41 100644 --- a/versioned_docs/version-2.0.0/developers/dapps/setup-nctl.md +++ b/versioned_docs/version-2.0.0/developers/dapps/setup-nctl.md @@ -218,7 +218,7 @@ Followed by refreshing the bash session: Instructions for MacOS and Linux: ```bash -$ source casper-node/utils/nctl/activate +$ source activate ``` **Step 17.** Compile the NCTL binary scripts. The following command compiles both the _casper-node_ and the _casper-client_ in release mode. diff --git a/versioned_docs/version-2.0.0/operators/setup/casper-sidecar.md b/versioned_docs/version-2.0.0/operators/setup/casper-sidecar.md index 5cc83a4f7..ff918209d 100644 --- a/versioned_docs/version-2.0.0/operators/setup/casper-sidecar.md +++ b/versioned_docs/version-2.0.0/operators/setup/casper-sidecar.md @@ -8,18 +8,18 @@ title: Sidecar Setup The Casper Sidecar is an application running alongside the node process. It allows subscribers to monitor a node's event stream, query stored events, and query the node's JSON-RPC API, thus receiving faster responses and reducing the load placed on the node. The Sidecar usually runs on the same machine as the node process, but it can be configured to run remotely if necessary. The Sidecar supports the following functionalities: -* A [server-sent events (SSE) endpoint](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/README.md#the-sse-server) with an `/events` endpoint streaming events from all the connected nodes. The Sidecar also stores these events. -* A [REST API server](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/README.md#the-rest-api-server) that allows clients to query stored events. -* A [JSON-RPC API](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/README.md#the-rpc-api-server) to interact with a Casper node. +* A [server-sent events (SSE) endpoint](https://github.com/casper-network/casper-sidecar/blob/release-1.0.2-rc8_node-2.0.0-rc8/README.md#the-sse-server) with an `/events` endpoint streaming events from all the connected nodes. The Sidecar also stores these events. +* A [REST API server](https://github.com/casper-network/casper-sidecar/blob/release-1.0.2-rc8_node-2.0.0-rc8/README.md#the-rest-api-server) that allows clients to query stored events. +* A [JSON-RPC API](https://github.com/casper-network/casper-sidecar/blob/release-1.0.2-rc8_node-2.0.0-rc8/README.md#the-rpc-api-server) to interact with a Casper node. * [Legacy emulation](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/LEGACY_SSE_EMULATION.md) for clients using older versions of the SSE API. -Visit GitHub for the latest source code and information on [system architecture](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/README.md#system-components--architecture), [configurations](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/README.md#configuring-the-sidecar), [testing](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/README.md#running-and-testing-the-sidecar) and [troubleshooting](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/README.md#troubleshooting-tips). +Visit GitHub for the latest source code and information on [system architecture](https://github.com/casper-network/casper-sidecar/blob/release-1.0.2-rc8_node-2.0.0-rc8/README.md#system-components-and-architecture), [configurations](https://github.com/casper-network/casper-sidecar/blob/release-1.0.2-rc8_node-2.0.0-rc8/README.md#configuring-the-sidecar), [testing](https://github.com/casper-network/casper-sidecar/blob/release-1.0.2-rc8_node-2.0.0-rc8/README.md#running-and-testing-the-sidecar) and [troubleshooting](https://github.com/casper-network/casper-sidecar/blob/release-1.0.2-rc8_node-2.0.0-rc8/README.md#troubleshooting-tips). ![Sidecar components and architecture diagram](./_casper-sidecar/sidecar-diagram.png) ## Configuring the Sidecar Service {#configuring-the-sidecar} -Operators need to update the Sidecar configuration file according to their needs. Detailed configuration instructions are available in [GitHub](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/resources/ETC_README.md). Further details regarding each [configuration option](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/README.md#configuring-the-sidecar) are available in GitHub. +Operators need to update the Sidecar configuration file according to their needs. Detailed configuration instructions are available in [GitHub](https://github.com/casper-network/casper-sidecar/blob/release-1.0.2-rc8_node-2.0.0-rc8/resources/ETC_README.md). Further details regarding each [configuration option](https://github.com/casper-network/casper-sidecar/blob/release-1.0.2-rc8_node-2.0.0-rc8/README.md#configuring-the-sidecar) are available in GitHub. ## Installing the Sidecar {#installing-the-sidecar} @@ -141,7 +141,7 @@ An OpenAPI schema is available at `http://localhost:PORT/api-doc.json/`. The `PO ## Using the Sidecar -The [Casper Sidecar Usage Guide](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/USAGE.md) describes how to consume events and perform queries using the Sidecar, covering the following topics: +The [Casper Sidecar Usage Guide](https://github.com/casper-network/casper-sidecar/blob/release-1.0.2-rc8_node-2.0.0-rc8/USAGE.md) describes how to consume events and perform queries using the Sidecar, covering the following topics: * Node-generated events emitted by the node(s) to which the Sidecar connects * Sidecar-generated events originating solely from the Sidecar service and not from a node @@ -149,4 +149,4 @@ The [Casper Sidecar Usage Guide](https://github.com/casper-network/casper-sideca ## Troubleshooting Tips -For troubleshooting tips, visit [Github](https://github.com/casper-network/casper-sidecar/blob/feat-2.0/README.md#troubleshooting-tips). \ No newline at end of file +For troubleshooting tips, visit [Github](https://github.com/casper-network/casper-sidecar/blob/release-1.0.2-rc8_node-2.0.0-rc8/USAGE.md#troubleshooting-tips). \ No newline at end of file From 2a28be9b54d515f9a7a0382ba15064e28c68be6a Mon Sep 17 00:00:00 2001 From: Devendran Date: Thu, 15 May 2025 16:34:33 +0530 Subject: [PATCH 46/97] (CD-90) Incorporate review comments --- .../dapps/setup-nctl/nctl_output.png | Bin 301403 -> 1179711 bytes .../dapps/setup-nctl/nctl_output_old.png | Bin 0 -> 301403 bytes docs/operators/setup/casper-sidecar.md | 16 ++++++++-------- .../operators/setup/casper-sidecar.md | 16 ++++++++-------- 4 files changed, 16 insertions(+), 16 deletions(-) create mode 100644 docs/developers/dapps/setup-nctl/nctl_output_old.png diff --git a/docs/developers/dapps/setup-nctl/nctl_output.png b/docs/developers/dapps/setup-nctl/nctl_output.png index 126f96efb2c555bc9ba100386336754a5cdffbd8..a7b179d1a0553660dc50fdfe18740efcd4f43735 100644 GIT binary patch literal 1179711 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 z zRsvr4p_g@pH!%J)E?CIQLsg?C-b2r(QQi5YQ{Ux)y4Pe){GdOs7J=N$a-q6tT=Lbq z^;`}Q?A;xj&X3e6mn=HZEdJx{mFqwn4i?DAii4GdF8MRn!Z>R%J#8E}K6$kH3Kai= z-XNGnvQFJv*55rUq5To_)o@rSPtG?AdfZQg0o9zFv#=IIp!csL3lydSwB2APRx;5| zJnzz8^oF?6hkcuqJB=S{$J6Z7e#bp_A>AH+VHH2X?AcVJ%h=Lc9Ta)BX$bD7ozuIW z+8HzYgG`cVal?5(^BZ5T?FrEk5wZid^V+nz8);-+NTvnKE$p4kjES#@A`m=e1oM`> z_maia56Fe7{Wwet>y2_%tX#)7P9UP8XB zH)pkYMW|>Q2y>_oHko?kl<~d0@LtEG{D^|Y@sTm{c6gw$))ty z)1EbVxRL4413p2uTjJ?ut2}pHK|2-YVnW@Fo);U&0co!Vf_w+gQ7*Bh=z>?ZydA9| zDnw1?-}C47A1&VTjh3$g*fk=&>i{yL-fOpTHWBm;<2BuG_jCC3i)O4`y^BA{(={h| zimJ;s;=82P^NTcv^Q5p>aaceD3QfC>EerrRryn6@Chd68}W?go!L?SbxhxLaZ$ zexwzcP=CUnuqS28yLkeOr9Ujt^sw=?*T}#imABjjYfc+$2v(VyIaYrMnToxd7x{&? z_;V2&)Ek@E{XuU8y5$5963jy0wC4>6=)xP3`rg)Bf146dO>);_Q!jR#3>ssP3?mCe zbBhziDyytwG(ozw!Yg|XH%tuQL;J|Qv5!F(KQlrc{Wv}*&-s5NXk5`t1*Cv|%1fZ` zJSIUL%OE>JMNEwy0%>@GYQetGHITi zFNy!-COkHr6Y=+~SfblmM7H^i>1d9yA-q5Z3+rYM9-7RQyaHA!^DD3XLLT=nuAS6g8+~513!4>BwJ^>nYjo-829E z)&$q(kdK2bL@`8UbPzA>VVt)KC$pkg>Dg{CG&0tq%VzmAQG@7MBUkF_Zv0h|UrM5? zBWB;}sf2M9`lrrUp@O4d7fGA$Q{@aw{ zM|a%_*l7o__xXO>BP@aAv&IG1!jh1?VK2cbBV?X4zOL36&nXFX{Jz*% zKeh5>kuVu!wT`B;6;bBw=cZ6ehIXu6v^L~gr;18WNdXH^HsQ5a{dY{vX?dt4RrePw zbi2b=Mmi9brEA42|K^u_9qk0m$wETV>zZ%HtNQGQ9tvlb_u=)3ioM4M zYSi5~L}7sojC2S^Y}CW#!*yKB|D?A|-Z5<`6P+|0|4vXyA2G+IR(rf)WA#s?ftZ!q z@g$Wf@uA5t44=Jmh$Q&_dDU_Q>pyQj{geB;aa%tV47mM{k0N7g!p22Q*omzI>K}Mx z*?S-)0!;?sb^^3>MsL$5N@KlUe8*<_Q6$sVy~my60TcWuaev;gRJa$f<8y^X$T63T z$bd$2gJO9`_@@TI1nVur@#IzR_JxUxdvoEn(a{N+@8a zoSmwcpP`~_71lsr+R4*J3>#4f3H6rB|BIGg(F1 ze8b=Jpj{r5%S&M1s^vc*(B`^C(3x}Mz}S3$C{rUQo??=%-PCi@d^gH%B4H;oq+APR zaz8G+Z&Q6Las?W|-nPn^0{;g};_faX*;->(~aXBtMu* zewdvj-Hnc(c3QXwf|yY5{%3%)AA-1DLHq`R%mCQNOiTim-_?gpe#WL!{dmGzH=;!Z&H)nR z%Xg3<5EVtT9XkB=H9ZetWRN54fX7F_ZE&yyKbaSbZ)BN&B)Ug8Xa9#w^cu^8x#y8Sb z6HT2HdtLP5crAyOVRWx0w7B@?64o|O(C4V*{=ky?YHyLx^f>9wg8{}A{O@iN61hUu zr4Mbw3Z;dpZHhj9@YBV;=0>Bs2aY7k@?-i^f?r|YWR_5))bsS_DCvIKgOc$# zEPG);e*j@5d8quCQbyXYE;TowKP~unX|AVFp5=VXz5?DoBg;Uyrs+(}F!n^M3Q|{>V=16lx%LLU>Tc=XtQvg%P;<^uHs;gd#c=EN2o3R|x*RsM(dpMT zUI^_?&b3>X)gnT?CUUa*ugzlBcLm}Mj3g($($61YGOYtmOKWq1x6c|)lSD%Eq%oxr z-)xEor<^hbrHGo>Pg?0-_LWncs25|U_G9pkGues9SVpJlmZMG-b4m{a)J$)y!DAF= zQ$9;ddkm(-5TmHVNOvE8Pk1}tCD)ZC_KHm^=PBZs2WPx;r$$;xe#!U3YQzq&g;zg_ z%PwS4Z2C3{H(~Wta$cAt;_zSP&g$yjf6vji^9+GNo+66$RBkvDPsN)Ky^6ZiIL_C( zGb#2%xpt0mLc9M3l9J+<%husAJuq&&wfc7nDYo>N4w{jv(V-E3{inB~mG+dmDd`g0 zO)Aj5AmgI)L1?W_oSx)NB$E;tD*1ZAZ{WX-dPAJ{a~|hMnRY9WKc^<7AarwKHtSS4->nM4@*sV?%mpK2IB!eU%(j(r5^|$YRhK1mXSe;TV>($pJ~cw|`$n<5 z2?9nN*$JR4hHb~HmYQuNSf2e;pkrK&J#r3<30qlWa%D2_2**>&z8oaGMErIOl%gcZ z@_iQpMnUSQr7@?hx*EkH_|YxD|B0xuJf`l%>tb&V_!KZ?;KjV3Bp1#*j1IL7t zh}lG?J9u!`toyNFQ&(!rgre-NxtVa-tLOCJ|G{)5Rt#0o!Nf>xwN!47f)?MMu9Ar` zRfdib!hfPqk3L8WN!%pT+YR;*gF337-Mb5}p{iFDWu3z0Yu*~C+zt)=xJ5JnLRvQF zdnDlWJ)*nLGm>j3bHi&|x9U0Y40(xtgCP3HmRLlbB#CkY>BHeiF04suql&O&W7L znrRmjcv#VxOqD_}M*A76M8&!;{K-PXD#1BK?LUx2BaFQQ_<-okk|Lo|;ojt;g8hR% z{>YR7YqdiUl|lbZs{?9OFF_+uG20E$K>-K!&>`R=$$Tlpg#m+rLS+w1A?is}DuJST z%7Mrkwy1ow6GXWQ-pUA>A?9D?V#*vcHf{&$rb^hge{8S^id_GxcM!(~uzJh!EX7auvBvr=ZS4 zhu$3++D38goraR#PYmVRF|KODrJ*Ik1jvp1q8D$oKKXAp z#zT$BiVjhsZ%o%hE7g}$Nl5&dy7VO{p4ft$v~7gggIFFx4Ez}`2UYgsTIsr)C5+hF zPVq^|H$1is2dMlBVw2GHzJm9TwV?JFbV^kYG2Jru>VWBclCfSj`MQpgagdhdf(cTS zU;7QB*|tsoAfeDvPr4vZ^%$BJik`*1pRFuYGNcw#f0;gmNKAs6gf2uzeKtWy(!0M5 z`VU9wTUSzz^p}fZoD2Of&^e3530A~|TwRnU3ke%AEWS%3(cnl0YIkif8eGZFwK}*l zA3-ELQBlT&20`a3JCDoWE`KX;XX9pT5=S<+Of|*`jztW=x~KED#C&hmC*veLQ<;ty zCS@YJ0Iv|{u8O07T~tNgcz||r;&;2(0|XPrnSrs_e|)fE75bjNkmil36SZ-7Ml6x& z5(u8=!fPC&qa;^+BIc)3KV9*Ph>M@m_b$)hf*v2N+ zQWZT3j+5rWnlv|@*s=kVK!s^ezusil+b~sT8##;l5pQk%#y>q#W?1&Ow1fSMLkRHX zzw#!7P9yWrVPd-;-W#*IIPvq;5`$oF{@lA;2gywV@)VXW(X6J{%>m81|HD9Df09U+Q+I!6+K^P#wrU^y|gOlGp{Hp#dLmr1A1?EAl@=ExGrSXgkUHh15ioa{X0{jd!X3Z> zHPPWFT+I`U0#uwWsb6;_rg(7&x~#)cU_Ib|lc8KWyZ@B41Qap92dn(^5xA3}r=89L z_@i26vT&zwGdE84KYJ!puf|?mvRuPd=F?c^wrp+i$H@`S$FV1bNZ04XN&|~8n#m^4 zyU7slr^{nf@Bc0i;8IGXqA5a{k&+Xz7?4k7uKYv~Un`sRNV?JzSriR99LjCLHT{5j zhzHXz=FovFa&|?1Ciw)b@U9TIcflnLZz%hPPG<(nfn7&5m!7DajYeLY9Ewf)q{ca) z67EMU0Gu`@WGHB-*LFjFYuR`qgDMOO3j1duBI%S5Wp=r#A5<)`6H~31z_q9=Cv-o` zV=}Vq%`M{ECcHace;-RtjZig}%}y|k0b}k-1!*eq@`=D*fn11O8DI!8-3U$R{;S>> zAKRUWJO1tdWlb9ny@7d*q%Gm|P5kxhpwPoA4(OQNN3^f4R-(}KPk2%*FR!Kh0_TAkRM@qV&T~3 z#C4{Am7CO;qVpJZJV=?_^&peC6VD&67=l>ozGc|nO`@emNd5yr`@nJ4DZCOZ38ryE zQ1Df;+Hh?Vl{<%=Z|`!d$l>hM(|E@-8%ZCbmY-u0riE?Z$fp0t^ z3OS@yZLhg+uXm=~i(+F|MeRORkt}Br1b-)1A%zN3?c->*VT#BH{bZJT-mUgpKiGtI zwwdQ&^6L^Rw`d7A6@~hK0c1i9182_#sG#|1>>_9HT^rU~rN!lrM!IuAFV{EiQ33@a z;iR*$(z^wM^kJ50EO-T+qCVn=hOkvY53RcFeSH{ST3FT!O>`d1gvAkaT7FXD+az(U_78!`5b)O z&f3vg`YHD_Z;4hu8pYA075mtIm;b?UZrNTE$w zWDv_lD0x5B&*bSjtAcfFOzQ0Z*%OEmbaO}8DpN#}AQbVw$FgPg*G@Rp&{L`Xsc{(2 z1`~Vw6Kl8<8qTA@yI61*{UH@><;X@D&!FDmu^!~h{>%(Zp?UDo+{F1?9o^s0!N_gl zliC&pv#mrAs1%yf{^Pmp+)2)1o2X}3S5nuOH;KY0y+anPZ0PwbBMWrWXGD?27}w;1 zqc{ZMA~jDVBjpEe7EC{-i*4rOrrx!K+*DbV?CRg*RBE^7P*!5%3=;fihho9QR7eY2oL;Il`BcuR1~ zAQnJXy-P*LGb+#YPa*7IE3Ympm0a89A*LuqrLDKe1@ZS^QEbk`X<@NEF8ja#ZsXm* zoVgbc1&nHpf-nG~t%W0~>gJ#N(K`m{H!C3IL_iv~%t=4+`-u+H4K{k#u6H$;f z7a&>kX1!XHvCgRfZ2w`PV_;L2JJf-5K+a#C5RdM`X7%2f2BiB3+Y>dFlOC#4ITm zZjq0wtPMIY&YzuTtUc+BeQK|>0fJN1Zs}X75{N!%T5nCK|4gsq@HadpgltQE@j^1L ziNtUygLv-4@#*_f*R^k}DqLVhSX(fQ5*TT~?M*@T5orGs|m+b(PkjtvFAy>&Em{nyI#jS#P> z%IOqk(*paJFYS6!jM}_}sIOHdrP$#ykhmDpzTJ8Lj@t6;{~}9#f3Dj_%Z4Dg!52fL z=OWW+5Fb~(rK~z5o$~4S$6(o4gFZ70`GvR5ys{=SY!>xynb_=-D68H_%AKvdF%D9K z6EA+HsB3s}Y8QeN3nrBCn0VQOU1)Bv(0nunt9V^jpY)s&OgMNBIGsTHd6GbwgASWZ znfvmm4y>sXAKO{c1S!A#3{eRyB&YY@yl`q;)Gvh=3=YB%JRZ@Ln1t1v41UBzkPC#e zZ2>stVOc*_IiA85M8zImg9h9W33|snBZzXV4LCnQFVNnAn$hp7R|7o#?p94F{csq0%fGa~|3B`t>dCbcQL=h$RA+QO`J<+jyWBo5Y z{AV078RhSxpc6FNNRwv&-8FBwRma!LiX41xJG7MlNEEIR^}Kg{akX;w@Z5V#Ofx%l z16_B|&?y5W(%GB^=DJ!`>iRP^5V5x%SjBYCx)>Fm;F`3@hO_{BQ^3GiMx9p{=kpU% zB*s2Nh&g2nYlxdzl{vQR$qNi|b}?b6jQWXHVoQ5GY|$utc7h{VPXpFiDMIDFcoF|t zlppHA{gKxQ2_R3wFF4`8TyKl*{7pYoQ72UqU%>kqY8=<1=y{MczUy*9#Dap28*^^q zgm^*T;**LA^dwoM$=uNQP<$IX>rF~{NRHqg3ZIGfoqG3TEvU;BFu8|JIy&GcuLG6415Q^d29%pG?RMaah$B~vI!7Og(! zwbt+q*zNvt3B$^oIAb?6u>@#p>W$I;YUN4ff7^UOJ-Q@<#&f2dK7`tRQ}j)iKCXiX z7x(v5My|0%AYC+Ljp@pRP?Q*xy|%ShXiJyZVai7GX~g&B$lPOM^6xz!nXV`16I78> zkzRetKBO|xdg4@-_ed}V!Y!tzf@9-z39g`;e1LnNOu2E3h8GTgH7|`%JlQRb>y@)bJ5HKGh3vHSclDdwJjOS!4ujxLj`ZZN=puLzqve|>ebjPUm7 znItPC^~8{7E}OOgol4s!Vwy-VVr!c1{Y-{bgi@6Mj^o@>0R?!3mYLHHbA|yeQldWY zZJ2lRDB?<9_io{Dw!wQk^=g6=aw({sEx3R~;^By~eNUfX{dS?1>unR2jn1YUB zBzl2ROyOx#-U+2yVi?_qkJ%HyyI;+2+wmjI^6s$hj{B3>x0|=%CXk0k=HmYHmWi@; zesaMxq_{GrMJ8`Ddo-H*zd_~!D6h?ARh3~8VR+zqt&GqdI&iBu0>IhWzG;0Xx%Yl% z1GO0c)Z4xX95(sX_M;g+Cji6jn*J~AMeMklz-WUKkZq#+k1u#jOG5< z@OBC(gw7Nm#unWb!~~zH#OD7g2iWvo>Y`JdQcS-`ZaC<)**R~IYhy{FfHAfo-sOH^ zh?i>p-`H|<-EswcB~x&JWajG=6qt-I|2Fe*fISZFYeKD`UNzYi5pr(j1kp!AQ2Q32UcKA<@i5mN z@5YIf&P-h-WIn&AXfMWPVGYX^K`mWR^4@Z75hwk+E?7at9LZjsF5n4wp4!$KQCDDx z7Uv^)xZne7$DCg}J{H<*JeOx_eNU)udSsGmf>vWFHanq8LiR4jLB^4VZx^AxlU+d< z7uaU0Bh|p~CORm7zQBceRgKv1Lguv^#y1rS8GwI&w(RXP zY6W%u3WCyu+fP?}R8wpFD)B$5p{au1(oq)qcB3x-?u!#u+h` zuz1oqdIP`$Pa_D^470Jllgt#Uh|Rmd^-AMY=+_=|0)T#3fi{NJ+M_Z5f(jwsfo>E) zo<@lOdn&|vw$62=w}TfxbK&l9{@%N%Vm2O!?~>F-E6-y0SK@DR-(#we<=7~7$Js#8 zP}&s#cmPU&x^{uDrX|fBsBCGeXfAdQ{HNpySKlqG(rehl{qO1q=xaiBQ+y+*bv5<-v0Q92ucm)0s*0*CN%J!wT0S%1s|WbpHCYrh~aV9Oib z#B8blmMcg8A(!+G6d}lF8%jt(4%p$Uu&~)CFWr>r`m${s!M>54duh2s#|L6&tb^gS zEN9x6GK02#4+e4bnFS?8{0ev3At8Fb8aTx13TFFIi#T?NlFgz5s>JgTH>b&Jls(~5 zbCK~w4WWh8?4e_NjNtuhTwnQ``)tMAmoEpe%OEDOyLUr9k28cTX6~fF+#gIEnEC@Z zhgD|Eok@`7iZAm1Et)#=l~6RC-!RJHZg%^Yq*&Ew>*KWmJ2sbY(pY0q_x5%>QB58e z-7L`vl^fw83!YEs{&b~`bv5(;BhqviITN_x6nOPXEL~I)!^P8|HT@*dA(i`>RHi7f zLE)#Fu|xL+q3lP?;EfchLcsAU3={X3L#N3pfBTFz?_R%2C)p0F{_PO>u%8&EeJx6( z_~8~p3bFyZ(O>3(u%72Rl1~a;hq_O@t6&l!=#}x+5%r#bLGZ1(K>ml{+Z5sjHgw@_ z+PL6}h7NqU!OX7lzH|4t_kqatIsJ3|8gV?Mjy_BM>)%cf8bhduu*+ahNIF@*VW;`x z5%3A5@Pwmz^KPKcs^vP3%@3g3=0su=t_D*gFy?-vQ8LuwFuy-gAgaYvTTDonbHRR^8Eo?3?-DY~S7WJ$gTS z`>ZRpcg~zy0b27ji<5y8p(_Di60ZXOcE-#5H~v!Z!V?r_EN13_ocZ}nhD1jFG`^E( zT^R4Wk@xO4v^GZ`fD^AuLN&oie9{Hr z&NoSayn7w@CV!BQ@eLcMZd_@p`}zeZ4ljp#6aJm7-w9tBTrr7vC#ZudGE?m_X6DYx znWvlp(}evcGD1IG?4pKW{a*CqVb-Lo!aqHIPegTfWr0x)akKdZBG^_cH${--d4-&t3G(PMRmoywV0bM2#mSamXjr!WDOQKXRxiw)XE9XefI=1t1 zyKW13{y|p+K^Q9tgiMdMHJQyU_Yoyzt}Qxrj_@g+T~Q`Z{Po>Y*Z}0RJANCJP-~a( zGuI$4svi>OvbSKjE8MEqYd^Xgc^}Z-B9M%FUIH%A@%3tA z6MFT@2^*38c}m1$G_Nz=vY&*|EmoKdXzO)HYGnYUzN^wemw(Ha?J6ou&nkAAq~}>!!-&7muy4HRCCIKb(*t$<~&lr~k|_ScdA(&Yz)Yehp*Mb_23~^i@C=?7m}57Z;|4UwQvpDpRD6?cxj2Rt?LjKDra#p6|Vw z7{VyrZB5t8({FE_cJ!D}mXx>xd8I$4{_Fq29G*V&=68itf2*&F_%c>zKD`f`P#TLN zB=|a`&1P%!NUH?EXpyCZJ%gMm2ufMT ze;t1V^}hmczH3e*&w(z__#&sr*{2;=SvA;8p-A9%cukXz{{B{uC#Sd&Q8NNA3RS89%b`gK7T=&vE8^9RH5x=K)K^^&*Pfn zOlV&gh}FvO-@#aiVLx%}&)o5^!SIq!i6yKbIyLmN5PiGC1Y)WQ4Rz>~V3mBxL2`0J z%TOc=bbAOWeq3BC*7~dX)A_Tzw}!6d@juhAJA8+0xn?$~g6}|z@H9(}g0~dYvEfAE zU3Sj=qdf}Ugm>wlluxYim+s~m$g-M~v%5f2HsS(j-Zbn?kPMOFwlnXrtM~K5zF2SV zFUZA8xEzbYYgq`=pDI9u_LnCE2n>O!F63n7d8*-god?Z=MPiO+0= zYIADd6l$)tZViGj=`7fwZpcO?Ey8t$(-9+ZiQu7<9R!iOTJYYW-AU2tWK$BSl++h_ z4OXo?0q2InuKbCkPrfP0d6C{T5Qzd`5u$(G#V;+6v{C~1e|bDrq!!x}0#1ByXBBW? zidW}Bdj0XXb(3KCV~u5b0yQqcRu~Q$iPq7M8@RaJ5qz!O83cXN|RBnaf!WDtD%C%10 z;se>xcqft0QoruM7tc0OkWCK%2V|Hhk1L2(vNd8OS2o}k1E=4MoTj?GD>Bh%iq;O< z*lfB*HvbuMotuf@(9s{-6I_>f+u--(K`)!MY`JnSPlTq+wS&9Pu7Q(4RE~v==o0Y| z?gjSkj=jaGB&+><_c-&P*^$vV@-5WF<4~@;<}&E6Nvkr*Gdsd|dpNy#RfCCH#LpTO z@?`1y62^A`dpq_GP;|#IIZ7vzb?v2P3gjMEbs^Z;EI3&5Ch;-?mwcp$$oL#o7d%w@ z0?(9_-vRX=zl>D&kAjY>t4vXNnLKsql5Xz<+`f3SO7@9@dWH3 zj;xo&$NQ`x4m${bF#?9isQ>B0V8;{w_e)>yPeTjRB`?th6-}kiT03gRcc6m;hH32i z^$9>`R{3qn&wS5nU28p8n- zg&s48FR2KSP7`u)G)>Djpr_B*O0~(R!`OKQfcSSZzEQpUp>c*HfC<`RBz?fGi+99(>|aw4$_dYD>+Zbw71(7#t`C>H%X-lE=D)xO})6Zvrf zvBdn^E?~WX^0N3V%k3V)XfPh>SxD>Id+$}OHs(L2ms%vbG+<9ZOodTc>UIBmQlc0R z3tQoTo5W7kIk^{x15jf9S;04A}EN7vHqZ z5}Qmgg0Xfq7zjlbK!Jp*;$hfezQ*WMT}@!LAB|&&(n`JC!qeBtBnBlrp>b>Jj8{`7feqG(RUu z7>rB^NHviC_c_QTh<-)?cuDP9JUs=7s>;(zQv!4WIlZIeF!+%qjx|+(vI?5_d{RG{ zIs=VecM1%`TNM7%$L{m$Nx|bh{eQ5w46yb*^}S)Ap=owROu`=!oDB>Xv5G6=dzY)B z@GSiE?)Q6J+sBV=N>?2PvFFh^j7B;>1Ml+?7*2Iz_zx_inxB{yKTexf6z+F#hyfrhFKOT6~Rf~#&jc?SN-PfN|F!EVXI6<(A)t2-dLF$ zAwR6rn<_#yMTAc4VIEZZv7uS(amwh)6{SEe7!!gudyPGHnR!|Zj^JooQxGepf`>_T zj?4gU=m$ruZMdz{R)x20Eo+oF0)fbh{P?_1MDl>D`5%{TCHwosyMOz`1t-f3Revsg z?+-?De(4eP?n7EGO3?mCw9@+2AlrG#p7So@VxVLB#W^I(yVn0i!dML9kEd7-dQ^C` zK}W%gOitXXcAgxcizwmxO6QvXKz+*?khDVij(t2Hdo@?j@D5`cxb0x3@RY$M{J)Fb ze#~Ug_J~flKgJYVcs!xUxlS0T~)0sNx; z?GDd!{5uo9U3`K>Dev4Xn$Yd72OFO}5e=a>LsS7D-A^$);bia4FU~sd zWS#7|Hl>}Bw;wVEJvkG9`}c$s9ch9%-n96fFmHc5sSgt|qI^cPrAsBAT*Z9Wd&%ca zXLSfy`CvMDt6v9Th_wKvOt$d`JqcGK$Zrf1L*;vK;OAJ&SS?Pbb}Pa@hNz*EQ;3c2 z`m|{{2duG@%{Ql7;UfRrESh7Q5Bfq1+#Nw8Csg$|!0aKfv#oIZ_xLg9-bxaI^ddq& zN*ggpEmAmC?#Uu~_v|tse#n+dTn%?=b1?BAQ6=#T4MyoIKWX*eAbsv5KnSbm)KB4d zQ<#u)g~x9qN1T0w28{q#sjen!4ib8tf$@>;5KJF-Cj!BEVm?NO)j9R9D^mMm6s;8_ z%tZmRhAg>1p`n`0VltS8=mu|B=IvD+R{jkHijw&UA;G8w4H?M^yhcyRPq&l>AlQ)_ zPTPK;&^qx=dW;#PcQdf*)FJ#6s|I73;yw>=?cpKZ11=|E)$_le>2>6jO5oRx6O&M>1L_a>nbsG^@tTW0Y+gKnwW|pbjEw(pqF#&f z@1Ngaf+SL2V1|1N$Zrf!@qusX2u#c!=m;_cET&-$|3f}tm=o@^|1Ib3(u7t{6gH&a z$Y9fdG}X5@MTawS}?bzXFsE-KgU)x-RA>z}l3v}gi0>;h6J_CHawld&0U&V%Y6 zD(MORjn0Yafts?$>Ac3~k|RXmbs&xt&TReZ`C{w5>1OP_3~Mb@tX3Zc9lG&QnN%)> zn~IzRC}QPN?9zx?-|+?(~kbg!Tew9OFi;}V2QPv zh>=RE70(~d_;;XQS8hm8K#yO^r|=3j}4?Kzt$zO@!HX8A(;xT z*}s~0N|-EKbk;F#g`EWE%|1e;%SHh$S!YG@$|(^Af6RUcEKr2N8S`n(06`l<(_ zVVgmlm*cFDfwP-fL_Q(hGKvLA!cs`ZF(KKB&hzQ2e{Ka+Uv~@3xa*vr}aNQyI5mJ z(`<(B#)*G{$f5J0Q@M|!c^Z^d1d)%Jsx6cYBU!c!NWm+Rq<(wns5qGs+A~g7zWePG zkUsm730(8u1igK07?4f+A^^WSS|yeL{XC+S*{DOE6OdjBDRKV$Jw4x?DMxxk zoTlzbH-qPB0y~DVJx(0CCHTq*DGOqJ1> zhK6DgFHL+^gS*@Akt!BpPGvdBn%7GVqX!-={~G^YC`7%?I#cieSpYxR3yfL61D8rZ zPOCfxK3{#C_`)9d!;i*#&*K*avT;+RHF;Z)>pS|(ru$30aAa9Z!Pzl;pf)P> z6DOF>q&3=bIvHSP#qp!DYY z(1qtS#bQ3{FvfaFQfzYHidqesuL%?{BJ{nhpBsIZ*=VHr=@!_$uG)4m&0?)ayu|Gd zN_bZKyy5YUIqXnxj$_^*!UP&W&j;PH{%aMa<=Ia<1PX17wm2-$6Tv$u%1Tt3XIGZH zO!7p)v$ui)A9Np_9qRJLQj^G_lTdG>M1;>yJ9<{sHtE6~O>UK3pmR&G%%{ z5PtB0>D-w~p%e3S14JJ1B=6%h^Tw$4>R9W>)RpHB`}o>xn27YmeJF76>pgB>0*{#X zQZSBXgb_w-sx$O=|8>eQ_)ZmB8>MAlGE2CVYN%v#Cu|GVc=$-K2lx{WeRlWHLfMAz zUBIn6EMQAa;a8-`w(EDyFUS}V)5@Xeo5`w^)dl_tbo;~0k8+s!t`U+XIV_`bo{(Vv zEnM;eEi|oLNfzyioeJrTCSAX)$!okM5Q0)gHz$d{W;{kuhp)flvk=rGj~z7urq_uP zW}T_T2U_}lP@jf_=v9Jwz;DMdIW{It6mj3q%mZ&>wJitcA_2B8Fdg-P! zgL|32PCjWy?ovp9y`QYpO{=3gBZ;JBdpXvq^H&H`Ltf=k@AN*1ywCqc?}eaYIn7?&6uv zMb<1o&x3Bq|G=%LKA`6+d_V0kC$u=GT0^CFw&B`gTvqqfWTtB)CNZZU1J#LF07FGjzs;=A%@5EmT zUlum@R2+{@)8*Grq`fAGp40vxPj4L-Rrh`m(?bspN(|kN0#ZYWAR!=1NSBDTAPqye zAkq>;38F|!NetbRDya0(-3%}@=N+H#=lA||2AJ#O?0wF@@3mvyYw`KEPgTzysTO7< z1w1ri25vcebA#Ly+zV!g~yJqGg4 zORu5=pZBD@9Q({HCdsEfJmWsBcM>sN9CYp0o5w!Z08wkgs42XjcxeB{*XmYMKCa}& zCcs^i9MXQ43CSEC!%P_ocQ-4;N5QBO@QUiIUmnJWQW&IqBZv#+R{nLFXetLT1vNK) zg%V1fs6>OPIh=%%Tg0l&<9|Kt*0ZQ#$E#V^e+)ZqItk89)*cjPR*9w%(EonjPiH{a4O#=xdbes|tNfrV z5#^JLEJUyNi@Lv#m}UtAEGJL|E5`EaY1Tp$o;&*dvB9NrT&}(ngqea}zWy|_BeL#k z|Ll9mtKLX@*KPM%lbgFodt(&qlP@xep4We1xUJZ2?_Z~^GI}C=e&=e$qxtPdwO*Hk zU*iHVF;_1|SbEuO8(jxJyt zRWoHVFi{AoEHwD?4o@7Ise+fc87KvGyS(4t$G9&Y)w@e1IA>GqZoayaMjwD`fwHs-Nn^v!dq?VDWu@O}(z06A!F_ zMw-8k`!k;>-!IaWsHVEQhz`lkO6EG!5Q0_*u@P|>E(9;olXyH**k-MUAe9vy& z0lQ$gJrThaTNJyeLBOST0F&@#r$x5ncOE3iNG!bN@j6aL)AGLRE3&m&I80is$dqmV z!|Gs)nr0{bJB?dx{^~P!OAP&?4ya<1rfDHo zMB@#E(>N+;q3U{Kuz^6dp2YAGNbNG~zQkizI0>vBUD`L6q>A=|4&+{5?S<#JogeIZ z$w-~LKSSTG6AVvhD3sM_u;VIN?myD)3@r$Wh;z3@k~B632xbDwC;dAOtB`6bk}ms96~1=5SFco<#9#H z+?e~*t#?i;K#{=*yA@}8n^xJ<+>6+<1JV%u{lDzZ3(M^ZyhrrrrTpKQ!@j!q@i3Pc zP=N7Z%MLBet8wTXETO<-1{yiHE!9R1T-l3$4+7$+N_|`9nRS^G)NzEvPEx`G^Es?L zrraM6Vnfz~Yct>EV|AFi7`OSAb|+PSlmy$guLb{!b2(n1FI4SxvW{-A2IP9&Pd|Lw zdijgwk?8SO`Q;KEY0oy5M+OWuAu@0_TChMdpbPrsuL$IvH7JYqrk97Z+(8aLq3Cx; zilZxh1UfsfFa7=Y64`gYKbeYm_*Es>7%ux1>$H7EUg%Xqj{lyd>y*r$h&i|-3ow^Q zHaXYa)a};Q?ohaoO{x(tQ&A!b`vTDDNt-qg!tTu7upm`c?f!|)UTUa%sLcUU3c+gN z4?Je06{hYT7_+F}$2X<4@w!?pKZq^4{FntStf_nL4aJ`?y=Ih-s2bs44aMf9%9X@z(i)MIC4cC1?jYSnb+JZ3LMAAuLKH`O4u7sFPn>D$b7d8 zB`y8D?2w{7E=6qsK3z0jav}4R07ofcm9*HNj*$R9l3ED_|W$Vo&{%05VDQC4|2 zsa7l3h#0R;UGtVq!T5IfM~W-~tN_jOqWek^TKkjgjaXe?AC12)w&o5?W-&AFA}c=oj(R zy7;8QLEbfqt5vqM&C>Gcu*;p`K{70J-bm9wSMS`|#sSO0Ic zDcSVNs06}x&yotVc+~xdmb4NbjLy<7FOub~%jmIHBk)_d$HqsvKrzXKa1$-^yz$YT z)ca``7ZC*-cNS>t-}_OzP~879gSGl{cY6S6^F5@!R3$SeQ6Im zQ<<_(6UKz9WE#AEb<|QeuaY4L3J3T2e5+wT#@$;#G zTP~KU$x@RaU8fvO-)JUYj*b4-F4JoNAgT!Pil;=K1#<%h!t6mnaYJ%cbC&B2Kkn?g?f;wuwGuPHg#&`0O$L+QN#SJ<{S1G+a8-2I^}?SU58hD-drI-p)n8eZ}fC`o_I3GCfL$`lUmD3ptNh{PX^t=*)zF9IW#MA!v>qbDL{$ zPV3>sgFz2wAJobRJ>9ByWdz9t|JTT4(?HJfB#bW?tdroy*Gn493CIcr$Ne(U3$Zqj zhxHw)ZFHy2;fHr!@}|u)nz0W7Mw6qW=?GPo-f@bVenNk+eqY~Pu*NZ0pr{|_f$A|g zwdsRip5DxZ)a_p)i9O%j8WwwWkW(nLZ+Hb!%6hrd>+3y}aOc~6Bzq_Vf+D+R1MsWo=`u?nZxyXD4N z=gKjLh%E!?m6^x~gjua>6w#v-MnOY7krr6WxM=cd+@(Nw2mQk1{x=&HM?;gBorST^ zh#Irj9=5=>sdDdztT{&O8S)p)zn@P098bjL@2Zw}APgjAd`U^}nMAY3K0e9fWq#=e~Mdrt)B!GZWy zF+#{>Wtu&oVEUzPe?%gf8VW)B34CI{^po+y5tdIB#{RPJun-;vb)@c5CwO0b(sy^- zI+I&@O@GKCc*na<=%|%vzV5a~XhM1D--U1TQF|64ab_n;!ZVcf31+FojAc8>AmrHpZlFJBCF_UfmU&v-_4E=t#;$)3@7l zB156BfOY3xR9)<3O6nmvsaiIy)lso+WO_|FlFwg5>jcAiqM7%EI{iMgy-^RY5wFm_8e}BJ z?`q&|{9}~p%}fm6zWrTcHg6=i4AQ@nE;|R^v2ZL=FvLrp)w}QSs|Mq?^Y@5bNMOvI zVESF~-3Y6`N{Z~45ai;bFFc|kJ;Lo7xXOcx3eDP1x2($iRj&wYA1SQg`Ra+x97{sY zT%GDezIwuW8$Gj2^gAa_w983yIK1d@j#@x7J1~PSd;Kj(hHza>T-_El#O?+xPz2z# z4t1`BP^fzD4dz%OX7lH zk~#3PdOjHEQGfjCi8orMA^kx{-14`8MIJ$6VK&xm3#`@4BLl(OQK9S2B~S6IU=%(OJGvCi zS-b8zrm;wfAM;5Y-FF7}sQ!&eP3@L{sB#$^bgVM~rGuyh&S$G0Gxp^BFWpV;NuQ3K zfc~uh(o3yK*;YB;UlM-(uxaJykU97LW&zbrn=lz{)&n(Z1EC#EFs!*cg71R6ZZ}bcsdLz+7#rk{fV3vanFKlKDCuLEXGWfJVRge(30%**3+2IUY9oM`jI7)>brp7pN$ZSXoyjC{~*qR|Ml# zwmr}I3a`V65u`NS&EDFzdVI0@V`ieu`!(`@#^4RB%AYs4@BJ79P!6XHJvHC0j~;Yu zl9*b)eskSZ){ETP;O|9xw}a2&(ht~C%QB*4jn+!M{zLpzHDOdI7?Q#rYMITCHg7at zST?U-p{{k$KCkebL3;U?`wYsjKpe)>$M@O@b5L>A14{VqERq4}_UG?mTff^Rt`l+u z;`vfG$V&V=+2%QyY!jKpUPh2BgoPXID-C?G_=IkC{f1+@n3IRYS8(zTZ$WphO{<@| z=wvDNSyJX{)CgGG^8R}3x5299_a*mxnKoJ#l>r+at%)Ag?Q&|TfV8&0NmU`3&-{$n z%)2ZbzkIEr)?(U)32w)dMMv>HnbHMWrlGu1sokyXsnD1}-s}pplm|f&he5%zAApg= zfP+UA#Yq}*pcx|2cQL9o_BYZIZ|jIBMRK0OTS|8H{#N&HyxozR*OKy3MwjO(l%j3A zMtf+MYm;pvG)LoRt2Zz$#AQa}Lx@x%e^{(sKvhA?Qtd<`bLYjyUELAgsy!Fq zmzn1nOSu-HlI`bw_r_nUIB33I0qf$qb{u_bEH1P;GoXBjE~ps~q6CY2#JjN`@GI!s z$%G9j?9So#L;l-gYisCa@VunjA*s=A{|35KTg$Nx4Y2^uE&Li6JyhGJYS&lN_OCA& z1}wof6lGTq$w_+z1nu7EH51|88}lzWMUL+Wakjicp5LErAztKJg}B}GD6WXxo+-DV zf5+lKqro{S)~8F0i4UaW_{sFfg49HU9>r%}ks4AU=2nEAI`GEkK>A|HqrK=2v;vYt zclF)GdvBzV*amsr9>ucPp{QP1I*5O?Ha~?vyyMt4A?0+~Irlb-rdjI#^;#)XUu$gC z9GyXQXlckBmXB_@e>hriu0qz4a0GL4A6VN;l=zE|X#qKOGxRPg{F9uhyI?z9fFj{oE&^5^_- zsluo~B=l{^LYb8(ej5jba1N=HN2v20i@cCy$NFBtT<2^Ot+}Gmv(7-tK#Ho_xHu8k zcn7+!eydGa5a!HKr7isnx2sgAv+mUI8hbG)Kz8nlJ;QcKKyIm2>P1K4qox|hJ1M6~G6=D9Pw#y;G9BLJZerVy( z;`-sSs%GaNK0*FKR5D}&*31!}^guDOxhCN*Eh&XTvTi?=qM$qLJF7)FQ{oZi)mHIy zG;$(`JNQ6Iej9ZunH#=I3kgTEL=#R-^@SrLy>4g==i7#z1#S2AvP`Eqc;-$Gt~N%U z*LBeuhYprS5tM~6xW42W&#Uv9N?ouqf-7)z4C+0_XRe&@^4!?`J!#jjjaHY7*F*a5 zvjFK80cE}3ZfUEJ)iFuZ+lG|-M`Rp;(O`zG zfigy279&uDxt>p2@QhOOwE)i6R`6Rf^jMjRDtkc(XzTq9TC0P_v{BQMQFbe;m$N?- zZABC}RE6UroktfFf{NF$nZXtEptnZ(hGh%h!(LUj3hH6Vhk_q(}sn~!4J zaCX7Zxcr-A2k}GD0ZW)z;~+o=&AbxBs5ZOGAvG%Us@?+eXrpOu<1L@6r_H=DMBP- zoGnotq;w|+{SyyC2h(RRcZ}|Uk``GA!@bd&<7FXQX3Sw-eD&-+pE+%U#%!AcFcwLg zw{T1EUwVZ^SKJ!HVcnCd+P@5}f7{S%$i7;}aSG_tQeYg%(v+dZ9a<08U!!kYo?tt$ zfl7tIbgd#oMk@2H?{NW6|_4wMDen8)&q2?nxhv8Y1Wh_X#?`A$G!(GlF? z4-`|E(;}VTCj!;t3#AutwqxLB_Y@d5*GdJ^UiFxF*NwJ5QbOU&$n$W>1%yKlurs)T zu;me@b$J@oF`rKFk~14iOIF({=f6=p3{|GUlNN#6bKj_fABx8eB6c9o5X*LP?Y?2T zZHYY%VL zcd74`@}BZ>WPIM)Bs$&xeN{<$=h(u=eTLS8VA&L2?&ShZbBznNzu*Uhl8^&oXf$Xh$rXBWUHWK{d+QcsiW)+4!RPrk41uD}E0fhrje-m?GzZ z!UGSH=XBuYV2A5FXPEb%Qa8Hu_c9S58CLYRga*GPovzpT2C#qVy2&4b2ZYWUq8pC6 zYG{}?=*%A@-Vf2CZyb``j%R6}q9*dw;_ECvG<=Ge&1!r>yV9c3UH%!S#EdPu{ZtLO%$i^^AmVL_ z(pqIZ6sE0F4~J~iuAD5E#G`C3E~WQ30DK4;J0I%@*kBhSJ~Is|i1Uh=s1t3x3x!gq zgsurSIHxJoqj}&2@n;mdAsL@Q99yr8{JxylcDXvy!QXL(1w7##9LUgM$gfhG={z{< z$c9;VwpPL{eHB)6hs}z7!zXC~WNLC$_6T**1vD3x`WO0vG0IEBx;;AgWJizY`Do(d zd#lH@V}YrIuvWUnOfDpg5^y1O+*XXrl@Y+6I`mS=<)IWZ5|?JSkbxKSa*A(N1~id) z5S|`-WZ){Gi@fT&4j6GJvB4G^*u+LZZ0qfZbcSShW6F?lWKU4Gtu=LbHX{BskgX0E zN`d#-BDh8(;#-uk9ytc<+>ik&Q~-Qn5GSO`HuMqOfyv6deDZ)$BKBhLZuurb7TB^|L%-}JiZ<>_9`L&vMZ;Urxr2kJDjcgQB&J61dZOJLXnE+sd;KCm zEtOrBL>Mq_@HqqyoiT!8KM0>S~dbqcJ7DET`xIO{X z4x@c$E8})&PDZ*yI1mVfet=^|wmPp5Vc_Goja;$!U^8)G=HsQ9oY~v%JHK)kcwcF3 z-E-xy5uJ|uLSe5*x!l3C0I~n53joLAVQimq8aMl#*l()Ck&}`@V3RViOJBvtWkxUl-I-iZbH{9Uyx=`y6v@Uez}uP@H8Z-!nj9%!#eWMoD5 zWfj86q0J|=;yR+1CxN7j0@(Cp3#AN^^D^Jcs5E9UYq-r&2npWFIozlzxnC@d?n3Lj ziwwW4jzh?!DLP>F@sX<<8B^ue$!6b5u$kdILz3(WR57QYocJHPLDNVA-FJlv6u+$l zulQy@7=un5T$j$oiJ?C1QP|!iBXAyo9t`F6y+YQ${jM~KCA6&vmX9sK59E9BXbUwL zTCN8dIDXiKh3lm*O}!bb2X7Icp$w&o#Y3M0 z+Ky~ZZ2~&6de_WioQB+JH?A8EUxuObBZKe!6We>K(PA4u6#%!Ew8QoMIY5BbPe-Ik zdTo*!V=Yy^CKd{OGGLWFsfkMPx)w9+Yj5#ufg|h(8X-de77mZt6qeGUcMpL|?#QTJ z$XuPj0nSw;GudzP_xu(g-F3m`SZOKAj@4IdjH{2n#a>Em+$~Nnm!(h&Fp+#u7s+S9 z>PW3q7COX3#eDbfr&RV?m!sfkfgR*tHJ#O=(KvSN+HcMQ=w}eUUQpoe_Cm8wO{Vy<^kUG`sg6%ib6&KkD?XB_63euz)W^HAPrl#`@SrbPjD;s} z7Ph^dC2IUi+;=ab!VYYI+YY;4pvBY+M3Jk(pmog&Nn91EVBN`}glP6#K0#NQ^F%)_ ziH8!DIO%jlv8|Ukx^g+Z&Fy*rr>7^D6~`g6=-hRK2~vzv7^9?wfEix(#t*L3^VGu0 z9cy1}@-PwDIK{7`I2i*=S@Z$p;^$!=!j!PZSBniU4r8fY?-WcLOxVBQmDZo8C5g9f z8m(#hW4W}L(z@Yl*Gp_-a79-vF~E(Z5nj^6L)bV7J@2c~#9SJsC;6Yr{-^*r6+OJ~ z$iNh^ts>}00aYOvxnz2)Tg~XrCxGAsoT&y>Em_OsYQhn=`{RqVf?vnrfuKN5f}7C| zk8eB-n_Kbyi=2&T?l2$Ls?K|7*xCBd2b~pCOFC*cQCLuWYs-VXY(kB1jbuq-<7l6B zYXMQ-b&%(JuL159YjhJ%*ddp;*!ULVpeL`?6OBpe<;yJ`k8d&alK^F=4H~pirb)L@ z;;CXr)!{pp6$0IP`$iA`%lj^w*@i6N*- zgtx0k33k`~HIMU6`bQNtKpjJI;jBBiB-%2Md$ga*s@gl5f{>}Pc>DafO*-R2d6E=j zx0a^v9-ql=ZtZD)AP_zH1G^Ec5=;qtQCmza>MXP>R@`gAeAw)_^&&A_&~CWy=e#RA>lFejb_Z>j9>&LO#$WU1kwV*%t^w&1{zrq`R#t_yN2-%riY4x{TukmJ0Mb`R^Lvsw)1el}>*T9L*d@Lf z=E_Y$;HcZE_gu~Y>SUcsFqd2T;Pxgg^jrd0PEXnknxHHU#fX?zm)yG9GG>D7X43;@ zLj1yMLvA8jHFp?CN|0in;P|72$493vvDETR5!N~_gazp}1&WI)rJzMU$5$bnvA{bJ z#D1&f+pBdS?pdHPY+BPl#8*r^yGTUPrt|(0+JcLx$JBbB|2O*)SAZVDqNBf|M5otz z3EmDd;r_S`o8!QUzQkkH<~#4 z{AKwSFw}}+XxHFJS)nQCQT9qeVLb@@L$T#nk0hx6bdlsdz zqRu*=jH2K5&tYOk`FjQ#3U9C#A~0IgTF>uTytd|~#FRRR2YEPI|IIn<)9PnGDOv9H z>`v+rhD|wBE7HB&N-Ho2KqW9wY7W zwCoGHnmvQoSBzuwbL{Uv(=70w9%}M8v3b^&O(V#i>Nv^rj%1DxjmpwtkJb;*yM6(p zr@s_W^^7jL!r1nP7Zwx=zw!weVCyEW?&)SFK>d;Yq#4>@>!h1RQ#c9hYZJpQPo-M~=_N+bV*#lsO z_Y4wiXB2m|(s2#0^(h31zDHI;JR#$;q4GuYXR|Z9C{kbJkyCB0UX@8qc{rB}zDO?2 z$v&f0BC;pwtAui(AUaJ0MmAZ zre%5o)TmH%kH05NyU^fV7a8Z>WY4VMZ`BC(fSceOy8g`DV@*=6z;HwMM3;x64VLhF z0c1L4Hr6*X#+D}Ty#2B6d3KXD^K!fpEZ@Y@|80tSOZa}HskQ8a!jcQK7#TV2-SN_| z;!-!N(+QlENPtOiq##7eP-*bkXAHGEIzwdzl?h2f(#v~`{b9#iDEdx&KS>V0`655> zi0(`|eMYKfdTb`l(aqNa53?5^F#k&FjSdNWwVEXV`PyvpS@7mj(7Txa5<2p7mcOCYH0){DTRVo4y9(T!nHP`dOev6L6?*!#?mCzxVSl zfAZ;J1N!7tq8x^>-gqeL_)Dvt^pn`fCpU*l^|C4|O)sgg9#hL!CjMMHHS4K!s0slh zHU){vhd!)7J>xWueD09a6Ea{t@uousof83>-AaRRczD9O_R0W z3kZAU=r0=!quJkB|72%<5YULhV;?T?ZI26VEzkZzGQM`=tRNn+VHrgbpLjY^V&b)T zb*Ie6C;+&o4CrlbZ`F?*+q9L^fr`H5Ts)M@Hf%g`vCo?5TPky*@VO}{=mYl5J@Yp7 zSve(W&2MJEI7=jZ?+5|C4ud%da{;z#<_yQzrgToTq^Gy@ckkhGNDvM1@u-YD>z^S# zCf}vN@{}TAJ}J;q`}TR-lZ!%8wo2MyC6ia2ezj0(kL2}SN2%~^!8Jo5alaXwBC`Lo zMJTS&jQ;eM%oi2y0h;s-$;kLToK#8(EW1=r$2~o<%*K0-&VN1?hT^*UBLaqNH|UOj zmVlLPpgq|<`ZyM8iB_l|K>d|QY`An(bEsK7WPZaj7fUv*h)0S)#|^~0)6%Tup$RI^ z+^NLwFnr_shX=5vu=bSzY_+)ZUfnI(%DGcCMmM$C3QY3|~mbECJKPd+#PHXn&e?{WN%6Bv2c zZ^v*aSv`sS#qyV5t!AVd6MDr-u*174Y1+M)dTX8mPTD%Lpzh}55ca_dd=sG%FN?P4 zjq}T4pxH$P`oto7sc>b$ie*=_vf+KMcb-4$Vd{s8X&3X~uW&po%L2>#wc_g+EvzYw zD0X^NoUtO6qwqE>dBNw) zWxvZ$Cdhgh>Ui=LR3$(nCZeXT5AM9nJKwUw-#e0sIDNQ%;Bj^0RFqwhdYLBW6o{*56nBWGdp9zanaso1I_%{5++}MW4*qegVNRgH9B3(O2)Rn! zAUzAbhzx#dqWve17*zyNT|WkTPU&_lzm!{qp&L|g8f2QGSEtO9aoGwzY;VB9{b11q zO%CY$n%cR&Bw{!cyBY0HbulX|dG9OKXTw|I=s=pd$tJYb75*!iP&eZah&`lsIF*Wm z&9mNm&fzcToO>BCid5CHw-aWb^vcKCJQv!siUBx6CAFe$s`Sl@#xIYy^;sm0)4+Ni!3Q1ogw#@M@tr4xJ zF?o-SCY-q<_YS2#=vrJ2tcUkkQAokQ`V~NI+*tR4qTkM zU9ca`e<`mKiq|u7Y_H^*7&3lX{<=(J9%Us=72s8P?Sj##Mm2ho)#j{ZR;GV{ZECaP z<6vD{mNJ*Npq4jw-2T)WhQF-;6&iEV)y}r@(@bFQS54RIySuJZ@R1_yJ?p*jeb{t6 z$>756W>MMCc95>xxg`@6^q@t0110UGUuS=#F`Je9Q(otkVory{rnvP`KOc5{`syNp zq2?>A4R(+n7Fp^Kbzi=^v~fFmbynSNi5d8_G%eM_2C4D$a>lttoUn!yx2v5?q|I#w zJPzVDYka9$n1RUDxR+s3r%i36MqPt!DgEh+eSI!c?9s{&oXin7dfs3Rl9F4ymyN%A zE|r8@B=HcI(w)h*ORIjNhd*@dz#Xc$xo_U2eqfIFEWNP#^kBuk1VeSw95j4Fea*bH z6gv)$z1C7JbeyB-car%FRFN|ZS6f^o>As4D{bd#Lq5Pc8<0|{PxgqnL9g*U*mdF5V z&tJt(JvFz5D0-wbV=hCSqx5S`l4-|2KM+}N)=|whGTVRf zL|GmzC;inOGmEex3gn?A*3VdKnq&S{Y7APdvc8WV{XDaj*iQC%B=eDwXIOVE6O^&3 zbOhQNZoBg&fWZyPOrtu`jomw1hio9OrbNepxGPx7tnGU5C72u^h{AyP;k#b-)`mRu z4qLFtoPmD<$_xMAeF+?OpCIzXk?L~f83WX9+G)reZuksNZkjsEdatu&WkS7pRY(3M z$SX6C(b14?M(WlQ;e(g9N;V{DHLM!orb%|5deQZV*qXu5{)Q(z&bN_VO|KiLFoz?- zan0F$W&dB_CuO6t*;V#iFm>8Fc-A9B-X;s$>m@t1orv~cwgTONjUBpGCIx5wR_-jZ z17rxL@5d?q(V_0Q>WKd|@<<8$mXZLdR(?&cUL1YQEIc~!266Ex*z**pMWkDfzB-Bu z#GO%4JZ1JjyB?&%uU9lIHk}U$bN-5`QWp%u5Mh6BO*Sp3Hm7+7MA7Wk_-dBkCfAlO zu9Y3fn&HtkhecwIwj;4I*UWnc|M#{eo@w6!8F^vAqMY(Z9He^`Ws}wHiAh?7lBifB z5AXT=WsAiow1q^Ykfysst{pUza9CV++9iIuTKnkG3o-8HhR7ttIL_r}X>S6JLBXM= zN6|R;<^t)tX9dm{Y9ka^;wdjfOJXm~&sOakMNAYxdLj1}T8wE-0?ql=TiD;o7=d`s zpz46g8PuG;2viKP4?yhDG2dwJf?LRtHh#QZ83mr`?>v-SBYD?d;J`EyZ~d~kW1Pw~ z=_&ZS_QBt`gQsAns8H0F_fB>#mg?WxN*_#fZ~5Hw0tDX)kb1VTwUtpYi5)qLz3{Ja zhiP2JVV$>NKDM1c7YGdu_#FBJ*#C@m&a5E?6X`BT;C`(&&K0#Z6?Z@6 zAxA+q4|kAZKKGFZD^And?`e@2r$+$^k$8jwGmfw7aKvev_d{Zb3=6_goJ-8X9d8ta z#rfID8J}2uP8fGxKB0LnFt=pZfc(pNSD_d)Woq11SB#;;q)r0rnqDM5e-kDFO3cK+ zi|1?tIWiU3<+~uvPULae`Oh!CDEiVPNvsYB%-f!O4CXSFFhvweKTw_wm1slj`1I;G zyM*_64rTxN?4*(-=U?#=_N=9k3V+#xmB7*8PvwSn1Kx{v&H*$h()TIGgvAwOFb?$U zvH$D4AueYAhV8*jh($TgR#PQw#j^HVT|3+yV$<+#j=A3Z|J2v}9hx-g*zR1LE7_?U zmO`FmqhGQpd~3756em?bIzIg5B>in9uG;$dpL+2hP*MU$B3X@}eLoo=#$8e>e#8`y z_AW?G4R^6q%sTX_`TaN+i8xxP9zmE2@TBYTw}H4N{2)O`0yGTPZ@nVo(sc@TGLLzEAv7*q7;-$k$%G6(ju- zN~bc4*`!tdG2m*Do*BA_Z%>d2jr``<`tU~&LH46SH!foIqmT^ax3EcsA&^g1*W~Ej z1ZB3eoMjNIuW;Mi#4QmQ1D%;1>Gx{fJ=AaL|13=cq?nq2Ljac(RR{6d`Tyefnj}WJ zagxs{MGU%Ev+;M0c*)L*(Dl#5&eNtdzGOr%+8_rYKZW^G&oq4qya%YZ8M7b*V<(^m zo{I(NP411qLszVF0E$zX9Tt3!$Ea=~CPGH1}c!|WSSw+>Q_r#5FYvP5}`PJFSv@6m&@h$K4&+hMuJpl)?nAT~QM?i5Kgf@n$A>!L#{dRECQ zrAtC~&kieib|qbNi$*bD;eujBa=8H;xm+&J7;}s@P6DT90>0i9CX^_~65r78dA@+n z-*!w;0lYuZaFV%>ev8GZ^V9`_9AG?)!cF_J}q~0MZFFqe^=feVl#xIQBRj;vI9$ z+%{)@+YWte0R9(1(NmD(z`fqFl3l5Xj|Nwgt@TC2eUP1GZtKpRB9-9T*m%b3Z~G(V zNa^1e3k}HO7iEnHzWCsW^n`wJCevch>2RBRYFu}icWi2*-PqU*fv<=?&078z(2bDN=%END@nqoRGv)|NDwB1Snxwt++P^ZS{_3)&4l+SlWZ806n$CCj6-_ zg#qKjsl-IOjp1E?h@OI;#EOQD*<{DC*X9@fD*DSxt*x26WU zs8@M+V$Wsqy{mAV4M-0(*J+%)x-Tsg8kpD1J{vi@!CAx zu(Ct5|7&BCE2j$`O%FQ#CWqMk#rsE(y`gqkDsqC#=&M0VVB`<&2AnHK5~%4cyGtRR zVTTnOgT`DnA7LayfFGuRB!Rw8-yB%d#!|g-emoCl*pU`XEsrKyt6HoF%?fhWl;2JP z6305`qS>Qg#edXwBt80#^vQ$En6V8mHm8*CB(5X*)!8{$UC;mW!USuxA@D9a{qB=) ztl7OuTauemCf=8RC9F#WTVH0lAk2u9(07S3xbcXaF_7(plOqpD`4tAg-a%1dY=*i1 z{gny_;F5IZ1Q%-b^wl=SxX82HFHe8C1>?KU|AB+o!#?=t>3@7PmR6Pl|r@nU!Tck7N|_nH5u3Wp&W&p=MIZwwry z=uhNN$Y+~)g|(~d=QP`X&AptBdTH=jU%k`HHmCLaUgNu!Tjo!}nf+X+w3DjMf;smH z!z6y?h(@9-;c9@HjRvM6SdT7Nok`#yAZh$x+K)eHt&*hqFJlZ>zutnCibo&Ekp$bJ zokZ@lz#cq})Q|f^xkD1gniP91aG!Pn{z>A$(D%!lxCL4oru-LIlt=>$*2kY7u)t!j zU`q=r3KlBdXHcHBzMK5xoBvHNV!KI~U_F--Uzsi1fP$yR+)6Z}#UO%Q7qr>Bo)Qmv z0q2|CT;3fTsi@cP?>;bsE@EE4f1XZ8QhF;#X=Kzn1TSWk_e;*jVW5+`*z?IKj9O>- z((s*kcK?TQFIXZm4_RhyVZW=RFSNdU@RI(mioK8%$0d;e;hLwpj-txc3&IC7$x!=~ z+BYt^#vW(C)M0`B`Br=n_d3XtHUE0z37xE`|ArNkqIr|5=oWl?0|$V(jQ(F*??H`% z6<<>=;eNvfATGW5afgN{%$sc5EJqZre*2)C)#X+!waHAfbkl#ABC%b3v@oeG73?@9 zRql8^Oe997Q9+acjbBYh+}@IwL)J&QIVvWggB*nuGe|LGB>R6k@KZ#%iy`U00WZmg zjJq*;arA{LA#OC0VkA6;f7IOnX{cORprnM{125h{z21E z)k%KI+HJ4wN#G>%ZC!Lu587Z07K^QrW85( z?!H&@ZOoas`TX|hhU21n)XIC~r@p*X!Qia)Z_;?wEH=_d%7jZoAaNr$8(vViBg6C- z$7kjyCaii4d9Fi>n7azFXMDP815>zQgL4|41vdGqVw;=LgkevjzI+65iy+)GsLA?< zeh0VmE5@xMnj5bX-B=qm^&aKI6gI#-AHDQ5dodTx1kXU_XvBTth7| zH>S0?d*BYok$-V@?cLKKraO5k6v~Se&3(@z~I4SLn|8Z*2v<( zilV?{dat&IEZ8!?4s@ark1fiqX4j+fmh9~dv20UVV+B;kYcotDOPa@Z7K*9G@xrbI4-JMo1I-H z4}Xs)v#6Mb78bZ*<+gzFN;lun8yy!7)+bbFXIXl!1*y8 zmv6t4kN0Gj8zYY^di*HJ_M)7uxA(rdOInTQ(n1oNv#yB33>9{4-(bJ4^FrapA8jlcx=MOFmSjx-fUqcFe9A>2QwoMX z{`-6d(RI+4N5`i_Dv-Bd(|J9;64%#^fAv|f+5QTIu7X?CV2Q8(73xu(d%8B_Ugw${ zjGRFgSm`39$HYlY!RCgr;8USmikL@MTQD~a)^ifbKZlQW-W!Dc8%f0g{WbI$J7E{+ zP`FGyM&F`()8HqzLH0=86^q(${yvRm5;W|}5KQsoXpt8zP*Z)N zID$5P0aL%xkfCpeUhKUd(bR!dhW>vvy@g*>|NH+>3P=mm-6h=&MvA_WFc6TGl#oW6 zA&sQ8q#y!HO84l-5z?{I9iwC0`R@I>{eFMIZfECg=lQ&zkL!BeAKrDJ?;tm8(ax*W z8a&3}liNXdC=J@aUra?rxJL{1|LyA7lBp0)dSv;(&$lVugO!{C?(&{kerw$BM;A@= z8+B1ndk_MzlNyZ%y3@>GHqcF8vBKvQnM4D+q#jtA7{6n+4Ca*&`$$9WBBD@;V3feR zty%M0vz{hoD}lHs$>~_*dfZ-|g&@`gWDdGm%WYkrA*WjQ}+%^?_LA8 zc=W%Q?!XyDo=e8Y)mU%`6?U2Lj%IO61l<{XS;gXyTS9=389gPz=u4wXbx${-eKz{; zg!j+oKIHKj&BY){&1|FWldjkrsJm@Kt$k9bJkEa-V=>kIYtet!|L>f8zLmsMG`cmZU|C)0dfjVN6@nk66$bMi;~eH|7c<&tI+aa-uWEhqAZ7BmTA_2PEQ}%FyV_wQ(0!Oz{a7P*5+wQ;ssI$ElqWzkwuWq3*3K;xbqZvt)x<6`y z4rhu%Z;_=xx68%o$|{Z9GT1^Z+f8sfF~U(u^{lS!=DNo4y|YCOdzi#qO}CH)`!(p!+{TrU*C$c$T(=E6@~_ zxGFZ5yKoY-x|{*sDR6Bw#ui&-NDYRicejBUtzud|u+Tx@%JwugwBXg#? z5?!PXPSgf*y`0wE0^$|(1b?Y`$4ybJZ5QH~Vvg1x&6e67TalE+!GV{3FY(=58c0y= zeiLf;XaD9>`|9XC%Yp`Cw@V8`XxX^Nbui3w9sj(W>r(s1xtxrfGHwy!{;C=+Pt|>z z{fA9a(tnpcZ_A?}Z>XFWw4lznmd4FO`e#b|?To(nwlOyhirk>2rfWXw($=&vS2# zY1ll?P8WWAY=DM;GzVmT0Z8CxL4e{`gWS05Zn%VTa6&!ZNL(NajX4n8F0Y14!-Fm( zzsdPleY-$O*~`%P)NtzW0rXGq3W)hQ6Bw0yF50T;r+)L5soOdM`e5{npi`F5X0jje z52_@mErR>0GwfVjFJ--+r_vRrD*ZB*h4zgF0?Ik7c>NueB=_+Bv+@@?2a9|CVXz5U z1!*9qKnTjex03aZ?{l%P?2K_H#pZam2+@T>_R4qo#|@!z*AYvq?vYP#Q8&&g8~vOg zi3$TyD)}`cmuR(S_Ca8oNn+npp_agklT$)ir;Mh%akQNqmTKbB=l+X+x;rb`R+~h zSR4%OFk4|x^Mg|a`X6GIEp(g?WrosaAYXZg|Cx6Ty2#fiuY;V zgotnl)C~ip>rFP{&4Np}e}(Xi>W@I%B%UvU*Oy||qfl%f$98NiEC+oBR>gY{R6ES+ zZ6gNsoc8CyBHiF{M7|$KEG=x6_q|( zgxh}U-H6!!OQ?)Ihy6CRpCW~QD-35BC#4VhXlaWm&~|C(46vbXxf(oo6a4h%InT4W ztDWO2)^QqrP>O0rn*k7fU-#!O^YyKcV^I``&_83w%?=bLsElA+8UCzHIS#&1*VkUk z&v}A8DLYRxWAJk*ttxR@ID4s_@x;3bg&RkBe|_{ZKX6;{jU4fc(c}{|j0HyfhnSD{ zplivCmNQ9mu4r)n>WLb*#J#^Da9+}sB7dM>{CnY^U7MY-xu(f(B%>~vI){7RcQ~bA zUh+qiKXz^`EY+ZoxD3XrnbU@0^&uM}k2~AgqT}uo`OI=0&61xdPYtRl0A3swxWTWq z+nx*1`cT&A=z}P7uss@m1m&fhS0*q!3k_wL;oJrPM$P_#r~#iS(7kwJUrtqPq}z%L z&nAanQKvkR>P%O!Sd}VGimM80B7M~yD^eW0_^i?WpQ8osbF~e%ukk*dl*p!*?SSbr z4=LPPtC2M^C}WGdi~Es?GJ{aQ{U2cbDZS`na zVCe5`JroznNC&R$AxTQd1oL@;?|l=Ce$V6BoTH0Q##(BX>SbmxhKP}z^97(fD3X#i z?U47f28Wux<5L92lH_oNRo02+(;gca;g>u13C;!w#GKyWWG@^04w>otmLgs{>WX>J zo9mD7YJkR|A7_Ib8B7qW^QaLBJos8>8s7C+xwKT;e}8pD8$`v2%iVVm#kN2fy$7{( zQ(Ejx+2tvm(YhLjNfci;P|@KeWw^~YA@f%A^D z^)Jnrx0V4H-;Iw^al~0)-OG&>dc%0*Y}4tfWcIcgOKgY3xxWcfL(G`?cq}rXtV91V z@M5{=z8Tea)lB61L7z7G*55>%HwMSx@JG8AW|4u4xjjLb~>fKAtp`lxp=o)77?RSLNU+LOHw`D@YuzsPF zqiMLAL0!fmMYSqCdyzihA>)bZgAv(IV6Gg7zm3YK|NSnxUn>qO)!_VAZWQs$#^w^z zwDL&?2E7pabj>aj&@vxYA9A(F|JNXS_3+HW`V1D7TB^sd@UWhIwWLiz)7XF~ch7yY z0j8`xHuTlFEVR^n3p&UaIX3atMz`hc@uPsXGa6MM2+=i`!z7z2`|(5P&AL}P?Xz;K zX(+yq^`B8%9k<-KQ+>(ifQY~V+}Dj#>fuEd3=`YNvWRsq^2C#&Ox3nTAU#wd>Mer8 zXRxn!PCENQ1_C-|l0I&johfBMzCV+lIgP}7Qv*W4{{~u+7@K5WqwudPAhs~|+t&lh zwXZjqciHK2FPoc^hLc!PqNe`<4w3503I~1AUCo~N+>zd&rbJAEZ-}mr7>K9uo}Ie# z`}Db3fYPdci*XXh5Da~)PQmu{Az-2UmZE7*q7J>XdZ6uWb{EmD7F;=kyT9@N!K zlho|FG<4^C5{y4~DSG+0sfXi-H1^a9$qudH!)c%M@L1*Z0pGFPv*+eP>4F|xL%D?3Zd&YUj~giz5?{rSNCea0eWaMQ)Ryaw(MRZLYwL>38sEMi9e$Ibr-Q zI29?e3JQmvjzP8-_;E}zVzA|?q(9+hv_NQF8K)b%H2xm4r{-|TO*7`fpG&ny?SvAs zY&2_YJ8v5nt@bNEt(1d{8(I2)Gih+z`ZNw)O#ud$+}PgcQL}1kV=d<6LrieoW2tF} zo)ux*S2F#E^uoerya#07h9@2y&U6Jv)g~XS+V(xAZ0^dRUslhD7^|K>prdN;A|x`Q?86vzAhlB`tEI_ktn*!PTkH7ngSR#ho^u^AU?_Lxk<>ep5=TNFaou%?>@z<95 zxpdG+9C_x?Jkr^;+zi_gpNZFxEKfqR#0NAx2KiAGl%mhiu5YM6u4do1wyf9MpK69a zw>@pIvM9 zmXGR*|GFB4(Z~-iemKS5CW)ZHX_`gBBI##jl~0a@YoB49TogY<^=qGRcR-(`XpUDp zM9fCQa~PY;p1bo}X+Bzeun(z>+use(_)TyI#bees-6>GseRCW5!=TEHQ0i*3)J1{= zJRO_Z*FV+g(77}7v!&XIQYzqPB7O@ZM*rep==GyPdNDHWd7Gb3OH|HGGoyj@b4w@z z6thlGEuvaHx|bWKSE&wfTmU=lM8iqX^8>9{&jaV{Ab`2u%%ZTH0Ay&@r~;_- zeH{Asv1uR`E^{#6gZYO-!~%`Q#R9|v51$D<6k_=P=+RVRaoCqIjulQ`Yw98{&Y1bU z`CGF55g-^ow&+mc1tTB1>EO<9yFUD8SZ8m4@=eCst`hh;n&v~PpTE{YT9^@=JOjDi zb7-1Vk-r%Tx?pE^h+37wVe{6G#O40VZn&Co1}3~nB{Q&T+Xm;JUE9&)P1Tfi zceNkhji#^ERrXj%CCtf~QVVIBn?Yu6<;xF4gPz^}_CSWTO4B5WP+41({m=C+rRC#|9&F9p!Zfh@)U8VZP$ik>U`))uLhC186qknw*aVv=U5dj#a>6oROQ? z{D`F0+%ODk0R^O<7Wi*3R2e~)9@AvsRVYwEF1vfkco?a=h&NAu10^?yc|b8Ty0$@O z)HxvqC_-kk?3}rIZB#h}ke-{sZIhi3%aeQhwQR4jMn}PVrp24?-c$QA6}?z=-nQlI zb;$mWM(}%Le7=!_2LvHDxN?G)d;rfaJjj_SqQ99lI}sq7+eqb)_n}N;t#p4C*!AJ3 zAM#NZtE_}@mvagd1`YS|q=@qXtT4duYv?mX%ZcSw0jobC@}{`P^Z`De4jGZS!>o7P zjAg5s@_w0(nPaohlb7o}%u&+6Fj$nBe7}Xo@dP6 z9X-y2IGJ`!22sU4>*C$LUcGdO^oIR<)wOeQ``U=wj3a}S3A9l2NeJ`b?)CDUxYC2g z9}qnTheko~C?_Aq+{y*U%|mrz{SnBslF;{W={Q zn(ymP!wivkPyvxBhDzR)UaU01g$_r`tJ@D%?hyFCL+_(or2c{i8$S3a2vgCmRHBtu z1L{o4s;MEFCvK8fs6f{t22+ViOv{EC4-e;`{tlP~;9-zD!t z3P*vg(8nV{?3vix`m7vfK%xnbx%Ypoiao&kwoXzaIJ8|*3#-@AqEMx1_v!q~o7z zahxtA6R4ilO9bBH@K$8-=339Mr04DO%r8?oISUBX%3s49N7ov7%vK>0LwOZ7=^E_! z#WC(wl!(nc`SdGAK!wXcsx_Ob3#gNfb4!~xh@-jKo@3X}Sntt$8&bj8yN{tGwZdvA z_a}@U0$(LDfyc%gt zni-A=IlN?~Y){-Vz$^_zIj=5iSN?l&E7dnI=Q@!WEKZTKT8->5Vc`_KQ(#%X5W;J0 zeAmWVp{92aU+aH#p0mbY<)8Yr^Ya?(43u@t@=_84+%zRYTTmz4n9Onr!)wob%j28t zodke0qMOcJxlSgPhvR4w)x%Av2>8R2NrrDLuw($pMw>nFl)R%bwX+C;IgE%`8$M7=kRWm}o zkQ&rI94*2-Q0V#1sKif=!K&j|2}+$hHO}tXl}~aY??+-H7K4vD)%X~Oh6DpQZM$F% z2Jc8`n}mfA(L)UqY3Btf%ynO_;c-oGoZ4`ZT-)uy!SaR)V?5pW#!*64Ia7b2&5;8luZ6esVnsRW7)qR_nfj_&ToGZ;qlob zAdGwnP3WY{&HdGxJ2|xay>VWA*zQ88O}5^Jk*=R?%mzIZ?H3r7vWM`-|FIBt@iHd! zi4V)^&f$Gi(f*_YKOZb@%B@Xl^4A>9gO`7PZXU08HzP_{h~e{=Cl( z0c4$)$#NWnIem9RZq|r=KeePB?lo)uIPAMy$_tNbQ>34xf5JjiqRVu0cd`Fjcohlh z83dbUbn(soV?1}Sm4mW*EdL5rlewNj zv$G3zSUm^auz?5r^~}mt-_Z*Ix^-E*`FTF@Y6*@l8?jJAeMi7)=6#KqSjQ(nbMz&| zbVX)7r`hM=y#Z6JM1ecJLlk+~mUNVkPA-BI88Jp9 z^|iW)L?~^0N${k%K%OOM@M7wrSvF!OIeP~4237wG_CdAlwL>oED~1y#_wnz1l(Lp2 zq+XoLjOOWCW2vp~5#I0#->sbEz8p^lnud)y^j^Ps2@y(4gscqDT94`t=S#R;i<%`=)F$!zYr{jyRH!=6hGgjdsRQzk_>lG<7era~^ z)KXZlwH>2!DVFG9Yqz0gBl_*sjZ0y@AVpz2%VwozOSmN{hO^~xue4{Fpld-34aHgh zhJMKA*#lTAV+`2+vh9TR`j3S$SU;33hVeeN)GxSc5pzW!tZ)brQi3K}S?-qPYC7e# zRv6JsY$zd}ryBp|0cXc8rDj??^#C&qk`vdS1#-PCRRErO#`mqZtJ+^G6*E`72lqv7 zHA|6gP;4Ovbz86QXIA8_WAvi**PCCr#v22~8+zm)Q3kY+7WERqDUKAEZh>2{q=44d zOLEd#{H{xIO~SxWD&`R z!CAd6Qr*|Ntuch<-yEqPCaTSsD(Ll-5R*P3|k{7uJO^ z+3!~o;JRC*3k#-AL^;nW?jOhLH93ukDnIyfCr9r%4a=kY_wL!^Pq8@(*H!P*y_S=} zD7hzq?L~14@5+SE}7f9)tUZ&KWWs309bZ zuJA(so|}JArP@s{?a7q=kG}Q*z&^!lx4^o#!j(#kH_4Chy~A7So5iSJy>=wJOk&ey zNP%qvmvW(|r5WuMNAaj@Y=^KtGO2AN@%*X68?URxa^i zd(8bw3+Zo<3bo+brPynzHoN7qG6^0nIgL=B5e2*#8la$AzZT}%e>2yjLpgW&yPW&B z3HmD`&}GDb>+0fnxjLkNWbGRK)Ik<=EQ-FaUz0lp+ZpLM0#EL*}3xtUA{msjYm1*&{~9^9lE z+Md(_uy~D07-yEp__Qdm)Y|E{T(9~MW+u*zzQCk0cKmu%i5sA?@BH*fPxu%EOI1s% z#rnFzb@=4{(k$88j(vMKFR|3qODiO^cZNGf^q@fZPnNEYB(OS#g9b(8s#D+3HTVUP zWs?{;%b#fzd}i*a_b2T!z*PG=?J2u7m%)#(tE(&T`v^Bo9=Ql2N?GVk+Za1s`@aiU;if$dfzkgWa!_+*cgK;O5;gNp{` z6d~!JOK|6olK-CZ7y({bSsM63-_HB5tXhE%FJPFoe`?ExGxr5bX z^JUdMwYFmC?&J!!oV2Aey27*>K@Eg)@R)3rK7K-^Rz&5|Wpq(fQzZmH%v#Z-*zzRgXq!yJGeyak{^Lr&| zwBDDx%$D43WEpgvq0%_7na5~Tx0Ec&F9A|(CV4dJzxapks}*l(x9{2r(l9)vnkx%D zdA@|9R(*rm-s-;;n<2@i(GxgMjMfnufZlDUCb@g=1vh;fcN+39y2nJHym?{>#6t$A z_Lm^ZqnYd(*Ux_GHa-%YsB;*fplR)Ir4Vzr8_C_i0wZwJ`H$*FSXKPK>qXwaQ2lJS z-gVU%t(zBcX+Hjre(wiHyg7FyiCjHjG+^V>2nigxUd8`9p4JCHj`6-bd4E1fFfeL+ zdoRg|bQpl{LC7a$P;AX!wuU$+__r&Qm8r6qzvQRwmBZ#I?fO&Ax<*2+29a}Z#f1k8 z4jhY<5P5^+X%ERtIThKgPZ5BSVfpao1<4@2@1Pq0hfO5SI>@!V=Qi#DOA!i^wDxzS zh0J0Gpqp94H(tm7NRJ)jc%?w6Wh8oCp~Xm4sgD&zs<;KdMbz#&iT+`x35&r0gMo>MV2R5^OT~`~N6W zRPYs8o|jx@nhreaJhK0rRf1gi4a(h&fb{BTwiqJS-rxlv5yUHF!Jx_UFD%U37L|eJ zx?{oI&b42%li5W;3B>!yQWId+gHqo8v*&NsDl7!># zdu^x5zgg0lg?J}j+u}sPA>X5M)0E}x3B@g2ge;ozsL}O^R9@n;BJk0f-Mv3CS2XLE z7$XG#itHvh}>Pic%ZpYM}l(c#w4fQhaq!^`~%=0b8U5g-Am-;^WE6!#rLm5+8yvAMV8HYA&EaC z0%0|3Y^f4jeb4B6LT?D^^U0^y^smw1y7ASXL*EN@Eet{Rfr##KBrL#oult^ZXiBGu zm|qrCf1;{jCPrICzsCPakaBtT$|E6LIx}}@U7+i%y)G?!hw#{$n$Y8EA+P&*04vpi z6*W2d)#=I5ebZncd<=O&trPk^cLcnOVIvZx6lA`Qdrm8ZX(EEaim&&zkrv7@*3Ujf z`CTPz=kKG}JMQQK3$*C!sD0%1KHSQM&gZwP6APe)J*)h7$7kQ@X^xdMsn@IFMj2Ij zcW&RNy4SYLZ{M~X^WRKu`@5)2#w|Y{f7dFy67aP6X;fGm{bsfykVL$ybymus@ci{o zjNS+#)8=A*=g1RFOtF#K7Q<}TW^Fgjckuc2_J@v8@!Rg{5+9xJ6%%wDqDRs7^z^Hf zb|P3Gd>PTUrs&e8Gpx!@{ovKckr>AM4vux6`I>B$2(^Z+D9+Wt4A08|&qZ2oLhj=h{KKW)5&fSB5x^*8FO=U?Qp=pw_<^krdXncLFWaG#b|dhPKcz9+%|nfQWcpI7|K(11WOcg~dR-y*_IQOE;N-+KoOjUrF__Z>+G z`7Z>r{j$9`meZbZtdPRMJ8C79;8e))tJ3DTbKTAKu}_mUj+qdy&9`(FnbH&4NI7^= z!b!T8>uDbPPv?1^ut_Z~h|I?u+hO+#zkvt zp9GzzdNG}*A>F>$PC>ra>Psre@}2yTI3xN#X_%(WX!hih$k2{IggD*PU?aA0BN$8? z0)E_BtH^Z;=LY|_G(9DhLX?&k3e7kXi$n&G8|toj!79em0C`M6rdf$kOHen?XMvl% zg;EDOi>NdOAb*woyD$6al{@BL<%2g2lBi@sOpJxOU@50Bbj*&`ZjP!7f;zr_r0h0tNimB<-56sTGHuv^OLALHCg}ka^`o+L>u5Y-{QKtU!G!mJcu*tHdcoxiTxrN$#lxwHJjfEH=`J`si% zK3nCCx{))Dn67K-%s7kiIR9nk~mvIxeCVnC@-X* zH3D=4w@Ic*7FlhsFoUmxr&8>Hbd`Kv#12r~Pu@MPty_-*3W-j9dmoU$2ylgsSb5kY zzOT7+2h=0%2f!PdpALe`10S+`S_p8E#_+IHW#wVM@;RHD*AOIR6L;ada#y|#QRF2vGHWr&9`~`Neu%LD&Q}dNL(P_rCdDBgC)oo<}?1Kl^Al%{{X)UlOI`&fb?!R z*-gT@u9uZHneRZ4-8tI1c-Dv*ifr##NHtjG-d2bFbx5Ho_P)7}%-N&JvvEb4P=&tX zec&bRopDUe{!Qoh(dz-swL?6VM^p;6Bn)JWb1($J(2AT?2}-n1RJOLw1g?xds(-%w za)vYz@#bmW2fliQcEeuR3{%tP39IRLMYqbhHt*ptQN(_9XjPk#wr*v;>mrm+{W=mm zV~bs)i(fMD$l*OKdN#${vtx|L*=drBk zwo;%-aio&Tpit6lf-a)}3STuh+-8!0`-Z~mzV69$fWz(de1Jj^`TV>DHJs9yVwWaC z;u{ijf=}5ZWcb^EP4xx+Y}uo{;v%9jJ8_QW-)er?uex0FDrI5Uav2{t&KFz3GHi~; z?QT4U;K$1ZU5%9Jy1K=K2iXF15g62gSj@QTaPSqQ`WCJ}3f(Jv7h6#Hz{#+j>KXD5 z&KyNTPQ`?4MZNyO{m=KHF%P!m>d?T?-9P_JCZg+uUp4u7lD+RbptNBleuXT@5&k3k z=pK$wshiBnH|nX@E<#4^sfd{f?IIIgzeuUDM6l{yxOQKE`VS~&Ng)>$;=2Th2D^mS z`$zJ%sZ7^$rpN`<`0lJ;k_eE7j<^`)`y~h$^QBE$CsDIW=Q` zhNO_HoezI<Q2MOj9Fy;`bUZ~r9r)cf$A17kd5=BFL zz_Yk?&bIa)`{_e06$(r0m99(Ua}PRzJCvS!xn!Y-tbPBz9J~p^8KOb7*dcHjEFyUV zhC(CyUPvb1AKqx&z)Wl2FxLzKcI2X-IdX1~Y*k}6-8gPJSb<*uS2DTt!Dq<9WnE&8 zlqVRRe~Vd7J;Utl-N3S+h~LELp4)9xx8^vpihMd~0yLre!*MI;VZtMXdE7~_Axwm_ znCIfeHCKE#_5*FuI`ZdtdQRpkMA9^0n1Ko_5Cv8r>sc7KBou#Gm&*Vff}j?TyP#|7 zzTR1(H9K8?yNOkKTq|_XB^HfKD0&_u+Y0VrJG#u~Md9SXP}M6ptxGxZbAjH5H_W~t zlAVL2VOjCo_xTW_4GNlqC8;l8m`^{}hz>gUR)@7WJscqh57APfP8H_1L{%B`yib64 z*AZ&Z*Ue=Zp{;a?<;d%Fq>V&ANzEX4FbCgb>s49S3I_Kb@ipL)b89MpqOaV_6z6ka z;&ohxaa{%=IR|<}a$NwhDb@3Y_Ash_6A2l^|7=#M_p_m%}`CrR7FZ#V~AEP30t)=}H=H=#u z#^Zs|DAy?xirGEbJJ#M5AjKq_8`HS^;FlNPdz z##7H{;Xty6s@U=geXnl@?_{9mcR2)@(fME9wn)5flM^8#jBn$s=0ko+^1A!56#JPe z8n7?6<{^tU5zPxeSdxTN!$Pwxka?0P3!QA9@mlJ(ax z>4EoPjr5d2^+{N$so#FUolC|$yG)a5d*UJ^XX3WD&r`r`Mp{=;OEpU3F~ zf=z7K+@?mNB8>!?lsaAd;cJ<9H-p2td!3#NAtK)uZaV#SQ~4$rGNpB(K9a?p&BJZJ z!~iT482>>D8vXK|dDiKHkGDqkIUgbh->b6f#=jiWOo<5Becpa!dG?XwwzJt{E0|Zs zw(#R|6!Uvk_aA_PMBZ~+G9!XM&F>lNZ2Fs)*eL@ZlnBkpl+TVqZd&Q6J2h=SBXDH| zQ_p+p=eRj)oMw$W|LM;wD^31Z2sq#QI~lv~>VEn35s4)0M@nV+5pq@#$378X5;lBf zS+}4=mH!RRO|KynCKgI>ZK*rx=$|CgQZeY3)|XFs%YUQ&e6?6d0(0c?>($Sd^e3im zYQ9%K1*LnywEg&?TW)#69ah(2Xj~}iY+0Rh~6EJTrKF2$oDG&THP5i*O8Aly&V3ZwJc3-&Cu!>_;{l7 z$&irEuU8uGib5ovV*3z$(U4rrnToH|MH=yMrmO^RzA6V|ekl6)bFo3q3BC{2f7*e+ zR3wSPWJEzO<(Lk|sk45DLU74G?eeNu8Ag&360<|rZye{fC?)<27*fBfQRn>CBp5FC z6;+PMI0zA@-6?n`*Ll_`G8qe@)(ihvX2{H@bLJmrJp6-hl^~?_ly4cQ@P4A0w%6_K zN!0727ki7~bV#BDiXrh;Jg}mSd6+I3O-)`Qzg=A0wd`6 z%eX?Yj#u(2SOP?3gP$pf5HBP@tyC>ik2XdO)C-@t`zKdPL9cbps6r4qbpW=p(d%XD zyC&k@kkPXo`r(qg%AR~;&de<LaS+j@kZZCw(k^QP z2Hn2Ths2Rv(M7**2w#7@8O91r%;4Nh}NHezE&O`lG3PBO&p(CPJFTmoj)N;ULiDvEw(_vLjf^^bwwe91he zz^H@SpW)CQx7{6-sEg0h=Mz4fU` z0)puvu~1er;wq8{l*nXKTKvJ?{-o-zf!#@w<4)ANR5L%A^zn2OAVeENp@eexy_C6d z!TF3oZxct~yEK3P6=fol4l(4l=IK4D4$6o1rLrK55?JD)STnN2icWPPw?mEn$;`!e zdZMheF9wbGpx;QQZ5e7rMBNWu>_&z^0Clt4?%S>F7+k&Rli1Z`k@gd~_?8Riz?Gk$F|DEE`gIu~^e@Q=mQW60gKWCOh?H$4Qu8ym2)8}Hy&VZ3ov9^KC zneco2R%%M=olxKn`rzMBW{_<_bHv%mcBVN^5BB(aJOzdPG1I$%2mTFPD-n{{#uB1$ z9RsY;aQbJrx|6{3*ABw23OYz>e||ZsL0uKSfaamHrlF{ol9a`e_)| z8P-kHD^p>))PY$nPZliXIfv1}HU{*49P)z`N4!|~mg`2kVpam(rOoZeW8+Qrnm;g4 zE#Y4;G^*`hzY*&C!rb~G{1^R(5wVFe(}XAjQ_?s zMJ{(6uH4$-f>%d-CJc z8q}LXD7jJKx3}ehjhAD@R)t}YRP(z|PH3Ll7%iN#&p|5FmBnX&;KZzgzRUS=RXuz8 ztes#CyU)%3x>t{;?N&Zhr_RgOo(~tW3xl5B8mZrpakOV0w~xo%$Um-XKDRH?5xgy$161|HaX$x)C$ z4Z=2jxW?&coevZ5XRfegI?<3R)<6^z6ZzmfHeK4GS=V%9w%Ys$gTJ@LXsW2U7VO;% z5Xo}Ia}5a1y$s4g3PqF{Y8jqR#T|jGjGg=VjJqD|nU7VQzCb8@3yeh#f4?C60WEHG z?(7o&Jk(~TDju@DOLjAj)W4PcVj6`{j10bB@jdp4c;a_3F6YteZfSH??^%UCIjDaY za#BgPt`|SKVKn{!Spcd7IO2bS9$x)*0vPhQwiytqQ$v0*he$hO3dWhLG{SG@8ZQ7t zM@}8ki}Ysa!b}04+>8N#(gg#v%U?AFyvd+1E%3-ty8P#YjB`fkIe?#M4?j3!YC zw@8PF1Il_^V9Ip{NfFJ?pjh(mPWoRZ3@ z=BeE!c_Ybdy^EwE$$sQL3y_nCx&I=dLr5wY1rgFStk3WE+a#=)pEjkG=qj3IUnp!B$O-{044 zjxbW^%sA4%j!zxnzXU>Gp~U>5>9zIj%__V91HK{soZL?VnFAca+X8cibN6n+nl61VCJm`|eqoBYBr zBo#ROCPLcZ!sC)c^o?<8wm#@~lNfA6h3(WRE;m7c3SDudmwKb$$KEj;T(TnWnf=Yf z5)`9;|G^A`QnVO@Vhx^PX=)5AcfkfCQWfHsDErdkHLqC65EERcj@(8+zHO zKmwD+p~WIYe2Dr+9r4;J!H)qVGhxbabq;!w7?qPUsH{q^?OmKY#LDB{-Tkbo+NX#J zB2+J}GvIwj$#b(_W^=|L!uMIiSVae_Faz$?PZ<2gFhE9+P3~A?KJV{~#wC)&SVlM) zZ2;xBuzr2rvxgT(yOxT#^g^%Zp9BuL$r`|mQtKCXfgk!JzS^w*(lc#j-IG z7LwLBDH$L$F^#2Ak^b8|9UKJj|8In%<=!GT_QE@Y2(Q)8fvbJUP^C)Ylk`B(cEqsM z@}5Kf&z_HO?0xxWU zuE*|Kjb92;nDK{*cjBA>p)oY?D>S2e$d|CE7;h8U1vuW(PG=HdP2ls6$t9$X2R{1;a1O6CL1_@Rb6DopSWR;tkLR>2TLDT8!I4bHLeKK?L}OZf1o zrg^FJexNp4s;?LmNYad@_pT#q{3{{pwlz1JbXfZ$uxIKDnySaO9O;Uknyalqtl~Gz ze}zpKl0gKUtMQJ5y84^i-Kc2)MnS3=Cv5OEp4C#s$+;L1MNx{yE*z~D_|Stp&EAs_ zgA=M-JpLWiHQQ6zB3oC(O})Ny>jnM*03UJ4n(b1V4i0P>N&iV?@-t zH>Fy|Lzm6IS#_K@>vbZ5`BsQ zh5)+?mWvBhJ1IY1m0-+&$flvYiEq`8Rz8Z@JRoM2Qs#9;lE$a2&WzpASIonz2E;V1 z8K|g$!*AG(%E_-esw&k**t8`L?Eg<;(}0cGN)>VcHVkr~@1QkYkYo@G?<&7lPV#VY zYkmgCl1HLB51n!$QLWS0?J*n#1q>9)$CFxFLN4bAo(z-~0vZ96ud_=jT6kVjo)6*E zFPVHBN@816&>wbQks8sI;0bB-1lh<=o8$Mk@_Vk|WsX2r?#P#Mn5Z}yfh5s)G1oDd zRe$?4zXLr|%qh>NDdqA8osVi5+au_Nq4nmZZ%2s=+gM&OhMG|NxO-Dpd+x3f9Yr~>8?~(=9^nokrN|O@BU$1h+*uc^K^>XlC)_xF(Ko)5?X-FYQtVzD z7Q;5ev)w1G5^pTD72LM_+lNmDLRNF5{m;GL*sR#1{vS@hCe*f>B?d;rp-MgRn znoPmSLb4??VQ@czq9Lr(fzqa1 z$^jFFOyjmTYixRmcB+8ZZD{_jJurJ-xkL&`*t(%*OFop)XsS6uojS!;wp}(pwVmFf zlyq_kLbG5#)uQ4i^CJh$SS#iBBO@#%2Ux0|ye4NVN3l6NKqeh8b=63n_VL4VNW>E} zTOyROmEMc2L_-4o7;*ENW9vPa{6wz*FObmG^Hy=IcUN?9Yd{2`YQ~Go3ECuTXHt0Z z=TZrEGC(A)2pZBmplX8)vgrO)F_e?!DNBMAD@Zk&qOvzB#N@SwuIYD!)E}*w`?q~= z^s+gQSn7;G7=8a5etP#!vN3>S^GG_7yga4}t{&W#TN;a?kPJ7TkXg^lQ4|4g9zfRx z;ZoznW?v;$%r_o1NqQJJW=;gT^eBhBKy<=$SkX~X2lbZh!)_=p! zJzPL1PUwzJYC7p4FjS61pD7DIz#j-^Q!+l%zs$~YDiL__hX>pgQnn)1^;n5zY47lE z{;N|(M-ukDbFdp!Kp=uxW6)7>0OtH-h^KKNq7>WO)xFKdoR~FR9L2`_lf1n-rxFLo z=XaI4e>XNDChplPfdw?jNN8NP5q=9lJPwm}%}xKSNd_p@LOsI_B_Iu$%z=jXy7tzN zqu(7j>E{&PKVMXPWwZYhV8rDp)qTj1HfeCq?k`Q&hK#H#)&*+gv%I{gWe1u#_t|*@ z+GgJFv!7gh$GfOwZ()7ARyDj1*jfdaZNpE`6-$b9z~p3Mo!zG*UfPF%SIO2lJe%DV zXD!rdyVecUMs`Pn4&yV|NlaZW2PlDl(C%5!*4{yy)JjNeu(>(i-RW>+SJN)aWs<;{JNrxdoG_=R-VhW2QQJW=&7fI5RkH4TMeyD z=)M9DfTl)DW6R}!QVR7xS-MaV7X8T25eMT7_G;Z9v#S2En{Ie&l@nJ<{WiZqN zbnZesknWmyz@9{u?iJ98?^y@y*((mN)g+{rRilULk}TZThr_9f=}hY=4)kYX&rD4h z$TGanUB$gSc;{)p?g>ad7Oo_XqyGCq*;F||VkoijEjDWlRpv=h@vMN@BG zj^F@2^uPHndUGVC&CxAFSA$Soj|&)drch&IAl(WJ>=hl=>qFc;gfQPQw*ubyLi!)=bcfIc~_OA)Xcan970q70+9`ObX}HGE~n{+aov$`uIjiO8{{XkH({LNb+DVGcHQFaDWjB(70zTgP23Le};i4KvyUW$ah2h^|oC~SHDp;eMk5dT^=DAhxgmL;)V^x z27lyivyou|m|0kx+u~&E0U+5o-dm9t(-9+|?pS9f&-7gG2QNUK_ zLo5H}?imQZC@>XGiV?kGoVzgg8X!APQ*}6NdSHcrEjG$h{aCJ@(VFpuEaR5_)X2d0 zYihZ;6Qv5`Wv;KMprLDwUGKWqezJ5M=KT`8XsQ0+`)zJs1s~#DSn=59uNv2*G;^rg z{GAyIUV`M4o(R77tJWtQr8eitp7Aj2{H;q{d??mWCW>;n@5u)l?^j`^6C(b=OS}+@ z+E_2~vW9&&+LoiNmNW=Vv2_Biwcufj4=u}r=KZI0COG)r|HmZZ zvs$`KClPeerTj%j=r`NQOI-u3yIx2VONuAc=jHmKOmxtbC@NAnTA~_Gx2)3{Kj)!I z9gS4?yc(mo4t|LvhFw0B^3y%(_l|dX{X%N+9Q{Q0*gaT3unjkL3hD9Zs;P+tHT87Z^Y?8CD$NCvAs} zhh1{&I~`#}h|> zWAP`)MHr8bYf5GZ4X)V-KHcC2XI{b7En*VRRmnUKZZB9B%s!)MNmvzv*nW3wX#P^@ zs>JGS(c^hyH=58=FkJG&9S^1!;575GVc23DscSm`&Fy4Mew5CwI*fF6hnCGD=MV{x zOKVD%yuA&Fqk)Y_KqIoVA3ziSX%82U_m{#Wu1wV{#DfGein`GOXu80UoHQzkO;P?0 zjd@}Ys2V<9Tt)oIBt%jL*ZjP&xl4i(7_}0J*A<{*R1+ddBt@0SZU|e%f8jd_yJ^tF zmtMwQ6kqNp7~g$zB}UL=h)Pq#i~RN!1Dz1RIRY^(ovS!-g{8L*`?0ll2G)-txeDNh z)_)|3k370Q2_z(O$>b20FXA6RtNc)Iop(tjAV!X$gnpDLqk1qMU#Vw}l9{k{x6zwPJcct019!QTQ<4lBI3;m0@6}{iz3ESM;^*uVw zTDb(1&-qZkNZ$3P=d#|tqT~5c%#I9-@|t=g!(YpasT?4cwu4-^3&n4+GTEjYzKZmm zoM1+`)1yuGan@^B5{*11%*;bQdIQk25@wpYPXItwVBU`{aIHv&tvO=hh&Gyr#j}T! zJ?{7IhX(zSoMTw`4>(BHV0~k_BIos~F!LS0@*V^=--A>QO74%JoxY-Z6wXyveWI^v z^4k+t_-Iak1;N4xKjIVW5ZjrufHhkq`b5 zh)JV;GQ1e4$)FyRnWpy&^jZPONk{!P8`g_t!Hu0r4?PO^ym8eywSthJ2nbo1OOn;K3JHfIdrmf;;BegH| z#IG7Kd`?>V_|+iO^L4^3Lt{^2t*7WLUos2V zmfxl%b=OBy=;_|w2-LsV&`EljMJaBfvcc(O!1#^>RaObT303n!q-J$ zR_z{gZU6oaxU(+ra@qQ%FJmh9n<*o%TQYQXu=*0bc_h75sL{sCms(#GZ zX#j$vNIOqi1xak&Y=kU}Z0&`GwSmugBQB|gQM5|wR6_iTFmR(W)Jh9#!A4+=!cXq_ z@F4a(>v0rBB?%A6>-iK~!WgOrX+gncQarES(2zmHPu(!rz>q8G>%eJFMTd_@qp05g zA}r3aR!gMA-))xvor_#h$KnhoQM8LzB;mtL+=2~`#YQUpy_#P(q7L`Eyd`voYwf$% zabTPb$9O(#{D&&S%-5ODp*w*Wk+Nyb(@#n^fr7)kV6M%H&aA7xMS1>xe_cgu6horK zLD!+DHNkDRV?2c4SSwDZ$)c#QiZDb5FiP?Mnn^_}MJ+_nr!t9}zU{z*dtmm!f2`V) zh`Duv=VZo{N&8TeGXXF5Jt?>n=<5ozi&F7#6EtpDHqIgI?o z;Q`Z~6miij2qXDk7a0IG6|p{@Axd7zlz`l#aKYs-vkn8|h(-~k^XFpG@hh~%c@Dpw zG}UBM)ZhmIKn-XdeupZPutB_O?nUpt$QpDV%RM~apS@*vum{b)wK?;t0r3MsfEN>- zXEBhUd9I=|vEbHhXdGqPp40{fegJD5wslUtqwa@{F}oH3oSv=4B&?)d9%`tE3G7-p zmNAPxkIGR)XS2n!cGZi;Xhr1QCb$-cN$vjl@`85*wu?QvQG+ky>Fo=a6^R2K&aXk* zT`An&eX8XVbNH9BYjX=4*s1!p{rEdHkWP*gw&2NFsyk5F+NDs@etDg@AXC%;ltJw~ zQ}v7qC)#m{{kE0k1LPP!$fdqti5giiop*~M=WQO_pZU06u{M;+Uk$&tE_=$<>!OIe zSKS%1V99|qzhB`srnK}|VS@IF-h>X#+Mpu-ZHpx$oR@AyOFEhKM+PAUDdlCe#7!T4 z`*$apcD&w^y=v(DUjI8TJZ&+!Y7O(Ts88>_mYO85g3u4Hw^-LHAR4U&hH@D5zN2Hd zPs)aa6F?y`h$854t`dg7D70%DrO50~Qo|*S6}5j04wsV@9aSdgw%grA$Fsd}AW8rY z@fg5y{)3j@c53CyRD?!Mq++S)7p?%LI-HY$D*|s-)yKx+4nvBz7%c9~Qe3qnp6xX`QdjQF%?@R zL()=(x;>#}-i)(Q!96V82!0N3+nVWq9gcd4>>Tiy3APX?Bas>U}+nSPt->d;%8|krMNVdm8KE-Ba*^PI~2k3^o=%)A2 zi8V(iM1(La|5uYiKjFU@KAM9d&i6N3Ji?Mif$&#^z}C7KS?{$Nnuxq0>zOSF5ss#- z^YR&*EN+zi=A1^RUx7P7y*e|8YMM}>ge=gM5y{Xj#rw}9PKkv~JPE_8(5{prxEDS2 zq3a6?9Pn8bG@JdIEbiHB7Kx4sQk|t*c$DQ?O z27Go;!qkKCWIrQES3b}{34?m`3DJB5a~!N7V1bmmx#CLYYH2cebvO$O+orXpNH*~f zlD$QLFt7hD?-ys??q8=}1sae$>@LTCoX+d=BELPRP7j6B^qJ=&S@wP2!#&WTxFo}g zlq+@AeK3pk`4^1Pd~X-|hv#&-dzP#MblF|NZdcV<8ICZ!R1CY=kKx4(2&oL@$~pK4 z|1-&HryETYyu8QasDICa$(@(JWuB8Ubs3q`yE|ihtmk||ml1PuBGtXOL`pk4=_8(c zJ$<#EmuxQj2hrfhgBT*v4F;%f-{tr`Tkq!Dhsb=GZWnc*TpVXN@lV1+bXDO=+n8EMF4 zPcrs(;prT^XK;WX@@b{qz*rjXH-|HOj9u8y?Pji>FD~#rK130PRz6PuRaX>M3(I)5 z;731mnw)>FWYz<=&5B3pZ7+)Ox_FRB0W!&W7B)nPl-;tyzR!w{qit3Dez8z# zWelP=Tp%TU(Cm}g(`H0<@gM_Y@b2c2BsV*?yZEqA&bXMMt31~-JHvr2>51qY$2;uk z2w{M^)PY6qgMIOL?=G`8~f zn>o#8uq64XO?JH(rLK{j9Py^0Je(#``*Zi11}EY31Y^&7>HBpbEi{qu)Df-GtK1Mx zF-&oyWgdMK8Wh&ZRH8DNCjITn7`I%mvC+-ZzI|=9WL%Ol^cp?FgR(<*l9fMMDkBIc z>?+#FxVW?E-OJsc%!}j?qp`^fk!e+TI7KW zd%?+SUw3l3b5!TrGe(VMlWo&!LwPz?5TEQn@>c18sCqLKV>9{o$q*j_8c=wq^eRjP zBpSrusXxl4qI@`lb>tj?lNB@e!K4|C19w%~w6M;#Sa$J-8x~9?S&TdO9}ARugp2&_ zZRl-E@}Sd1qXRNFs*X4f^XtlC_^R^0?fl2>Qp-KjO(7~gqdM#95)DH9(IlHAan}67 zlu&7<``a@z2XG^UP*-E{d#1tXy(b8#5Hd`;vT0E3ctUs1-E2+0_ z^z~w_keyM-FUP`cNfJ%k`8b)a2 ziFvid-yiqjCe(KhS$6|t{bM;Q$d_1HzW79;JYB!4bb9_)=E{Oh zK{5;qT^CSvRP1saxP^f z#0HAgfKzsLrVY+naRN z^+11JjK|&nKF;LMQ?Hxg0J9>L=gk_2)8|+srxceH$#U=^Rf5|7CLtpoGqAF_A`cQ4 zhfuxwA@rCb!9qa}e@lk+H9KzPCktjPZl|8<-JcMC5__5fa-mW+eA3};K*0SN0AD6Q z7jWFTXWJ7u;&p57v^>SOhNA;n#<<4be1MS-G7wi}*<$EI4?xEni;-%)c}OBNtp@Zv zxqX``@`&Yq^nfv$|D81+?bUlpI~fZfETg$)S}~Bx&%!wVx(rC!Btmd;sJ*-fA(-A5 zt<4{^1%z=IEK?@KHblz$v3pqEn55BbU6_BCM4|Mvp^&a4-WVyhi?tQ=IsRL?<7!Kk zyJt+xtS|&)S(pNp}|Koqb&)0tx#K?@v-c^iU5boPE`J7PSf}4Jhc)9aEPc z1e|5x3zF13%T;SvKx~8o7e0s_>}lQp?J2{IAu^u!n$bZld=v{*7E8nTts$;$->wa} zd_h0lS<_o;-5WMII0;YT4H@sCm0O3$-hULmP-cWCg~Dy{fr}F_sOs>h zJ@YPsQ%S3k0b!qZ+6iSDhiC}D=u8UXA54Yz*mXSAxg@bpxmrmpLA5WUln@fc6Lnx5tD$u1i=;Fi_6won!5) zuY2pe7WuJ{fM*aAlf^ZRt4sf*ogv{&rx@^f=@mxcsX;a@qz4ih+VN(FrdQj&e^R-- zCZ%oC<%P8X9dRf4hk;!}w|sTaq#YN5QU63BRbIM$-X8*;;IE8xK$b=DKtlb++6+c~ zYYX-yS+(t?&znjVd%tIlB4monm}ZP$T6|Zuhg1*r;}sOewgtxoj+lSneUnA2%)aht z^Ahu&0B${YX#%Keem!GwOrML)LOiDTtl)z+HUgYSDH~dqKeHW zCC(3N+Y$+0N3?-?k6eNP0#+>OpRe5t7@jH;z8V=42ID~iZ94b?A_LWry*XE zv1h948QDG=y<2XAJNG8DnU7!A)5YAG@4i%ut_pO5I_2RwG7}}|*C?#Gq{gZ2^f+<;|9mu~m&1#>FDS{e85CNh-^S4H`n1lU3+bEoU)Vc@j3rJbioADVuXxCJ5gJGuq>LXe?u5W)_(+6 z4ub3PH9usr-+sADvqRZ#P6*LBT6S?dq3s9HBk8UNG?<>eVEU9s*kS|=7M=H@e?3xv zaFYW7sFzXPT=G%3lv1;Q|AEJEerXgSGEFL^u#=J8{OKTjP0hI*d45d;_X08|WWeF_ z?+2a>1~#dmgEr5Z+^O$3AR3%90Fe(l=GSAn!mfm3x<2KKMw&>yj&>m3c=vC4rh$LC zlWfvoPPlSB;uL=a%J#xCpP~&N(FK1{T3C6_V zo#vyX&Ly*bT^p>cI4Ui^2G3s$wR2&<8l&l8IOqcR#UD?xaHm-yK~MRfxiH3e)^CBo zp>oc3`qun#R*eEoT>qjOF}60!T{5xpABG9OZYW#cw(vGGA*{;$hbM!e6bfalYbxr% z!#HF>MvfhYB1G71j@4_2YlUriV($pduJ z#AS*gi?U7Nu^ynOF7+PZN~C`jw-AV9@qk;kiqq(Kp9FD{IS+slv>CHIuQVfCS`F}L zsr}I=cc506KT)DyX_17azlvVO&~rub+C#`6RTj~yl-DxLhl{^*L19e^W(sdJN{FeX z_!VEoH;ejT&b^+Wk1^Tr8xdgvCNXaR`PxLEuxJ&(K7*{?GoLelC`+i0_NN!lgz^xo zr@+}LFOn!V)n zE8#Y$L|aYLXj_Jeq^lPcLnYJV_YI19B=dM)&FkENz^^U0Z|lX~k}01r#3gBthn;+` zyWb78DZX_6$xTmpqSM+pM+kq^Dm%Sr@Qa&x6;RB66en?f`FVwO%D%(6Bzgty+S8VJ z|AUD7i;2wB7XN)WR-iuz;V3?>=S-$MXzDKly8O>))Kg_X`r26I?hWLtI}IemoExM6 z_jnSTk&^_Tz^8Zm?m)gL^`?J=zDP(ufm*Z^o3g@xsuD9ZJ>;K&n8VR@R^s~t z@jyX_lRJeGTW~`AB@r9ibh&yx_@;)AtpujFsn?slWaqtgL1BxxtF_k(AY%TpLv-9h zUi2DdQd?V?2Z_u)QiCurN=%yu&#`~bWCVY?Lo`)OJa8$OqJ9gWpst2{u4(v)8vpv< zSN7Lk8{H(|4I(0!b36Rs^`-L%*`k7cC>OxQfJ7$R=Aw|`slD_BZ1 z-|Lj;4-67g1IC~aFl(Z6*kdy6=C+@(T_=CYs;1Kq2X?8boEIh-&q-EMM!6<~p7{5} zAzc1XgH4!EEz(3KTh=B9l2~^>K4@l@HZ(VGh*4u?BpT!S5_WVhBa&VEU18vkN3zRP zsG1f4!tn7nKhR7!t%vzQqo8)WB z2bpd5Vpa2)0joH#<{gCsHtk#4u6!)*weHKcwk@^cM_l*bO%!XwP?^Kvzt`~`Zm%^p z&Atse;ps$Wd_OFM**!0jT6%!jcl0SyVtZL*-! zoBdTa*1H!o*3^MEkD%L4iNO;e>Sv1U2o;adQG13}1H|1-J)8dgJ0HA`WaN;GU7kE+ zL-)=W==ErhCnP1(ISLiU7@Jcj1XEiyt?>uY-AQ7369YftGE?*{9cS^zN%X?0q5Q@{ zZANW`jCU0_vII^zpJ2EzD*l2%5QoOeTjJ?fcukq=&wFCREUy|!iPQu>A&rG&FuJ%0zavOo5)mw$-qIf-P717#0bD@m z`F%z|UUMXWEc=!s1-8U(Vex@PPs4dlFe2q4y?t9vU&<**I2X{`=e5vAa{Oca{>X%l z>;0{}yz1jJZ?WWFZgJBM5WZ z!h~U=$C!c3Hy(=_bvq-#J-&^hA6rlwL}u;Ka4*v8_Mff?+jka_R6~n)LBq%&Q(9yk z99E?xCn%?ZeTO#$6BCL+Niey9?0$D1Rx(6o_Evb88hi#f#d?Z6vKG}86yufeRMAqq zMG^j^2huBn6G{KT{2~($rnr6@54%7qa|B zOf|MsdUW!)xycH^WVg6Uj;|x!nx5}~-_WUj?_$Y4hjOV;mC=~+K(Xko6*3N5LxP!l z{c=M`OY?9amZ)5eldB$FiCK~jQsoROnjaq-49o1@s!OkA$<@^O#4W! zt*Fy!a_z0>qOB#OZK)#!W)92qLtVyXTY`B6AN=K}{qNS3wtI~yy7u>u3xiM)gIq!p&rZ86|vs`*ef*S0@}S~o@`tT zjW!N54-f>RwyfPkVXL7}L`{P!in6#An#8)bKKDFc-g`401ps^HNV~P+5 zSph-?h@Kv;Uu!F<6Shu{M1T5g52kb+Kx$)M`u2;Uwm;VR4mFw|9C-8VZyuO~8P^E6 z`OmkyXx(%EG`6S)pC`>OSe#_Sz|RvR8`oujZ-YHIwvfXKo*b+gy4Cqt&W}*CE}~Go zVZv9M@J;mCSHd~<*;j>x<3%i6p!2^P<9p??p`ll(fyh;03k4P?X?>WQ6JR>tx?>X9 zs%FJc2ZgOt?|3OcROXMyh*Nc~e2cJ0?@d9(;6EN^L6mD(+Ln<(T&?G;RpI#0 zy~qbS)8AuJJZ}CmU2Cj2t%NQVa`2f*=SJ64u;&$;FSR;S@PRBim6%um%ooS?zu$L$ z6x{Exg&0EhT$-2AjPd=S>5@xh+QRqRZuSJ^@aXi%rt}BV%F{JO7%mdfm50_`kJTIU ze!1?q0p<`h04EV5-PeG@ardL+lD*hxzkHMM6SbnKEJ3;vWe!X5=lkG8`GlTaNMe&kt@x*xaK`gH-Ue+tU0!3`KY+ z_dA)0uID19WZ^TS6MAZ|)qM}0w<#7P(m&JHn^Sd)K`m7RKK*t4uNShi*k#I8U?m~U!8Y2sO#gf*n%47!=PReJ&HhcPb^TZ{YY@gp0Fz zba+?3A8xOY>R)FuW7V6h0YsJ44KdOqe6|5_2O_SImjZK}@!yv)agL=d1owW&f1BXy zsg2944+AL?s?Dd--0`mA)r9E;gfO19Dz1+n$_TKWmpq(6a#v~eRe;PBIOi9bq!rvX2 zZdBz7nv8;f@T`$A<29-2h^&&tovZ?z8D%)R z5U|Jt@3haFsw&x?>71DIVRR3X?X_YUJhj2j^w^jVe88VUEVE#5uogDjhX?W7^PVfZ zuR4oBr>KS)!Inxf8Zw-O-&Q}TaW64$_TkqY-1fG1=5mp1cN_Mg;%zZJwydYzub@}A zMm^tFqoVrNuLDljIu}{!x{i6=ggaM!AZmWe| zyI$fmlfdppno+iJWPS>sK-8}1J|1+aUweT+y+=LwsNx}Xk;Rua1ye+dSqT1Te1z z+d|M3k$Oanl5!K`h`{rH*R|IVU=eApmS#3lXQTC$)`H~>E_%f+?=F1kR|@KXio%{4 zbRUs7k(0z|qwq}eBWfOl*DN`G761l$3f)sPTK`8D3 z_p<K~hS3HaD8Mr{sce(sMm(PWhEQ>`yO z<(|+EGqW!=?0-IM_bj952YWs-pNk$AXx!B&l;&=H?o?Uy3V9{(VJ`O<1&@n*4@k+l zU?`lq22V`Y8i(a#A|A#?$@9xZ1*Pi~#=hWP6$pOEKJjkvc4n9e%OA>QB_~|s2r?XR zPOY@wMmhdZxAiU1R@quh!9Kz{K+wACwmAVo_4qw5&T-ffAK%R%zlQsTNA2X;H5u#` zrg9D8ARkq@H;6Ny$_i?Mi&8ax5hM#$`{eIRMZ;xdQ%hn>yrqGfrTa~WsQ9_K=oaM7 zH9TCUTi-}O(9U_DBG{b&1&l1Nv=UyDmKlUB>I1`oS+>V$iIfCDc}f~&#~9yBu2<>;Lha3bBuQ;O(+ z9211r4?83}_VPGvVU*-V(IeJ#@&i>!t(2&xgJ!3{av;CVm7iAByxzjPD<}HEd!1Bq zcOwC77~s8PvX!?JIR52STAO43jyOH_AJwG4Mz`?4$pAx+uPR2krkVJAr2m(s&?HVK zjl+u+u8;qt3^ye73X-JROnTJz8sqq2=PT;YB!_oupst_E?DJBfUoeRSi*|#i{4h77 zQh1J%pj-Q05TCKj?y&Dm1g28ml%8>J*K~@X6YGV)y|s(W8F`#Dd+RL=kV2^+`Vw;! z7^@y^yld*^%6>0SbX+)ixmnZdy<=#%A7t-DW41&#{V9X=VZpud zX7;|#q7B8l7~!WJWQ1gG6_=Kr8fp|pFYHy>D5+iP)LMqk$yeU&e?%F(z6r>UK30ci zMP)JG;2rLiB7wTOYx0X5qcqX)ZHwi(yd~*Y-vcSUOL;e>yBN@wGS^7Tbg%?JtK+fz zwg0^EboOq-r{LG^i%hFkXW)8b1@t2OtpE4w)~+nEXHks?Bqtk-6vxnbt*3B4o0U;c zld@Y8^3RO0b?ISx>DocxLhwk-u^`@I5p^>F8(RF8)TTuE-;Qg1YXm6kfqq$XmRU9^ zBG0wDH$8=7p0Tdhiq9q?ATR;?rsA^{S}XYgF0&-(IQkebG3FTIa0HSm`E>$S^KW(V zmEkA(r_a*g0tgHF@|CH+40F13x@GhwqcVcJt{dzucTiKrB*e!-pmFF7Pp2m|NVh3X zQvJ#&VPP|Aa?Ql0_CdL{e-~*yaCYT^&U$o4kuB>mrz$kHI%vyr9wbb}M zfA2w>p1_?bYSW}8#+ROBf;W|7<&)#0BsT||(Rfjaf4bphS$N3N*0OM^C`k0ct52Pa zll^}e03YnLCg3bddtCbYzWky(06%wT7f_YTnnMU!3s2%GS_`_5inwBL{`$ybh@Csp z8;80ORV$Kj_5~V!ECw$8V%ZCQi3=f12~g)@qxtz+ugNS&IGMGh3bQ{U&(9$yTmk(G z@}PreR;ViCCv$hx1mnqXPSp~ZJM9XfyWC+1+mMCu%Ns?pm<&7!vqj++JB<5Q_15E1 zl0zzsfs&jn0Jy})h*FwD#e;^+b7H4|#jrnrcO-3V{vS2Zt3D;{TMp5zc6vVX)%3s5 zvt^?TtG0>zTI4uYqz-S(stw~@Yn8P8I$|NqOoVQm|NWuq9~7le36rVRI_#7%pE<(B zbtrbQm?^{GgbL;W_AWwYR>?3LnjPWgfUeh{kZOOikP}83P5GOxq28zS=E$SN0l2!X z#yH92?{T0lJ3mTCvV+Yf_OqSPIN!3mXLrb=#_|6KbYu{9E$oJ+Z=#@e%vt(Lpc#(% z%aBpeU?Z6c3VxR!L~W`0NcQ)-p@j#B&`|bQ<|m{P!J$f z^Sy^BfoK1zj^m-CSoZ!+qNKnaoQpwnC<2Q{dmUau`>R~cnOYbW3Y#caeX={f3dEl zI4Yx7HZNkrjiT&GCl@KBLwOS`p@Q8 z=TjYSKFim34WD0FmOuUVJUvZ;$HUaks&{;{KlgkS+B_*19Dt`q<}Eo~EZ zp*MU>?Vy5cw(+Z8Q{PXpJ0U2hD_n_a0q$X^N#j`Y zz)z!r4aDTcao(Qo^ZOlBq){Gbf-nf@eG*Ua9oQVj(%L36Gg_VyWfFxGvD@si+b2lV z<5(tYs?(0mzOA_)*$Lo=@@Duis6wYVNJ(S)=NvH*HXujY7a=;~21o2(6ry5vDvgci z*mUK6S8YDh51tPFVLZMy^{{KmT(h&&*?9lqR?S14m2I1j?Uxckub~aZWlCd{cHP1w zFJyJ!2Gzo!iL`1GV(U@J_>pOSDjN0NDIoa8mE7lozhNwFe-(QKc{>Hd`J_MbegRZ- zj7)=j?Ec)6(rCHM|2^oSLlr4!#Be zpPz%*?Q*XgY5FUzmzjwIf!PTsqNb=<@uDj#W4)OSv(WxN4DTj@N>N}SS>mAj*-gqSDLJ-bN1G#2EuIy~LCex4P%Mo7`!7h!nsm8} z9`L9aI2j7b>Y7I58H>XPOO%o{pTn9^W-NGM!CAGmuiDt>6V&a!V2aa8v9T!lP(_-%97$o z;%cIPo!WRL>#bu$9|5CsbU6q>DZA_a(WY2xj*-hIdQ4CB=A?{2EQa*~Z7%=g#gpzsXI{#&#gQ&*x*%0Bkt!;WVxoXQ+Yp$dii`cbCh7onO zI4YcO&$XuFVC0!NhC6%81fq7Qu>6ul?d1VDAG7K!?dfRP~Nn%t(q&-{k0)U$uF?@q_S6CS(k5bFMi_3o;1!@ z?0pt~7ky16 zj)~MJ>~x-tVm*&BQbYAh|FZvYO$*`A$Jn6~I8VSK9)IoW;TwtrVUb(|t`Ph+i2%3)a%@XjrOcZ2 zyN>xM{OA-!vtvtO4I&F5)L-Ag)>c4XPVC#xx#7aLy)LO{2{;m`Ru$7v5PteSF+(cF%ABP0Me^CBbws*45JIVPkw1 z_@J$2U?g@1A<6Nm>ndNDkd%oyA}5~PFbE8@YGkuq@{X=!keMbvSiC=150VsP7o<}> zF{TBe(g*CCK-7<=dX;BFjffweEgQPX8@!#CKw^0A=vQHji>enmSVS>;1{}xdpW8S7 z^m;AKCKY7)WE0B0ztE9ePz?zCoG5qP%pK=^H>9bn{>*{&ED~3TBcI=f9|b<%+Nm$y*9lj9|iLd{)8UEz|Z#jm_g4b?rrFT!gJZ79|?1753hd}HIp*3=m=Y! zb3}Ojqh%zI=Z)hC$9?>JvH1HE^uCU;tUSuw+l3dQ1^ypR-{DW?|G&?%=OMD4bL?am z*&H)OXsYZ@vLc&fhGd24Esmm8%1SoJ-kFKaWAEeG=Q!j3ozM62`27dx9_M~Nuj_dY zx_qtTsh8xoBsyAAo~phK%WZ`$eC^kQ`=zb#)mORpC&W>#Obch8Rr~|(h7kAv5GjR~ zsadEaIzCzhlJrZ2q?=>Yq2KMS$P^?d)7yC^@%&~W`2vY`N_p)IIvM@cQ+YC!2_z$L zwZ|Da{*!YfnfZfm^xa?Wb)k+eTg6cJ$uC;NWyb&w>QsAqA~;=y>W8@on@XwMaeP2h zW(i^!t@c?}sx5EkRsB-vZ{eltv`=i?ELg-2zuo*}4`g1u)^TmNe{lVNliOQ}+Ed*k zP>hoLQy2r_WUL(0x|}9G^NsU-{?p;jl~^k1NWsb~3UmzeA1(J!(0l3x8ije7Od~KS zEf9~}EW+|)FKOh{lbKl<+t7E^J^;+cMY1xB?UgYraUSw8M`+qPKui;3Riyu^B{7YF ztdH$@%EENfkGFkv{d`IAoRh_vpVjXe^OiGdGHNI8u!l;vZlq8j#OC9T;i@A(KW|^w zMzC0Nv7Lc6Khue3N$UwX5=9T{=6uTNCaxor1=K+l9BbEc|JLW4F)n%6yM~`I+R<&! zaS~pLyc^N-!|Nc>%d+vxHrQ*0ndmFQdgKG4@XGR}=o{;w3)``Kxe^9zLvo0CH$k>7 zw}esdW)%U})_eJHOj_XKMb72Ziz*_zc7 z8Q7bK_8kDKLsMeJ{W%K{oxDKs!&{VfXMfSiE>M~9W6w(`5PUBA4h$36AzXHR(@_`Ey0V|Cz4 znbD==cAoiK!(^a0VmBpdJK0Bl9l-r|y+>U}6wi{5divqgIGlbjtwF!*@9e)syvO;l}jBmy=r5{#H&?~utl zVwa|SG7&RsJ=Z-LkBg|`Ow2D{9=v;9EABh1caUMLYZYQyV#g$;V*j4n(uh}@L^znB zp-%TT-G=gVC?_(2YBaCP!eAgnPZwHVoruT&B39Qi?gI1~eUR&;rD>k-D>(3P@62eh zRGP!TNyX4n^yJ%altkSLo8XP$`gs+#Wq4JX8A=E9*QUx;1RMGURY_R^Ox4Nc3y_Bs?H~ZTVwKEvWTX zP`bZ#Qajw~`0_G4?R?}B*jSs6#9|yoxuJ!S#m+y7=lPc8(%qQ*jda96jnpK)1G%k& zThu>K;dZ_WS^d=Kmn22~j0ts!c$&_VIc+c1Rzqx8%LfZ38L=7PI*o5>gK_(U+Uewr zq0!LG7uUZ=4kn~BeC_kM#5pEsm|GOL`V#lxOBJYo2 z_LDz=)n+`#M7Nr3Ot79IQ+iOB@_*eK@<>Z~2ELs9@Jq7%oTA#N+_PWlrm3$sh7xU) zxTQBW!JI}R7pJ%YJosZ~z@CKD%;0c|jKQCEe+6TJKbN^rJB8{a$s(mFWlMJ|Vg zET+)Wc3b9$-vI%iZDVwGXuk;Ya6H?wXO#({z9|#H@H5-!OCnxM$@+X}KRrRy?z1?{ zZNaJO^c?*oDe|#=OZWJX`bRf!YIgClFkTu-t`k}#d=8e$GH1W8SvWS*dfL1DE(k(3 zFz-}WxKLuL0>e;=Qr18@cgep3?X+!=~fSFjV5w-s^H>E$l|}U zW)Ecaw?{-l--Ztnr)eQM^suVp?vPT`grK}?mO%#yBUUfFB`wUoR`Y;js&j`hzX}OE zsZ=AUPNMef<{*87%G2y$nS)fBv4$?tyOum{JyWO^?B?py6_`kA_YM&C*duF>lU~w5 zQcu`mLVw+X2X{PxAQs%4zYu&@{8X7g`)8kUT5cmOLE^s(1WPKCQj!Ld?ieo61bcXO zVXEw{gw)qjV!L#E7P|jvSn@DXb?2-@za%F6a49ti6m<2wTXvo-Fr4&4Yi(<(dtg#= z+^a7m600*x`|P18xwM|S` zZ`Ak%O5q~r#QXfWrBWQpX=aTt3({E}{GAVCH$yd?qGb0DC@#!?2I!0CgSN8LvvuAM zjO+~g-hHznviZy1yBG}YPTlbqyk{2W{<~mx=1sw!L7ri;9>W}kPfzzV<_oT~eSEaD zSrcVoHx|)-?UOxrWEx;ondxu6*wCb>f2X!QM#H7xMF@FODL9|?<2#_s!SEA^5pHmA zW}3nVg0%hs#|ky%_~kB8_ut=#oE#*EOK&@Y!QBJ#v*pV(N%u5fT;U>kC+k}BZ^QQi z$fNfUzE1Fb1m^rULctt(yyYs&qdUGrGT2v9V&E&v@^(WE5ehjvM+|)=nXX#nsnicQ z2bTsjW#tOaR9BMpt1M*c@RO~(W{-4X+U;(9S{$|^w@2x)m91y9zIzR-=x@;rR#EfY zWku-TR$QDlOpoKYvQTB~jekE-Wctt~CFkYwp^>7?_hNid_*tZVt6z|@vY!Mo5`pVr zyHO1}frr9i9Vum0TyOnN-4$1#!0P5OuU0{2ybhrw!a*FZk*?_iCaZZ2aevP~SQfGQ zE9+MftDBfMeOI>%7N~h+$Q?5;{VA=z`Pu%bdJyP5BOjBRzWE$n;ZFjf_ej?Y%))pj z9R=X~_O~+>ucVRBTLyVJI41A!VSM9tzJY=y(F&H~vsd_f3U#o}iVJ84 z&@<4RY~$&ps~{ZMb&;@L=f%|&P($-x1ddJrkRa;ch3VAK@y2qRUi(KvtqdaEst{bC zKRVcT1cSWGyk$a<4v!SNftft}E@#5vt+UHKS}I-*@HN{ee9~>zh56QGFskj$sR;I- zU*7-mIx-d5@s4Qb$(JfluX#4PA1OlIbO@@}tXA4!D$UH7V%(1`F3!I|raFYOyatY! zH~BXy+c54Q-Ic))FlF)XE2>~}0mD2-K(#mSitEbE_rFC`^GgVlPb3XoTl)r$Eyz8% zlLSo{zv4ws@)x{8ZM#NkihB}4g@Gf=Tf8J+rbY6RVxD|d6%jZrHE^dz{dcsiu%41C z<>1BL7fM^?txeedH`u>w_-((1~X7*FcATV9CcLsY|sbu!|zv-GKh zF`uK5?nO}qhCk$tU#eu7Wo}7+({{^3oit3fpf!2>qxFZqGfIuOV@N(Ws$mOGueoOs z_C+_a7g%%KYdD-;Gbkh+v7~RFpZ46|!taB5Is9F~HCJ3!&J^kST0simh`$0}6xKE7rtlVW4E>_$BLTBAv4h9=LzqS-`lJ(p0=@?LO@kyIQ zi?Q<7rh(zw051IW)O4Vsz?i4#Z=;xQR_A&pY3@b+!aNPO(|D&JgivUw&niQPvx1X3 z%&xe!9iIXXXHpGj3I{x|Mo*Ip2(k5NX1KnzQ8Q18a|92?;4A09)>X@NQvuP4^;K5E zg*vBbvmlz!q?*hsw03T_Fw}K9<8SA|+Q4>c8FG#md zQ3WXie|{c%>X5k>bV&yhyRhj7(|gW!!T0tBd2@1o@Vp)Xb1v{E6SdbsYf8DHOQ=?o z^nDbvo{WxJxYN^w#K@#l5gp}4t6WDbU3S7%Wa(fJMU z=}u1irP8Z1x$JsB@)rnv+r>|VlXYtfueFEb4n1-b^Smo}Fq9Ih?}AEam(4O71Qit_ z0wbMo+#Cn-?RvV(9P9J+g1%e5F3)XunK%f_8n9~=2e8_sT-*WrSI$M>f3h8#lc$&bOAOn%Su~wzotD?3 zScZ>Xz8_+YJzBkE>75xJW2p=ysYNroKyj|0l$>os>&+UEM*9%$qdyrAS`V^lhxTWF zLw67Sy53G(UuDw7O zgI^8kzrmo{*4Nf6Z|ZzPMEw1-{4yg_oc{!Iwq&^=!f+##NPADwd@T61vL#>eIL@x{VUx*}0{b!}w+H0xkpCJ}G(-1YN)QeN@BqrA3zx4D_~Q1)df z85dOo^VOGv)FwJ$xtfGaKxB0&I)5Y#=2c6wKa_vX)}d=MDENN{?|Q^yq$ z-`u<8#L%MH7-XN>{++Hl23h^Hg zb%$Jlw*8amuk)0Vh>h^6goK?cM1FC6@|Q4>E#(xjo)v~iA&t8o-#mFiZQW!@a=i#L z8=7&fr3lW)NeQ*h2Mp{LSkVNCB#B5NI0+IjeeoNJ4* zAwJHCzlUCs?$C6v9CG=Vm!!LytJwCq%Delk4uS3^jyZMZtIS~+j9HFpc zZNn$>urGI7zj5UDlKrXm%tB#~i?F1~3+pmpyK(QB06H&j27<>E>{uwORF)56bY4Dx zt?$F=22IGXg^7dD*kp(6H_42Q=j5zS<4Mv_$l(ri!$LH!gCVm{5diJ1k4CI`Tw$Zg zyi(Mlz>rup#Hq@i&Ze6%=ZAVKC97@4y@J^P^}EE_M3H>?tX$K50HsD&{ZaeQM;Ysu zJIrM@Bhe49JvJX~4<Z}9fQwC}k8I(EKPebu!^mKuI{jds+Kn&=Uv z4)u6~EF3_DJbFSRD7C8qhM)(qS^m_mdGM9?F7}Uy8DWUHnN9_+8#k9$ zy&uT~BK&jn$t#SWESWEBViZM71W{rCeK6_EN({4n<4^jfa=?$}y^4@G z-Vavu$CCcXKgKxyF#r$#MtqbiUe$SR6WrHA zKLrdapt=LT5JcT>k|mWkZaOOjW{XI_xqoVN36K~-aR6S#%YVOb*(dVW-Ux`4Ho_{k zeEic_tp+&qhKUdjk`^|1_UuMIjUc|}q3fS`DPK5VDd6<4!;)R-xLbt|kHAxVb{5N| z`7j%I`wCjJOmS=E>F5Y+f2!V zFaLI53t>HB{|R5yRZvbm@!P7(s_?Z7jXQjRzTdy>)-S?~qT0v-!UaRsmDQ{k=^eti z!&F^4Hl*N1Z;NHb5uGg0zr?IU-;JzUaXm*@)8Y3ItWM$|_+AkcRsV6%cuX@LjeTuG z^m&|9-D^Q^72^DI8{UAF@9esPH;3zJ&C?q@4$%az zU8FU~HtP#%m%xvtf&Pzbgj6xs9W*1&_wwaG=JDZjdR0ZLXRh(CkjXSc)Q~887GZf88Gz)PL?v*#FifRTO4_7CQ=FadD`Z zk?*pLCaRwFybDiK`FTbk8tSWdjDDzByWH`x-wRhuMV4E>NHONS0^7g6NTYY@&MmS8 z6WQJ5S7c>;o8$OHHzbMSjw=c=d(V5NF=5|l>Nbh%NO6@hU&|hODUGT7Nxq3Ix|vI(HY+JHrkaCXRunewvkUipO0CBmIVL{M@|YaN zi8_crO|f5A`Tp(GE#O-hsHS;n3;>NsCaf(a7tBpTawI z`xYkM;p6**W>|>HbF5N&aMEcUEasBeGCl#qc!b`JdmD9L3Dwn{WN272U$&fv?_(E2 z#n8d&(AKTr5=hddp%ne2?opzuZNx7@jWu>Xqa2XBa+Jd6NFy3v@e}?r_6W6!5viD- z3QA)A?Wj*b@4#^0nWWm+jRK#rDsH@!>JYpnEmF)VJz4{TkLa_)*8OsECbj%s>%{0=fW0l}p=k7uI+2W)0G$0-}f( zhhrY^VWQG4E}>hmRi*JmpHw7Y#ozK6(UFj$w8{B2R7cQ3r1dEkipa6Hsrs|qSuh=A zatIi@{dBq~$^R|fs_0K!S_F-6|0()V^_avkK)?O@Heu|SZ@`sww~lX-17d&Ze{aA$NFPOx{A3hj5P$r^uk!*ooSlr@SSUwO#S&QOYsw~{>`hub*i|FLW6SBmmfXC zE8M~_1s(tJ_YQybMFV?vlD+R`%bR}W@Ww3aM}5Ugk&u#wujN4ed64|*uUlF%c&fwf98R{I`bqZ)QQL6twj>18?cjSG~gB+RRC-Cn9RdHwyL zL$&i>@6{~04e*`aBN&9z!Wf0@4D``3y(kb61{Fn-;2$QXF(C8nyK?eM9>XyVaWq`S z?@ZbO3DkC_TySkVAqGq8#1lmOzQJ$pP~9E}SK@n?2ZGhe0Y_YfeW1^B38(Dk3K;XL zLW8h}?}Wgk3n2(2JH2hhNF8FEY>B3zV1GRo6I>F6F_`kK@9seRw6z9fabXG6yw7Q0 zH{vLSewAjiNC>kS6|d5vF$<$W0JUB(8S>{uak_r#$6NZ8=uWjS1Jne^$c~=dy{OP$ zE}8>;ETOurC@@!L$#%3G@h2;(35<3wlzzVNfJWktOqmg0cqtO=M>=rh1@A0sofGK( z3YB6B9EiV|iuaS^;z-J?0G0{I@+ZdfZ@jv})~F^;hul}d?Pa%wV_N2zfYx)}Ohaxl zpnJc*ENP#3$8&S@L!pON&@GBoA%$+&b90EGVe#fiA@ci)sav&_ZPrIVqWQ+1IXk9( zhipniL=<7E=*vv4*JM>T&MJ&W$_EK^1CvR2{oF+2-zby&J6{zyo!|Af~7ou-QlW(@$eIr)3 zo!tx_e^yxa=kl>RICjyNkT*&uZoZMROX4Et-)&E|-4|#^Z%x2iZRo#l4J0kyyI)15 z0q|I*N;=(${dnisYQZG^pVN2M!b&t4ydinCr43ip|EyQ zwa!w8xDxb-SP}FlCp`s$Z5k6f>BAW~{vZTHlE{pzZiO4Yj`tq6D>zD%)z4=zIIh?w zMJ+t;imdaySXWw4_;7Y(kKHXGI|PC-B`QVTeeAD^Read16 z-sZ}zhL+@2hk9PtKHmBqZX44{#~^`rpgVpZ;$&apzOMngP1PS4*64RlA>@k6Tx4n) z@%SJ#3yYM^(Gxm$I71%KyOcmiQc*{s6S7D+K;E^aDm65?5-0R>}tn4fJf2Ohp5hDCa0(rkm5HL*(qJ}JK~->9^l!p$kaUU(2L ztqP>CORB?=6W28-4!wrtWL)lGh8}&dV%FR4{}GODIaE#m{WGR}43K2F@gizjPO6w3 zsxhmY!`2$Iz5*WI*T^@1RXp)*Nxl&)C#at(h;*_@qqD^at$;~l z-c3L>I>#^v@lD4>>}VEg1>}Fsr1%nynes^~r5z&ZbUl_B4S7j(ku$lcd!!<6&i- z(2{9>-{Nfr@ zQf~A}l`h)j(GVNQyiuh`t(5n8iz7TU-naQOCO_PpQ;z~#Vv;b@+s-5BFX%?n726r8 z654@T?*|Ey@T#C>KqKqG@@8u0V|;xA%UY3tq7atL0vvs%HKUoJ7ixh&j?xGyY(3XY z8V=^ahVM@CTXi8<`$9CdB@Rd97>}UJYY^)Ut}xmRloX{n+m8O+6(DNoy_UBBL5rEK z)m*fTme6^%Qlu75TDP92rD<`%I(@dnvrtVur`F5eugezdMaM6OJ<_dGyzuiM^pZgE ze&5OqzE#V9jXIYASn^$#-c#>^N1(D>IF!4Cc<6`$-VWhFFd8mmT zBl8uu4(xg1r@#GDT~oAeW~5ojvv;M@GD|JD%IWG%?pjEDq-NM&o08KL&{rE2Sk?Y| z(ux}XuB;@%Tk%d1t(F#TgGbTI=x8bE(;&Q_{IxBhgB`S65JrUE{RzL@(^G|_PWJ$x&9lWc{bO7aQ7ezSTm?D*}qMCDXme>y>G7pjq8tC8O73sVc7WPv9D{2`pCJ znP=Yp^>XW}J))oC{A9e)nv7b*``D??U>)fy69tZeIA;!0u+76WRcl~!-9adN{H{4Z zbr5s}O%bkXK8Rho7m5^eqWa1sh3GIlM5*CKOt{=`0b5PVLQYt$!MO{sl-6BtF+{X0 zY6Obva{UbE%1I0s!;T8a5NEi-P#e-F3G*cjS@n}}?WXalchxb(n2iI- zkq%lw&|*v^eHdMo_Wh>zL;N!w$JM2L-Rc-YrfoP@2qU^_Y2_J_vX11MfUeEq#8{u> zJtRBVozISNo-Ta1&7GX|tLRE)ut?Knp*G+eW3akQi+l(RP>4?6^()i;ol$)=um(OAoT;)fAYkH=L{NU!WN z`hGf)L^dTjvIKxX-|h+a-I^~zIsC4i;GtI4~QS6R&H-+jz`+T$YiACx`ZW5j%q=cfcQ`A#7UwJ$o3vCtIOn&SVllmW>E^+tgW^je=&q-iKls=5Z}Ja;U}1I zQ8y%S`lNUFic%%7h#Z|agt02VKub(G#AXr`nUHAjMO;I<7i##9alGD~eq`sBa&%Yr zTiD*X@g<@&3=F*3#jL(`w6~z`My(S{z1oc~s0|rniw-^Rc>Fq-V z)=34!z7OBjQCjsC|HRQs&NZ<49-!JQXa7mKPi~&u`V#Q&y2N>E1tKZaez=R4XluL3 z%u2Emrr?Ql{2?OhcDNvZ@XwYE5rA%l^?-V)IHqRnvm?|tG7RM%|oM~8>{&3Y~WTM`7DXHS4{n)HFep|jUQ_#zYIyHCt6 ze`anMYV<6`WE^BKy-Nl^T(_J0rrDIOf!ttM7ZNs!VaB~{YYql2rAE?gqCGxNS=-nZ z%8mDQGq!BLLxZ(e7@|#7x6W)%KOhh23RD>pWIV$|At2p6d5R^zRzt_4A`zU)`nt|) zO{JGAZnHGvn%CxGYu8J9mE6}Htnv>ZMs&KOIYt-08>4M~KC&$PydTgZ7JYcW`LKHB z30BK$vM}s#V|qm%pCJ!|Iu%MqiBMy0U9Z*;d|zI3`?7@OV92%ckgikf=7H?%N9+74 zNs#CSbm^f-1jV?QsAMFjdyBjV7zr)6PoZKJ*=du&g0dlB;VXM1M|`+S>gg{_t3ure zSdsi~5O5!|;~)$%ReVO<@r3G0=XRir!u!kTMFg($_KgVf@{(b3LxM#|Iovy=cu8ujY7qB;zDsX+$N6Th`&r`b=Yj{$1!Cv*qw z&muFMX*FRgT_doGL6!yUr2rWXWaJq!ua11pj1hmb#GRF$6O#_Cp+G?<(8|c06GI`L z8FNF|8jDT&=Yc~467wc?k_LrAB5Yx8qa2gMF?vCJHs zZvoGl!mAIy@c~p9m>kCtG&N0mZTZ6mCXb||mHs4jmQ6=211MBS1T0dDUt-m~x3!#b z8dF=Nlh*B+;7cg$G++$5Hb!zSxoHnoiPupS(MJ`8QxdHNW6U9(oJSI52J3Qjfr-E} zA#I@+;si@(7h)lJ&L?9a-JrHXCJnf^2Pti~D5&MSO4Xqd6QGam8{doRk-N&$9k5I% z1+o`7*V@@Rf27_jp=J6fIH^l#9|ce|k=6aj|CKsvMZJ$g&YRB)`n76VGebsCx6EGl6icWE*M~mi7xAC1Cn0r_+daS zQS!_67aHgdg+u5|;TzL|)UgV#nw^f99A5PmBO(s&jj}<4kv(B#xFI2!E4VZYx7b|s zLvv+SCuF!f$}ES%4M%oFc`h9tF0u4U35|=cO2^b*U(gATzgq*1l~!FB_$6BL^jZ6+J@otmT_chL+`Q?WWzBiMQP$8?6fL|?X}7MEY3 zW&WUS@irP%(pCVYXo3~l+fnr_f3vSd{+TmTgnEuS+<`yQ2<8xtZ!E|Ft%wfOGbleV zD;%fGR?fW?cJzL|PAzVY~VSI{6T*Px_h2#1=z~PiDze zB+o}6ql8QyWbd0%iuz-S3&wwPiZP+cd5P_k84lrgpxNY@V^SYh!~AZCo9;+ zSeLg6@>CXWUmZVf-b{sSN3291M_@));O)*$HMOW5k4!`b`O`W|YZ+YBYLe|r4GB%4 z9+hxMT?C$#*BiBZ#zmhp%_w&m34b8M3sa(Rq|=O#gfJ@oMts0CM01DI9@AbmLpQOp zyguMpF%<0(E4j@48}8{LHyidcGa9tPgyC1=rj$&3zxFt$-E24wNO=FBCCJE`EDm9e zoPQ$^WGlYZ06NVs5liuQzYlHq7bE045svbfOj6E3xlWA^g_DX3VS%ZTuNz`jNk z&&+TZZF?J6sve>Jp5!Dg86PbrtBZmve@|bfHe#?R# zrUe$tMN0wv;m33Ek6?dkVA}uBV$<%Af0l?r3a@P@MLF zN64E)tqt+~w>XdJr@>OsUSCN^KvKKI8jt!j_6C7vhV8IMsG>qW^Tzt$_D6u`x$wqD zH!UaKia+Y&X}Qy4pztKTP2cfS`rJ*YNST>rH2r_e>SwRFJx9%~|{6hv= z*i5~AI^HY|pzwzDEsirFP&iCY0P;8`tLlmZ#A%Eh!k8Swt<8a^32!0}xd<6(4uPlt zTytk##RPWhny;A>k z^mh%Q$G+!~Inj>T0tyq<@yBCr{P8dMTED9A+gz?K_%YK~`1%N20H&5zuc+lC)6Cma z1SOJER5rIRkVA;>(d!vU85h3KWg0 z?oi|XKAJY2+YiXqv-Ng+ySTB0;tA*TjeM^o*Hva5#bn(d%Sg+Jl88SaWAgtRJ6atp zWvy>PnPeKt0nRWv#HCCd@@tk@W4U>1Ft}SmKBX6BKICwK>qLP^y(oIT&8z*agyl&( zA!D=OD%YE|k-P3)b_ zn|Tp_U#6c|CN4X(2Hppm9+(XIft(Tu+4*NQ({nuRDcgIO-hJf6OPF@wAu-b8z-mx^nX>wZ{?zD6t$V>F>+BN_|0-)_)aon#Ufo%x5gOK zvSb&wo!H5HW%w83xBp((i$yo>6lTraAmHOYlfpSvv_ZCllrf2gj4e8{qdB6CO~;C` z4NSR5QS`*I?RCJ-4KehDeCim2Nmww=L!gmIZvE>>4gKDDVweGm;+(mvCYn;sQU{NV z#~Dcj&xq^uYv=GR29Wbd9oyy8*r3!5A)+lYK<-5EAWL$K#_LwxRV&WffxWY|gP(_D zok|#l^0x1Ofv{QT5Ky-Tf2|8RX`ev#A>@~tWBW{{Wm&)fA+SvPKx{_ix&!pWj8J|Y ze7J}+)@Z-r+SIP7?iGN%dS$MN{~)*JcQkQ~^hR{EFfMz)v?bouyp;2itm-*7b}Fbg zGycF2{o8TYbuMxycS>As4*zkFV({Iw45oM&WJ-vty{=lk944wC zGP*DVdlmar2BVGp89S^yG#N0Bz2uE=sx2*A7`l+z0jWnt;yjq#kc#xgMzMva-Ab8H zyzJlJS!Vx0B(Jdmf2mAyF{K!@Z1&p6N*@jV{kP8 zM{&E-H{N^{^L;NAS%*sfYxf%r?2pE9 zZ%+D4@@)SBkM16W=X{dF;s_)y>K@vr8oZ?mFUx$`Q1GJb7Nu07`efoNBHD9h=3@sn zgS+RaooaJa5lv3ljv?#w2I9q#Uxm@nUhFM=ZrQ>Fy$-G;&41VB*%#X3fU$$4p3EnnnoH;X$72j4N zm06)8gYG7uXp9{t$1gZM^33u^JO%_HGu;ccA(;2|Okqsf3BP+mBR8hM$B1cMoxP(P zDMCFvT9BW*6Qm!JwqCQI(ZhfFr`X55G}@jG`{! z9KmPh7<6+wh zPHLW8pkrhG_jGSFmuB4!L&s8e9=+2}5a=_B)0l71ngPOS$n7Pwsj-af2~?-t)09 z<8fVPCI)1}S>xhDY>y^>5bi**DG#<&#bF5Z-)62sLED7OCr{gy3|CagqITtq>!BIZ zwED2$)4-R+o~;Bka7<}NSlF@5vykf4%1-*BXSJFe>xTCnn)+v5SA$Upi2&F@FE4J+oQV zgO96cqFo)PJ9Gt|@-xM}+jRNW_M&%tJl2b5HZx~*J~l_fVeKsgNEXHz#Nqs00pzrk zrP_~ZJ^dR<@>g;Cp%KAS`zD*#t@iscFm4QO*Pa&P*U#6*<`@)Fg!5&m<9*VB@&FUb zWQ0)dQuIQ*$!?>KaAwn68ne8(3zZUNSL1-qKgSsE^hE3Xll z$kKAJ3VODKH*4a0{MwOg06C&z*^fn)IMX3&WP<+0kYL&~ufx3IiJ)F%SMd+gRjO1dT; z$4q8_gE+H-<7w9wom?))E?rm&5V~@KVA(FImob;j4h`OOeU5fryzCEX?T`sGt&{7v zHZPDvl$bcuC>-eIFV|k^CscWgo90O7M%p-I26qFGbMSUcm7SI^e{_4)$;9vxcR z(kSA*W;jx>Xvx50xVPS1dT=zHcg_yRh(t-cxBs|)lqVvbl$VILaqg6EB#E%g!O-o( z%bZQ$QNzJ-?oNtsW{ige?nN0IuG4berAMu$+Hvhx?5-EAh_yR%$FH$iM`o-Nar!t3 zh8FWM-_Bhk_SN}fK3g~e9b$}X#Dm3CN9glY-mhG<_qH3GSB_FYpfa@oLn2B)&2Skp zhH*Y%MDTE#UOXd#FGBjAlA19yms^6LPRQv>MocJ-N+P{h4-%xlQIkAZNvSbnB*B;j zH4e9`BPzEimkKM1oUP(`Rfs4VQ9x`g@S87xq^nEPJ!BKqc!X(-zg1(H9U&PLy`Mmy z`qGEIHo5Vjeu^`x(|ei_j{J-IHg~Y)D;OE_x6`H5Y)4T~l$ID&60vY&;l*d~wu>?_ z$#~TO?ua!&6qGzsR3#g}U)bCNwmphU79M>Dv^uF+7;(#5t{rUfhqYRRXbU!frnj-% zm$=_ugj_t{Y*0cM%C)SfM?=ywH{dfsSzmgfjbE$Jn>r4F+S(JrK98z^hxboXyAIE- zUJW%@6JTM~wb57blDMW$l;IgK(_^1E>eEWd3UxNg6#cZB3mMix27lHRCI<8s3{t{5 zF3nPlm2MuSj>0!93=4XyUv4?B>DMCk(jTJ?x4b4QH{q{=IMOdebK87iy@%rM*P|0+ zyBS?%fV!YLDIe82(03U<78pbd9rie=HRCVrtsAq%UJ`0_UGH9b$YJ)B9E&SoHA&S> zDlR;adeQsU^H6Xw^}g02u7poU%VobM%eUwyn#sp&5Q+J$?)O}`MDmS8`j_h(tOER@ zTEcz2I~k>?|0&$lnvhfGJyhv#(18NCEH1CHbxI-m=3kfHZ215Kv41*Z)VICJJ0R`u zU~zhuZzQcKK=TYc~)_%;V zJEU;InKfpSPbv5sBdBjb&~<$UM4pvhlAJNn}KbEy|xtMz*pa_ug zL9lzyF!qJAne;AQg(_6ql9Sp?XfycO*6O;(d9tgjy7_7!4IqwcyD?gDp4Bjl89B5_ z4;!``#&(vps1ZJi@z+uyzB?Pe?#7gqDGr=kMU#r5zjiP`BAH0y439zJlZ3y_sc=~b zdibPmQkZ=>jCK1s7v;&Um{lmUUG#ZGi}!2#R1KK)rozxZ0zD<>qVa4M;CI@ zzj4{k?c%%#@B)F)b9`vfSW6b0oFT3J&XJq1DdBR=_o$1xWJGshUs4^$e*KV;*a}Tm zZ|Bcq8W(LFFvzZ*({HY-=fMi8$ELf0gx$dm6UBV}eV=YSdvy?o6q^$h*YdBmdUq;f z#2&w~^G;)_h*&knjELcE#n)Re)xBKV$yV%~e2CwXJl>pc6qhQnQ0u{KiEQp2VApd} zcU!6W*3EJ3j?ttvOi;kXrA0=4s^eR39c}T(giQo+SKY@#=^oUQ>!0o;KdrUPOJQ{! z$CDw4uOy2ntWcPYjajZr{Qx_%v(9~S`}?g+l}kMVGpa~AcA=MLRH-=4=GZG$i_R;C zJ<4|^(XK@rk;@WTBN{X`4D8ii{b*5Jap}B9@CQ;kYtp8gg8kB6<&8F*xIc*-r$}Se+Xpii9*IZtxIFjKUi(}#5BKJ>kl100;zo?;Cpvs3d@L2u z{?>!bq{Jr=7R?_je7--Q7j*XpJDOn)qEi)l56wNgNHan6>4m1c4VKPwu`Hn1^1ee*8);&qJifyIH+G$h-7Y zCkg?w%N7Sa84eQZ$8oE?pZ=>JGf=6=NNM8e+Nm$Tj2HE_IT?PVtxNM9qwolP{n2Q- z^?@=W6T5oYhxz?#LqX5}ExSH!bx4#{yT!#_A(a`61_J4stdC);y4I;srKZ_=*SSah zhWuBcKlvif3|_}ep%c8c7*|4|F#u8vn%J9np5)i_KVVpdV40)TmlgI~sLxxgj}M+k zOaUt|539Z(Xhgw(gY_6%Kk{Dpi{5aJA)w@&8tt-6nNIQ3N3HDTnAMS>G;bSe~G5d(}1b?=#TP?p-Vve1N~P-ljK5#Gi0i&);9xI4Oz047FNLjiKVG%f&Y-r7e{u*CRIlz5Ui#8busf33DJI%qBtCv@$oO8 zRCr06^wpPDb5gX9Nn5wCPhc9pWOuXAhYo8NdM>s^UQIDZ4&7svPx^xr!B_Ujb>uV4 zbpD^BdrV}mdI{XDE^p5F-{}FISrD%FmG^193r6ou!v9FtPY~LN319*Ojvw^l9%}R! zBINEnv}VPz^`BRh=)F^hH5)Y9)3@JaCM68P&tK2*Mw^epc05m`9)$XULQ>v5?^yB^2NMBF6R7aTDkNa zsLcgoNh})pGH|$mxJL(kJ2lO86ruqQomQbhIw;XEfsDg^gNY~xF22O`hEszwXDbn=Br!L@XxFy3<_!g?ch6e zSZw%^BR=-`AYEEOm4{ycg1pB-`lhfR-4X&{eFlbiA~kUyl?%u`h@h>A8KYblif4md z*uI#DGJdC_Q?!+KttL+|$aCt9xG}1j76D_z0eO&K1?Ta2_=wKaLkF=%Q3no5CfNhd zNOwlZUc7A%y^q)D%{oHU`2&w3&(>A7&ZdBL>bvv)dr0UL{2P!?mlIai*2 zHVdz$PkR^_{jiTbb$cYj#ybYWkt-&5%JWXRYDtDwc;??s$c=}*o5h*Ac^l3=oE?xv z-I%8cFb%>M8(9dlY#h?W3eUWJe__Qk;Ig)?sbcDM2^Zgfv)fsmSss&VhFw}2ayPhE zN@FQ=7Timz(kU1rxFVU0~3USEZ?<+Eh^fA|(lM(VcIZnAE%EanA` zyghPBd2&7R?UZ6MS0E=pKf)FQKWRj7?;pw?=C0cX0ge?jv(Of^jtWZd(MkS}P3B``|+^=NlPXZ-p_ z;kW&o9~BvgL`@hjSr6CY)v#L>b;i;m8c|3t>(Q+wu~*6OYOBZ9`hv>dM^ne@vP>gk z|H#V{;jh~mK7)I;rQ7#lvVTJ;j=lHKdM4zaAEx{9DH9&jcMh%cG=BTo;@~#Q&PZz+ z8*m^4UbU?QM%s&|2ju%XM5?)i*(VYFeYm}*lM*TPwwKpOY5aSu4_^?@-w+-Wdb8`k zdiEq!={5v{5xCg>oxz=XEjX}DX$k)#-MK+Q_2W?luTnI`z2v=SbuVc6$p*gX?AGg~ zfYL1gZ4%G6dOK$Oe96nCPQVE(7IG`>JoHdcn;Vh!cXd+lHfW&#Q|g|+9&KYuhwBZw z@az5b$6qFx_HV5gku-<`7v+Vtm$lt>hf2|;?nmhh#(L``H``f82KFzG{J1~XETlzh z@<92wv9Ip{`X!j3n^3M!VlY%=2`>)8xh_d>!Wf=ZN#8ngQyz|AK^AA7KSx$5<33d> zYH^sOk;Y2KXPUfYFc{c|;5Nd8}+~;Y6 zK*^^wNl!)5;7>D2^9~9LFZO80*chUPMm#%Poa7MrSKrYr*j?7t#eZg%xXM*;fOpWr ze*XAo_d;uFd@{vnJ`70?2jdU-U4R*WKq8uj)6))&4M<#F=Z7koo7KwRn$|v=Qm;=KBCtb3h~UG37~O5U%hPoxZPd>cVe^H2ZtvMt{h(0QQof&HvB9-Aj~gq%e4^uzlR zG!a*YpJ?}Bj^WJWJ3w-={@r`Twi5(_rMyi#R`i)ir0XOx=Jvh6?(}?;c;q9huEzN7 zDQ{HU_Z1QAglUZ=<;Qiq<&-yYAJsOG-1B+it!@l+m|X9DB$$!!UPo^5ID@ZKK|Jte zx2>XE*v-rMDTIahZL%mR@WahILByT?Eq~0i?{kVFMItmUkuEI5`&S@&Fbp!^OA! zev|XJ6UmVEFwQ8g)ScrE^Tt`BKh?cq`!x0Ux36J1q8Cw9Kx8ljJyF-n0fRmcKf8h; zTXzzktH-N^DgNE^b@=(}a7M*SmPD>7eaEjrAH~`VFyrjUb;>vq?GU!+0`;m2HX2l%KARIG=KHKNLJ5T^+cvSdQ;wGQG)BoX|#)usOjM$ zQt2LId+2f0FEmWSt%9TyiP`{C6aQCh#-FpWp4`JxnSr=Tvh%y#2xWT`^pscR6>JCm zWC2Q9m{c0P`$qkWT=l`b>?=9aGs~;0H<1}e345@i;O&=nk!QkOl*IXr5F)6f3DiPW z|8}#~VDatUb3uCV!Oq9qS>|}to@HHc-Glw`c&x%xN6^m3v#3bDf;Ou!5O_WEYtMUL zc_(NFzIrv+1YK;GgOGLjD{xx85%|jgv`^d#<9H`iRPs&zs@b|W`nWUz{n4T3gmjP= zll=JeaqQmu00<@8swLx}%@eNBqA9=-J9Kf%s5uvf1CDj$nX)WqQD|_uR&03%|{g!{4wH3jtI>)u@ zoub9pkF3HNcDll=dwfgSZ&9BNuAt%dCz-4C&_syqfFZNP%}Wi!_yGv6 ze7ENMp3}LkL!GAN@9)QBxyMYfMni-*(^c4qUc;}U)kq6WYFg^5s+}myZIryQ0ND61 z-?JfhWbG&;>Mh_oC)jHtHUti@uUs+R@)TMtE5Z=@dt*pt#V}_Kvx8Lhc^FzB{+#)T znYC`|v2MQVs7FB<0)LVgx?@!Sm6OSL9g_58gV#6r?pjmL4sldDv(5BtOa8c)L904) zug9e8E(vQ~(;i(PlLSQ^BOI@3&rmxre}O;sD@v18s(_YaZHZMaFSerB)*1eOgVvRa z#Ei8MtyOSJY1L{iHxwUp-VA!aNmaRAu76};i@z~z5Y<4?C@;tvB{SEb;G>%`zdp_Ne0;x9ubFyrzDiX3? zxeM6v$=u77=$qr6M?EXi@J!(HY|zPzxCtlsXaOv90aQ{!Wmby-a=a>O=8-x4plRH% zS9@B!Ko0(Bi%%o-8GIXPxzw_c_@V9ySb<7t4m5HF1CLhN1%%HI4*c=jBp)gZ-1urs zXz(m-ElpBRG*a)=uc&QNtN5qquQK9@*1JO;?u8JkpPC7OS?oDU3lwHb*oc3~T1aQi z&}L1Rup_q;&XSACm#tIAo}7{CE1%teS!@KdQSn90(B2LYJhoVBG*3#9YVK=LD~MKL zUJz!#7Q>Uy_b}kso>4B`OENLJ=<rx~9PkT>m#>2J4OrEJw%3(y zVR!2cQGPw$!{*l8lRx&S4TfZ_9RGX_EDjuzF~QFwgM;1ZEK=gXzlcY8h@T`J4n}X# zsyw|W5cyRHG1ww?YQWq}$>PKY+t)=o;8RGBgtrk;d7!@jV-&Pc<=D^V8rBImSEp2a zsD3+ek2v_T`%Bq6e1m5J-Scu-CE=#_FK$aeJtGV(WmZ?M>fKz@^5WvkU;hK0rK9YLG?YC7oS7o$#xEo0Q_eWm71+lkRo^RB@=J~Wc zm&VM>J9)8WatY%m?A+G3?eF{dcA6eT&~%Wk{!90pYE4+F=t*C5sp{jSa-4#vf&8@? zHEo7Rb-%eZJ%mzOg(RJfDgyZnAmF<2?R(bIHL_zLrfzY13F<8CO)6M3jx3}wm20A_?o2{i820ga@eoCLW zYfSo=LpVwe^}e3{*7LtF&f@Of^yXxblD#G-crf>A1nwPuf;8BJcr9rHZwa4|d+0Gk4><*MqX>dIa1( zgZ~A&Y`|E#nhb}zWv@q)NG!V8!Pikk5|ERCUDnvEI01D5=9&=3Sn&r=3%f(sImF#| z=ppu;9RUODYa%Nm2r>fUis{4M37)~&gJKmCXIUoH*C>sjU~>_g0czL}Fduf*H~njx zuD#Yz&M#zOb7o_MG7e}u`rO~jD}G4IViizz^)s~7A|+vlj(DzAVD&qz1CdgK_{x7B zK^qRHzko$$y1v*}wcb}=Tbp+46>z~=$MwHvcCu-Maqz3w=Cgn4W4LZK(U2hjr|P`7 z?pD|7`!9=Hrn%5?OOPK8{}bJf^JD=!j|}bUG1`w};fCEuc2W0D8{hvmCTh?g{utta z79xpK3uFG;8nsH<%N>iP$zK|JCWVW}RMsC7{1)W}=><*O_J0*OJle~nT$poiX4*ik zV%$d`{xE^aOpiO!k~PS3uzY+3=)tMZpy4a$hC?Ag%w`I=rEtP~7cf%dw;cp+EDm3u z`%Jzdp5UH&oY($`WVtcqfiR4&@UAHj70qVq*1&z0?TaAor*awo;;y06&8z0o<#NiH zc=k2wb;>iy&%bK_+18Nzc4dbrPx009-5o>~#46g2=BYvEXnpp(e-ic*UJhEskj#-w z2$X{=3Puswk!dg*dmx32ScMP@KdnMj97>YxvG5s{h*jqyEghP^CW3pD<*_G}t~mB# zc;{uf6iC%Q>52<{$36Q=3bfP{ObB(BQtEjyj8s$gh&&PAe3nzud1S`|2=%OvxIJ=! z@D(K8%ZR(^Z}&E+yMBC)zB5Axzr!3%z$o+XRW5aB^DJS@@yLh!3q(87lXusvUq+w0 zK5uQJMm~6!1ZWd)6Dv-_Us6tL>NDsk8G+dxV>mC;+s2$fE&g<=E)fYErRQRkL)fUC zO?hb(zmll^c~AqmS#ieX$a8Y`_HaMT!v@M&dq5fi4K_W{=E}uFI`kpA8BB44W)3k) z*~|H#5GZ}6x<(X{^$Px!Jj3o%5lZ4 zt62PNYnY>p0c!5b+~+{Un-{fd%E6l!+8T`C1q;~fVz8yt;HUpC{fvZ_&`-t~3{Y=! zDF4uxLYC^GeBh|MPWU5nsqL!6JIMo!BCJ^nOYh3pPl_p$=Q}!lHR9+3^5z{EsQnBm z`wLZn<(J!OC=*k|xv17*XCvE*r4lVPU014&)O%W@ZpZhBtl3nqnf^O+Y^`nR(ve$JLw1<) zW09*D(y_?Y{fjx6#Y5AuGzW5);e?u2lP$Q^4|e{8yW%R>;?LU(GT-cF8r~YNJsDmc zyD%kaRdZl)P2@Z-W;qpIDa1VY(ZO9UF`ZGq=lTm5V`+I?6kC>}3|XGi>c^8eE7N}z zbk!=BV*!%yzHBxkt+i|Wa8#i(0R^`MwmzmN&8U{Wrg!I6ctgmc;zZ&IacJ6TJ8Ox+@ksA5MEE*e-fl6k?F{PSh#Qxm-dctFNCrjN9;NOCzgi)J#1}*jw=Q-POg|P ze>~jEMdJNiGdCMMk32b|A(gWMTfr!$ypR74$)K(1Dkkc=O#@TRiPo-e=Vh%F$hZMp z#oQmX`UXUwl)B=)L%#qu_sPlv*iIvq;Ec>p1YA$;za|rGkKW*YrWg0sVf60z3eH>n zwf7^%$+nF|c%13{xIxCF@Z5-F$#X6p&=R}4)Um5P+pQ)Rlo2SXj!bk_{I(mTrQ}Y# z7xzZ*zvs93SoZhU9nKnL!qZ)VP#@|Xod#PKyQaa^nCSn$D;|gx$1z=J*+V|a+!c8h zje*K9JaRXMSMk)e-A6=S1k0V5ur1A8ND&Kqcj9W_5YB!5PZy6&g9gG;vcff)#_xVD zhJ2uRwz}r0=F+@P{`MOfBGnYj3BCIND;x$ygmC*vtd=@-95nAgn*#+5qf{9O(=rw= zbd!w9D-A^>r;&O3Pr05m^MWi1*4X}_RYywAr&p3@7MI@@NqH6hI)xQ<$Yz;nZ!6qTGAv=p7`JbEGq+@di#YL8!mXJ?^`W{8S9a{Qe`z@z%bN~PD z`rjfVu%$_|YRt)}n!A7^b2$j@*Dqc4`9TL4>87SnL$2<@yA88xXH&oFYMfL8Ihl%MIC=R0EX03aHo-qC z?y)QShVs8q@TAE9lf?Tr7xX1O=v~oSwIcjJ8vH$Svz(W({-S4%2aPO}`lVhDLaO%v zUl2LYp*8GVmStSkkkzzX2%iR@Cqb`jCg%1dLd!_(!8B;Qm;K^lQ9;PIrA`AR6#Os# z=Z3HVkOKl4(8wbm8LCO4ud)!_$MqHtVt&X5i4Us4S(pM&rFCb~SDRYEH41`K64hv^M;A9Ea(F zyeH)GENBEZJR!baA<8XPY6pZG8=w+_8xnJTf-C`Pp)e9$*@Uaof&Xy8Bv=IMfL5R| z)3N(4HgEZbRzPC=?MCt5wj9pu>kuukS!5nI*sp!^v(upn+c3QAQqp_PT9%}Lxj3~P%$n%#`LGvyyy`2_+*6Xv+AWPHtLL0qR*6Xw)DRk z(8e@>VL+D%C7e_qjfMAz<(g|(M`DrFUyo)c%AaI)tlNwwu**HdmZ95Su3aQm0`ubPary(6%~&)O6nfo#eG zs{A)V(7moBc=4ZvbWp08bk=*A_E&XEx+JRh#1rb8IFsrJ`uY*w7B{~EG>9>r?`m9@ zJ(&6lOSwuvTX|V#CmHUlkp${~2J9s*vEhWd*eJBH8ry7^J+N}o^EFg=5FYk{^S^XM zUguFMtHljU!fyeJyx~l@ew&d~o3L{IKJf{~dt}E>WuN*-*TDdva$M>u2RZ6`s)2;u z$3Rqu*k7&5`mnST{lsbFS+ZITbuyKmPT+KD%hfpc5^5dkg66NK>w2=7`O8B-IN&fG zwayE&3tDh2FNR4ZnH+TZRo_tDv~G~u%pvLC9o?F+Y4rCv?m|a=0BX6zKp&j9DUxh9 z%Lvl4{O_>E4ILEwb<7hx2Gx`fhi*^&8m}R6;jXg!Ecx90+6H^ zq`#C8nFdXc{=sSQci@{TLZBp>%(YZ4bbS`ofm!F@We3WEuhQt%PtWbR{!0;*<9^$t z5Gi3;b^6FOi@q;(v#d4m#&Dw#ghj4l>sf!wo?^xHD}5MtP`4cbC<=s3>#$^{h1Ebu z-Nhn|NWX3SXJWXjb3jL)ZQHz`Z=l~RQSFd4kp{vEAh7J2KE=W1Fus3i4_r(*Ku8^9 z_-dwub*?1OC|ii=ua}1ZMG#!l48q3}U89hRmjF2)?)H(#gEdsKRBufy+_Px~(pP62`5VlVlg7pb)9cR{({Iz0jZ~xnok+(sIJAKPlx{5obiiEP zB}K@SyPGWeEo65I`ux*v(N~^#U@|_ z+UXn$Z{hwIfGA(9vhf8 zB7n=TA>0-J`BtG=Sv(6YLS#4^?R;4Y5J|}Op24Je9dLnq6mK_pUW61Z=S1%y(rae+ zFd`6R!^8IvUJ@P~2W|klIAP!lk#d6gwqcUF0W-XXb(pOCvCA~4_O;|;=rdpRaA$4m z7Utj+8@N}4THGtQBR7OfJxB+cdtLk>KaxCCj${@qOS&j8HeuvG${W@?1gsyL|(@`XTk?yPL^-pZ>3Z zle&%H*rdMN7XEO_Qby5B{QBtN0$0aT1%Hsr3l;&66)&lc**758o`9Q#_LGX*vR$D{ z&-AV5?H;^S3q>^9nn=t%Yc(_(ig^};XkNXk;AAVvRmqpPxD!a7mMu`1#DyzaDE*)c zn-fas&R#n|^VoFnsCFvzWUni_;CFsKBP)&8UtS62t*gvl#=W11R#~YG0o>>0{fD&} zMkW>a4uZ>;w5gb}SVH`FRA+wcYZ`N`BT~+stMv`vXK2ZGuma+`ex&6PVmCtZTKlls*8#83_i9l_GpVkZwRCf!>d)>T z($=_%ksch4ZmmtsZ@nJYZ`gutXHU%&MPULQgzG!V8s3Ha%1l3RMJ{yAEQ2rhbsVb| z?3?-U#ktSBE$S|Tdte07)2-D;;wAo|b`46Mv6MK&Fb>J{tor?Ig7f!q>|yZcvsL8M ziiV1F0H7FdwJ_d-PVoPeYWZMB{8pWBsGQMzZn$m@2b8 z7t_|B#xnlP^gniG3GIj@%M_j`yb`eb*YC9o3!w{!?Rt3;{>#rl9Y9?mrLY4oPM#W3 zK+Op>+rUNoQRj2@2`VRp@=A+cuPLD{;>4I<0k=0gjA-}9Ck$GVX?rR$W0}6bfMu0KYQXe zr`jsflx2fFp@E%;B5S1u|!uVMY> z7VEHC#5y7jEm>}7-MZ85S2ZPZa4DFpsM+TGU8h3k&JwC0Oh^ES|NLy^Z#?txoh(ZG zeD||A6A;=JguOz4fbvHXr2yAl78f6w;rXLr$nlX(v%t!zf4L*_>PlnOH`o{dv;s`M z3&C=~i0`$i4Xe8(e9fi**IEM?#4mO{oV4cWu58~67r#{BcEmV=f`ozE|;(sw) z2sL&Hr1c9fatncG*i&^ArZkI7xZ7Q6m2q%Xs!QDgO9b;Lapv;zhB8#sw+1siBx!x= zWoXn|o9}+vjxrjL5080$#ReQ^r$~&GG>LO=JNeqWFB!#;iAId#b3Eo=IuKZKKGoHG z?(_%$c|bQT=j7{?_a^Sf+XHKXBLvrH5>}l7OM{1!4rASu&KELE+#*QaaV66u%P&ml zDGT~uLKi@RE$hT06II#IpB9$pQ!f~)0(eZb)`r8}0}(fWo*{~~sZZLYG+U7wjt&^V zkG_5cYErO^ ze3gHJS(I4MA6tm+jD6YbH0d1ACQp*nVgE7dOX_fRa3n;thI{ijVKtngwX*GEnL*N@ z@%`{cAs${2CHiCJQ7|LbC;=XUC1`b=s?cxD0+=~o!Bcmf{YG{!(wTig|E3MnJfw~~ zHtN#O-L_H=fr1t4flOj%&MSZ45#|K49Z-Dy{>D)%f8H)! zL$!Z=b}W^WFGM1bgfo`9s4wBL0j6{=)XHHcY&*d6xc~9+z*!-O?sYsDM6{?My1;0u-6FipR$Q#9B5rK<}C4?M)SE=tH z7PYW{$@IU;V*(g4XTrt=TsIdh@}r&)*b1j1L7enG@Dqw2j}|{V3G{6NwFD1EAM8aI$St??v=(EyLU3uQS`?5sGkaWDBXi;J)1*3A<$ceT07#eWbOm zJnFw;#EE%;_yZ@(cHmDDCXeHa7sgX>9pXcSEx&4c`e%f0U7=y}&B=l`xQkU6WgPYj zaS4BoG3e&iOjB7#wKJ5fyK}e}nu4j@7*&PAfk!J%EMMTRn7ZYrZ!D>9x6Teyk;A^+ zf#xKV*&{N9<>!=yDbr{~!ys*e9V(C;noMEi{W#^&JHECa`O&_+s;|JIr-u3(X}C*w zI44>n&vEL!C2AA8_%hZksp^@aHr5O~@&(^Vy7uHWt1C3x;xvwkLHgn*x7hvSpkxj| z`IXZj^g@+Jmg6*{COvEu&&WpM^t~9rXWu0OgwF((l3~}7CdS*>c?;cD7Y(@mhXCC zY7z)&Bh73FH$SJqdxBDAi%N&R|NfamNFYfd0X3e|iv}KC2#bRvnE2M4 zj)2Hz*6T~egRAq3fnSS1^b7G$U+7-eSx6^2+edV6XQ<{p!)2^ezB#AvhBJx2dRG#E z)FJ1-%Si7ZZ@fspArJOnd)F)B@}H6qZP%T% zm`mf3=qHR+ze4c>ix0N+zTx4yg|0Asyg!D%E~VqHBx?CbMy%bUIlyg;oA)%*jo4bu ztNrmZ|K}!Iq*A6KGu$CX*!0tBFAAplM*h(8ejBi~Q~Es8@@DWX;@t2$0uK+GOya~Q zKOOmcXCT!`j&t#L2Z;UQ!c^-FqhE`uzckAD;I+`7IHnqc(mX=j-7! znqN*uV=sTWm!ssT$YdIk3MuWI&0404ug3?HI>x!^iB>Qd`sSJzRHLJP7N{viy6$E; zJ#cvL2~ow6^Axc@8=yQCt?XPjz$d-`Fm@UH-eJ)F%whS}HqgGpFcWY@dW2;s3>qdq z!@9E{xo5J;E}jsz%sAuZd``dhqr~W{$Oo8jJ9*wC7Rts9B$wLzoWa&&;IS|`yXxc7 zy#BOkcz;T%`PC^*;LkwTjaST?brdT?h2yvZxN+ZUdwb?~q|KqHSPL{BE@}G*m)YC>3fMH$Xh$gmbCf#QsH7oT+R9I zcodzC&z{yM>-uKQC~m(mLY-;&fJ8dN?y&V^6@b31tCe|Yf&r8B;g8?`vuszpsQ z@NyT(oNiA4g0VV=16L@A4~s*{Ml6>%)h)vCQ(^*9a(}K(*^(;W>f?Zf8cDA=jbzVN z@jgas7{kew)x4SB&F0@A;?RC^o0?dxk*Jvm;~oOnD|l|pL`F=P?8U|?+fI}Hd4mec zBiU1-N}Q#Ihm;gq>Yrf^xlrRK3po)4jv|)iUS2qzlM%~Pr3SGWGc@5wQZTYo{@uJ6 zq?};3T#`I?!<#p2>y!Fyx^qj{-RVS+9Mv2Nn^=wJiDp$;;(CfHzW(p```h4+Gl~z&J=+LW z+Qw7xC((VT+#EfxTM^?5me>Q-DDK|iH5I+&QRYYxuHdZSKg@UU!?lIHcKhBWn#1bq zJZLj3n#n@G45H#LajWSd$L*%+8C#iU&m9ODVTL~*V7X1vySg@* zW0)ceDNRQFKtB)<58oK-yI_g6nzG{s6(x@!G;@ABHPIp?RAfx~*RpOXy+v7IsGV6(I?2W0SKALyDid*f>q3c6D0|_rXti==H%u2WkQ*Xve4{`FK!UIea=sbscTQz2Y!1}-W#^LhQGedipBjftE|}?El-~UHQcNy$x@rl z@6I4oK#hFd%%W|}iBPOT|8flI-|edY(f55K4xEUCf2wVH@!FS}`TiR)FULD=lMYoIOYH+WEJOn0nea4|s%VfJFCtSF7PZ$`ADL zPyJW(48P!wg{&^whO<X8!w<99mPb%M87ve=bsOJ+1k#4;MKxgp z)MI2Tfh*E%VTieRxd#RWcuqMgI%_xUQ2de{-&sW&#D{9&^0BjbX(y0$gdw4%Dg{=| z&-m2B{FH;EPqD6YXQh*{2zPzPY}1JDI4kvgXPKDK{tVtVJqQt;{)Nb8&n#?Kp5x4U z^g2#cH7VXf!=I7xQur@?m;i6&?;TAp!v}miMjXU)=CuhUpW?<>*aGd)#_Qaa1{cr8 zrq^4^3{+M=$&*B(Clq8vZj|^xGP{9Ea~c$|3rf({6)S>6Ae(q?`Q5<#I_{U0gw~yz z7GwlLkSeiz`&V@D$$J9-yK71|U|>`UPT1qRG5+Fl&SezQ)HeI6U>EE9|>=Pngc8f{|^g*K^He~NZ$cioPkJv9782;J;X|5GoxS2u;cp1 zZK4Hv6cT1Z&8b1Z$+~87kbT$mUdFLAEAUESPfM0jT}6Ih;TGYqNMP&Y!16P4iokl% zkwJYL_wM7jG>ouTy1{T^>ELN;M?kNxw7bW>sd?ts+Je4^~gT zb}(oU2)IhI__`4oAi_(XkA;9$@TA%ULXBg7cM-HX9$ah5QW0B*XG!^ZY}pqy$+BBw zCEqPR`>>d3Ci}J(h3h0xSpOMhXd%|@E7_VMzStp*`rICd#W{}CsN%b*!k7Dl{1h~# z0v@VX9ZhYP(+=LhB#o4cwQxIMWbw@1g~t-zh!(}|Ep{+d#ly%siyQmd@o@!$CXwtn z2O@aFa=)i)1+1MOByG75$(}FTHBygH1L;i{0v}4PR?<*oayaMuy$@p67mV(6d$n`+ z@>fu~qU%txiHd6fCJq<73`edan5nAr3fU$234NF=GH>TEXJe;}Azr*W)C>-%ks@Bd zYtjshG9O0-_;*}Y7g#KOwe+By#nDE=y(>5?e9z?s3`F9K&kjn(M*bFCyui5QkBnUd z;y9S_`S-0U@DX0WQ0;NE&A%=N=I$L}>>u){L2;FExGZteLKdGoo287H7-qx?NvXE#7aWb^s(BG0Hi;a~NXt98bXsW_RvcH@Is=h0nhn)klot(n~T2}C8AxlvK6J^4WAvU5Xdjjh6Uhf-Z-1aF^! z(#WHCAdjr!&`Su0>+DAy&Bfw3&|G3Qe8S0Ak3{K<4V{yMOR+pW%{U)|0sPglx+x@qlghfva;_RZ7-59^%_P)bQTttG35w5RloYSB z$}k5=(gz^Xu}s8$GIM!(|H}%lJhJxCW=|1`NGrCO_~@%unwQ#NDGm9B=x9nF!MUyH z1KMt<9`*X&JF*K(_G!9LCX@OM&m`$JyXK{?L{qUw-3^R8k%ja(i^0~nq)+CkMm9`w ze=Hz!s@v$rp+jmev?MqkA%*v_Zt4XwSY9FleE>0+a8R9VtZW^F6yBT;~lT^1%Z zo}uT4?#Iz5Rhq6El(fF67!j1;5+l6D7(`fGm;(qk3RFKnp3*T)c_`3(vVarZ8$06Z z>UmjVZBKbI-JpGS@NyPjC(@_KNz`nQ{7J>M6&kVwzPtjiic7?qN+?bxgEQppW^pfW z0*ZUWkGEfZkk3@Xc^8!Trasil!)kQNt3gUiP^TiANyfUai29xCyrA@}(_!AtjK?kn zUrddtJGgdp|NQ$P@&{?)E4r(;S}r^ur_L9d)L_NBLb#UoLUnpx3*nm2U-k%-?-^==5tVhSh$o8;d z24@_9KL636!Hb=rD3E?0Os}beSS@sP$?knxuWc%m!F{3^wlKRZXY%ZL;~W8qb=`(L zjzpwRo8#2&&@AUVaT`8Gqs@`huQZ@H%Y}3ong=C#Na0a_sI`hG^fZw?Z2z_N*B^;I z(?4AuXX&gq-`GGIHBrfqx(*~v;__r6%DWq>!VZBrareg)5YE+%ZPlLcBl73w;jUyNlTu9gV7|C?IX73^em1Cr$?AE%G!)h*Dem z!ujHZTWvywwJAt%K;@e?4jv>6<|6M52|)&ElBw!t4|R1}_#dAL6DlcUOhsR`Z(3FH zQLIwF3wjXlav^4e?!yy(;x}#ROvsoIcAb_cdmRdg^oHfMd&cGL37cTUYv6Os_(Oua z*R>vWv+BnXNQf@F_bT7$9qRt`*uF)Pmy#$STGE@CMJXw)yZ%@!2`s^m=7JAvegZ~C z@q9*g5q&9wsrCG(A09WNiTrK|y{;e*?vLakJs`6h2-{_wucozQyk3LFLR=n02Z;xo z@y@q<&jWZ+H{(kMqI<*R5=*ptn}*KS{7R^_j^3~;P*p#$3hYz zy`{@uWaD#HG8jz_uIqTB8o9>EC}*6LP=D7hc)@k!wM%63&>`8L^HR_|*zk*mrZ)s1 zI5i(4vAFaA2GNegtnG@I1*#)BZk2wz1mV;0jqc&hM;U})ulIdNn*!nv8<#mG7Vd0) z-@bIGvuh-OYMOTV*Qg>Ypf?_^%0E$|We~74#WU*fEaLH}SK$Qjd4fOYsOMi|-1*nE zi9*H~$IrAaW_U38qJjvet1KjzBrX9i=dVuM0nm*0W$NZaG0UNLU8IM_L>T3B9wQ;( zY@LBd?0xquVbhPNg9-mS5ala+1$yU;++6fIO!1sB6%22@ z3p0j6NcZ`x(M4BP1NZ9;p7APTJ-7Z2yz>5|&(Uc!Kp%CliElvj-`3klgL%`BRV8awT^E@N7GA$ll{Rfz zdu{yf@0H!2$_nB(KCsvn*W3AMp~R+{zp?&ylsUk9NlL$Tw_I=Yj)_C358m0DU=p(QLnF0@hF?oV zsn3o>5lrLZ<{0-y(}?O+C;ncXP~@9t=k@fVSD{a^v}ZMc`aEy0U9U4_eYWpycij>C zwCcBoQoDGkA5cVmR(b%i-%Zo_v^=g>D(K~-$}O1i<%ifmg`SRp8*R)~GR(=KURTza zD~7f251)gpGe_&waT>DhjkV65ohr8lz8%bg$)^_EXH52DD1}nfWcqqsy~7tD?pJJx zBqqqf-i2S>@Qfh;0ft-%8x@sp_U=A*%gtCXTMdUj^f!t=>i9o2opn@`|Ns6OIl8++ z0R?H09^HxpN;5(P1PM_ZMt3*TqTpL36r^EvBPlK2NQ@B!w%xyd&iDNO-_E(uy`B5@ zyr0+Ox~^ppG#+lUO0U9{&D_Z5p){V#SZx#tMUU)a- zdtVmAR>up@ich<)(Yc?1%CSOc|KCDW$AhmV|E`uiL6>0w!@H9I`-<2L^t-5TOI&}% z+`^dL+`pN6oL3q)oFF4W-ud|(BbGwDB91IuV0Z0Bm-dS`jyc*s; zy9A6`2C3e2ffrJi&%lu_K7>^9hbjCN50x()f_z``aUXEY2j{UWG(+33xd*wQST;yd zmISGRmzub1?k>TU>iF0b<)DHDX&xStY3+dZ;`!%ccT1(ASG?Pp@)**-35k~vx_)8A z>@iZf-HnT?YT^6(AWu;d7HxkZgMoKoV^4zjb8drWFurziHODQ!h)LunHzgNa&wBV- zUs$OSB^dv<$#IXX!t(MX7vPx`X4oAh6nZDJNC>+w7I#tY5K^x8P6Az83x%ede_p`T zRYAw^Kp1d(A%Ih%?)v#$LY;6Q;F=$)Mk_3k_AM`A&jlk=%WHVuDza+pYoht*=pju z&C<6!;|F`a55o^;|D+x{&2qa}1 zCpGV_&JwZsQAytwta$u);MQw!DWM3tpUgIUY3yY7m!Yk-s7{EOEM^AtXBBl~Al9?j zbc&X*w=e)Bc8sv~P7|)hZWkHj1UJ_McXw?XYwP*{fo}ZzuY*-j*MmZ_9Akc~ufDx3 zUwsgFdcz*FhAi2*>p3i<7vD{d0ycES#jZ62=mZ1ep6~5Qi=K4s}ny6v`GD>Ext>5Vav%tTkQ{qTc))q1h<#6$xx3sBe}Kr zY%}-qVF#Ph6|j$O^WH>qT7%ZPxhLxwPL4+m%uRCP4p}0cA!O1n_zFg4H+jk zz2gRKoK?1pIF+vAgLacPwF`jpDX{Pz>fNq~W?5W%P&SjiT zb_rRontXGwPz*yr5TPVU&H1VS@w1-$Y0~bio5!gFDc1se8H%ox#|nNj6G|pltCjbD zx>a6zMaxfRGcO%0lN5vX&Nj!BqMQ4LU)HC5S*a`ub}tTYj~W*#lyt;{rC7HZ?$vbE zg$1N`R(+}0Em4<^M)Hdk7j#VPGNrx^AU8evHK?q@zTL}qdCgVOqjcT z4s$~9Pfcb9KVu_bR+ej1$T$wRhi9qYA(5~bF;(Lqsd?DzdU+i7I{5Rrqu*LRmZ@I; zAo=TXcHTWhgpbE_Xrf%y#fvZE91k&I2f9$1XLwvy4s5DxU9%q%~C0GH41dV)}*YkD*Td#YQ;clGy7Z29(H2rxz^J5;Ki*sXls~J{0p0f4pl!| z{dzvLoKo!0YOR7aAXg3j;43i6AmqKBM4_%u2dueJzA0Tk!0mdPQf;XvX!-p|sp zJ}wv7d&T9dH9MbCT)IlHSbrR$mW%nHvL^=KiL83SPvGq$_D74zxRW~lUm7DeASYkk zNq|DA=I1{=rUx{2DZ7y*R|U>T^O7a76e3q*0ZD&W@2%Ul9l6v7C%2&XXh^|%?YRnB z?mHXBMp>V=e8zNu!pup$>hV`me6mePudsj|uY#N>PYSMzo{Zyq#W=80Bd~u$&5kF7 zf3s6~ZHZFawA0~mAa;{_5J*uj>CSuDVtSCKhWWwMO6r`GB5hUy*WbU^^>RPUk5S!r z*@W2>=aNp*dYW0-lU7ha1<(Q;N z?A0<`mkx`Xrv44d7>GZsQ`u|8={QIo+yCoFBjl*tr69ZYqJI4ruJq_aqku{dTVZLAjZYOywW|!8 zPkBqZEXFz)s&QeQX7-waS0H>ay=udOF_80QTH_907Z!}qJ|BQAo&P}-I{Ro}a|XUB zp|;p!W#sdCK=C1Y|LG|V5`10cy1K2!qWcyPi@G$rfo5+!toOyp8pLLt?DH8;Iahzo zmpxYa_>l#I3bbK z?!`XtY79AOFAp$a1Y}r4bXZiM(XVaN5_<(zC&!r)&)ttS{U}ijM^prS*L_}Vq5S+) z-Oc8xSlY(t7A9gsr5;uM1Pf}yJf8dD2iyVZ|A+~ffNe0rg<8KD`5(DAVSifgdjASg zUQARsb%&_f0Yu7OQnql#_d>QnW;8BXH!R}L9&AmwhL63Pr;H(O> zk)QUy7cm2R1~zR_p#oqAj?SF*2mg6jgyPI3J3R5d+Jsi%|q<9%ZoK zaK@)EK`qDV8(i14k~DR>C4}GNGeH1V9l~+?G`v15YC_yDJxPdlmjVrAN<4082EkD+iYBQ*lt8))>S29i;0ceSI!Ou2@ zZLORtypEv>w4_xOX0|Bgr5UtaN?UEcJ|26uHy*Ua2WqZqpNwnh-1plmo1ps!yxS4p zYOS{a=Od-D@f)#(4(GYA?HIMcV-~TaDv6$y7sI+p_*T($bDay%J?!Ac=3)JOwOv|VeTZVzY1E7TW<9Ao^Gw@w z#k#A_^I?J$3$)n3n*X3}9~V2{R%yoedO{`F`z40D@t_mZJd^ws3oax*=h^ga?%nAq z=Fca|6GV7VDa6y5c&Q=pw4$ge{`GY&_@lnikQ;!+Slb9Q^IaEMb2wud)Vg;v2xE-g5R zW>q%yOFrh=4?EMor=&c_=WXPPid-xG!O40WZmM=OET_3J33C@J7Rl)o(@FKQ$RN-- zH({*ydTLjx_ktTn`R4AZB(ndPIM1_Z5vg??VJ+s9+b0853;&h&=7NOlxDM$?0DNST>KA>Ca2k;mG2#bFu)v^VZYma3KTBc zK8A+a%B(p!J3>7=0o9M4K6g14=5f(11g zcNV7jf21u4b76HcsUD>V+UIXrXiTI_b;LmIKcvkgovGMOA=Yyz{XIRg$T>7gWx0+#=9N37O%R7oX z71t~o0&R2~=k;+aNXf|My%nx{0hF)T`hx`M|SQidY9**b#hIm(m&c2iVTxiu6y*CX#($r5@o z5Gdk(L&$iNEvSMl)+z9++&VqeT=#@E@`;2#br>tY7WIu^bsw!4w>g1(PvLm-+dNDSjf~YwA%pKxxgP z;%BjX`f`{c0$)w9!KY8A9&sIyG^pn-{HcEC$tqARyDMg0Vu{W!S<% zrfFm`rB}}J>XHf}#;lOB$BPmz<;jK#KbjxCan(Wp|=+BvA6^d7Wd@wM_YL&yl})u-^ru) zy}vzQpjfry7##Qm-g4ido-FXkJ(Ym?G`dCXVv|J)=*Gl0mkFCRDdl}6t5{HJ(4cxxntEuSGGVn*|_C57IaS;UOZT)bJ9039T2(d&l2|l^#o4ayQHy%!TzG(26 z>JurvOPR+yZ4@g01-X&DAKXu`Wj{%(zhFaBwNrd>nK!1nTQ1>{!6U$*oA0bGBEg5= zZPgedRPhQGn-rV*LCpR_35)fhrbp|orN@v?dv#t0Ro(~8P=F@y3c_Wd#;y2!aitmg zM2V)(j&BL-$HB`>OfA%=aS+X+E1U?I@@YL-Xe27#2v4WLd!)m%E=00xACesb3Woxn zZPHZaHBI{Y-0PbiljQ-*c}#Jb7ua8zwY&puliF^i?!C^;*TZe(1Mw9vE%@s0g8*t4WB=ZENc*$kjX>9M&uLHbVU9Y~FuCvh{{-FJ`19zj^)Y{U5fB z+_y>IWC>;}b)C)Y+5{1OBM|v^-Y5Ao+%Xd^B990u&G8H5wg-Clq6)|8m0r&Fo(AxE z-88s6APAz*q7s>V5T2x@`%sCRs^zZooASSHPcAD_1J^wal{%14DhA}DT zR%nLxIe95qxn&6jyjN|HEz0I;PZb{8*d+_oP@w z-~yO?t5{$eCJd^(?t1o}?eNLE0v%m190~}FOb2u>tsQKxZBT%9k^c^63@fjyaULFe zC*izR0%FB{c9U{83UK2(`ikbpbKqKu^2GeH_4m)KEnMWE%HAd(7z6k4u0Q#`vFPX( zBF+X93v+u1xQ0{PmtG1vst5_$-gIGmsy0_h2qKKdeKWQDq@VPK?A0h6W`C1W&NKYb z-=T1E!8-7$3ZxmUZ+uq1+|7sS$P z^oQJCkwTWR@xb|L?b)sjT`y!unl5okgV^3y!%J=hY`nrhoeBlN67eb;M%B|KL0kzR zhJe7W_M$FqN%~3~s52yvNBJR%!$rSnoo%t-9+Ot+%%|7_srO)PAL*EPxGVwBceW|W zM+|)4Z+37WpDUl=t-E-d&tQa|g|E=)ih)=qsD9Bgd@U9
tpWs};oVBB)$R}%4P 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

{@ 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%0D4?#b#Cgx-k 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

KmMVjVL@K3rmyM_a?;m`7 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