From b5f949ffc57081f0f92a8fdb994a6567ed15f094 Mon Sep 17 00:00:00 2001 From: Patrick Fust Date: Thu, 15 Jan 2026 19:36:37 +0100 Subject: [PATCH] doc: Documentation --- README.md | 29 +- backend/README.md | 2 + backend/documentation-db.yml | 8 + frontend/README.md | 12 +- frontend/package-lock.json | 1460 ++++++++--------- frontend/package.json | 3 - frontend/src/assets/url-explanation.png | Bin 0 -> 34590 bytes frontend/src/assets/user-manual.md | 25 + .../logo}/network-simulator-100.png | Bin .../logo}/network-simulator-1024.png | Bin .../logo}/network-simulator-300.png | Bin .../logo}/network-simulator-48.png | Bin .../logo}/network-simulator-60.png | Bin images/url-explanation.png | Bin 0 -> 52077 bytes images/url-explanation.pptx | Bin 0 -> 42075 bytes 15 files changed, 709 insertions(+), 830 deletions(-) create mode 100644 frontend/src/assets/url-explanation.png rename {logo => images/logo}/network-simulator-100.png (100%) rename {logo => images/logo}/network-simulator-1024.png (100%) rename {logo => images/logo}/network-simulator-300.png (100%) rename {logo => images/logo}/network-simulator-48.png (100%) rename {logo => images/logo}/network-simulator-60.png (100%) create mode 100644 images/url-explanation.png create mode 100644 images/url-explanation.pptx diff --git a/README.md b/README.md index f1b3c37..11db10d 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ end yourApp --> third ``` -### Network Simulator as proxy +## Network Simulator as proxy By using this network simulation application as a proxy, you can simulate these conditions without modifying your application or the third-party service. @@ -48,6 +48,31 @@ networkSim --> third style networkSim stroke-width:3px ``` +## How to use Network Simulator + +Lets say you have an application that calls a third-party service at the URL: `https://payment-gateway.com/`. +The payment gateway has an OpenAPI specification, where you have generated a client for it. + +It has an operation to list accounts on: `GET /v1/accounts`. + +You therefore have set a `baseURL` for you client to `https://payment-gateway.com` and the client can then call the operation with the full URL: `https://payment-gateway.com/v1/accounts`. + +### URL Structure for calling through Network Simulator + +To use the Network Simulator, you first need to define a target system in the Network Simulator UI. +You can name it `payment-gateway` and set the target URL to `https://payment-gateway.com`. + +You must then change the `baseURL` of your client to point to the Network Simulator instead. + +Assuming the Network Simulator is running locally on port `9898`, you would set the `baseURL` to `http://localhost:9898/forward/payment-gateway`. + +So, by setting your client's `baseURL` to `http://localhost:9898/forward/payment-gateway`, all requests to the payment gateway will now go through the Network Simulator. +You can then configure different network and the operation `GET /v1/accounts` will be called as `http://localhost:9898/forward/payment-gateway/v1/accounts`. + +The URL structure is as follows: + +![URL Structure](images/url-explanation.png) + # Building and Running ## Prerequisites @@ -201,7 +226,7 @@ Read more about the backend and how it works [here](backend) - **Communication**: RESTful APIs for backend interaction - **Dashboard**: Provides user interface for scenario management -Read more about the frontend and how it works [here](backend) +Read more about the frontend and how it works [here](frontend) # Bruno diff --git a/backend/README.md b/backend/README.md index 2526d2d..f5f3762 100644 --- a/backend/README.md +++ b/backend/README.md @@ -108,6 +108,7 @@ target_systems { BIGINT timeoutMs BOOL followRedirects } + target_systems ||--o{ scenarios : "" scenarios { INT id PK BOOL enable_scenario @@ -119,6 +120,7 @@ scenarios { TEXT response_body BIGINT timeout_ms BOOL follow_redirects + INT target_system_id FK } scenarios ||--o{ scenario_headers : "" scenario_headers { diff --git a/backend/documentation-db.yml b/backend/documentation-db.yml index 80cb448..04e8fc1 100644 --- a/backend/documentation-db.yml +++ b/backend/documentation-db.yml @@ -69,6 +69,14 @@ tables: dataType: bool nullable: true comment: Whether to follow HTTP redirects for this scenario. + - name: target_system_id + dataType: int + nullable: true + foreignKey: + enforceReference: true + tableName: target_systems + columnName: id + comment: Identifier of the associated target system. - name: scenario_headers fields: - name: id diff --git a/frontend/README.md b/frontend/README.md index 9f7f0ca..f9e0fe5 100644 --- a/frontend/README.md +++ b/frontend/README.md @@ -1,6 +1,6 @@ # Network Simulator - Frontend -This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 21.0.2. +This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 21. ## Prerequisites @@ -38,16 +38,6 @@ To execute unit tests with the [Vitest](https://vitest.dev/) test runner, use th ng test ``` -## Running end-to-end tests - -For end-to-end (e2e) testing, run: - -```bash -ng e2e -``` - -Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs. - ## Additional Resources For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page. diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 0620bf6..8830646 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -17,13 +17,10 @@ "@angular/platform-browser-dynamic": "^21.0.5", "@angular/router": "^21.0.0", "@fortawesome/fontawesome-free": "^7.1.0", - "@primeuix/themes": "^2.0.2", "material-icons": "^1.13.14", "mermaid": "^11.12.2", - "primeng": "^21.0.1", "rxjs": "~7.8.0", "showdown": "^2.1.0", - "tslib": "^2.3.0", "zone.js": "^0.16.0" }, "devDependencies": { @@ -268,13 +265,13 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.2100.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2100.3.tgz", - "integrity": "sha512-PcruWF0+IxXOTZd9MN/3y4A5aTfblALzT/+zWym26PtisaBgWQ3tRPQsf/CgT8EdmZl8eUOAWlNBSkbUj/S/lQ==", + "version": "0.2100.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.2100.5.tgz", + "integrity": "sha512-KKmZMXzHCX0cWHY7xo9yy1J0fV7S/suhPO00YTcHBgLivkLsnbI177CrmWiMdLxSJD3NqTVkBEMPFQ2I2ooDFw==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "21.0.3", + "@angular-devkit/core": "21.0.5", "rxjs": "7.8.2" }, "engines": { @@ -284,17 +281,17 @@ } }, "node_modules/@angular-devkit/build-angular": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-21.0.3.tgz", - "integrity": "sha512-KcaI9sDvY6rVsVvILSNBIzJaE5+KcapULShMInD90px9X0QoajXgm8l63FiQOBCNkZt+todMM0h3+u6y7UPsYQ==", + "version": "21.0.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-21.0.5.tgz", + "integrity": "sha512-My42P8i/FrZgEsTnsCS9IXKMk7ikJwa14i0aBcHg3lMBAPrdpHVzgDS6/1SOO1HsoVYF/SiPjwnlL152xlm8/Q==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.2100.3", - "@angular-devkit/build-webpack": "0.2100.3", - "@angular-devkit/core": "21.0.3", - "@angular/build": "21.0.3", + "@angular-devkit/architect": "0.2100.5", + "@angular-devkit/build-webpack": "0.2100.5", + "@angular-devkit/core": "21.0.5", + "@angular/build": "21.0.5", "@babel/core": "7.28.4", "@babel/generator": "7.28.3", "@babel/helper-annotate-as-pure": "7.27.3", @@ -305,7 +302,7 @@ "@babel/preset-env": "7.28.3", "@babel/runtime": "7.28.4", "@discoveryjs/json-ext": "0.6.3", - "@ngtools/webpack": "21.0.3", + "@ngtools/webpack": "21.0.5", "ansi-colors": "4.1.3", "autoprefixer": "10.4.21", "babel-loader": "10.0.0", @@ -339,7 +336,7 @@ "tinyglobby": "0.2.15", "tree-kill": "1.2.2", "tslib": "2.8.1", - "webpack": "5.102.1", + "webpack": "5.104.0", "webpack-dev-middleware": "7.4.5", "webpack-dev-server": "5.2.2", "webpack-merge": "6.0.1", @@ -360,7 +357,7 @@ "@angular/platform-browser": "^21.0.0", "@angular/platform-server": "^21.0.0", "@angular/service-worker": "^21.0.0", - "@angular/ssr": "^21.0.3", + "@angular/ssr": "^21.0.5", "@web/test-runner": "^0.20.0", "browser-sync": "^3.0.2", "jest": "^30.2.0", @@ -416,23 +413,6 @@ } } }, - "node_modules/@angular-devkit/build-angular/node_modules/@babel/generator": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", - "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.28.3", - "@babel/types": "^7.28.2", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@angular-devkit/build-angular/node_modules/sass": { "version": "1.93.2", "resolved": "https://registry.npmjs.org/sass/-/sass-1.93.2.tgz", @@ -455,13 +435,13 @@ } }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.2100.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.2100.3.tgz", - "integrity": "sha512-q76y3iwua3eL3pF3zlKRvDYgnICVWexyReQWIEcCHb4Q4K5hDeJCAO1eLX9no+xmTzbavCADmqcJ6hOkyRjw6g==", + "version": "0.2100.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.2100.5.tgz", + "integrity": "sha512-cjHBN+9vFQiy4GAlrgedsrXOIa8ghcxFeZfGpxNBcvP9jowTClFkqLeQkbeHwHkLEm9/C/QO8vz/etWoIpimEg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.2100.3", + "@angular-devkit/architect": "0.2100.5", "rxjs": "7.8.2" }, "engines": { @@ -475,9 +455,9 @@ } }, "node_modules/@angular-devkit/core": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.0.3.tgz", - "integrity": "sha512-X1y3GMYru9+Vt7vz+R8SFAEmDtgf0aZ+1JOpiE7ubHsQOnhA++Pb94HBjQ6CHqlUhQli/XPOBksKNdZkpup8rQ==", + "version": "21.0.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-21.0.5.tgz", + "integrity": "sha512-STDOtPbd8vePqyneQaLR8c9hnu7BieU7aPG5Icgl0pevv7EfCmwZUTqvK5nCpLk0tVFo6D1WHwIDZ3fnyvFW1A==", "dev": true, "license": "MIT", "dependencies": { @@ -503,13 +483,13 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-21.0.3.tgz", - "integrity": "sha512-E/Nja+RIyMzjqLXREOnTRwv7GMrycpAD7kGwDg7l8cWrNQ7phqBZcXAt74Jv9K9aYsOC8tw2Ms9t59aQ6iow8w==", + "version": "21.0.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-21.0.5.tgz", + "integrity": "sha512-U6Z/OEce3R9CJl8/xuVrNVp0uhv3Ac4wRjpG18kE0dh5R87ablhqr/wkP3rZbWpdGwuGSJ+cR7LE5IbwSswejA==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "21.0.3", + "@angular-devkit/core": "21.0.5", "jsonc-parser": "3.3.1", "magic-string": "0.30.19", "ora": "9.0.0", @@ -522,14 +502,14 @@ } }, "node_modules/@angular/build": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@angular/build/-/build-21.0.3.tgz", - "integrity": "sha512-3h2s0Igruei1RB/Hmu7nwbKvjJQ2ykNaiicXYuS2muWUBhDg+lm0QsGTGXrQV2BD0M9YdHU4Byh9upiZgMYpjA==", + "version": "21.0.5", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-21.0.5.tgz", + "integrity": "sha512-4Ejb5pA118GGyZOAGjSmZMCx5HbovRSjiqLuCmpjf9hUgs50GPNJbigWW1ewz5+KmFrc8ouEoirpgTQyaKKZ3Q==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.2100.3", + "@angular-devkit/architect": "0.2100.5", "@babel/core": "7.28.4", "@babel/helper-annotate-as-pure": "7.27.3", "@babel/helper-split-export-declaration": "7.24.7", @@ -572,7 +552,7 @@ "@angular/platform-browser": "^21.0.0", "@angular/platform-server": "^21.0.0", "@angular/service-worker": "^21.0.0", - "@angular/ssr": "^21.0.3", + "@angular/ssr": "^21.0.5", "karma": "^6.4.0", "less": "^4.2.0", "ng-packagr": "^21.0.0", @@ -643,9 +623,9 @@ } }, "node_modules/@angular/cdk": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-21.0.3.tgz", - "integrity": "sha512-abfckeZfFvovdpxuQHRE4gS1VLNa05Dx0ZSKLGVL9DsQsi4pgn6wWg1y9TkXMlmtpG/EhLmCBxUc6LOHfdeWQA==", + "version": "21.0.6", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-21.0.6.tgz", + "integrity": "sha512-5Gw8mXtKXvcvDMWEciPLRYB6Ja5vsikLAidZsdCEIF6Bc51GmoqT5Tk/Ke+ciCd5Hq9Aco/IcHxT1RC3470lZg==", "license": "MIT", "dependencies": { "parse5": "^8.0.0", @@ -658,19 +638,19 @@ } }, "node_modules/@angular/cli": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-21.0.3.tgz", - "integrity": "sha512-3lMR3J231JhLgAt37yEULSHFte3zPeta9VYpIIf92JiBsTnWrvKnaK8RXhfdiSQrvhqQ9FMQdl5AG62r1c4dbA==", + "version": "21.0.5", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-21.0.5.tgz", + "integrity": "sha512-UYFQqn9Ow1wFVSwdB/xfjmZo4Yb7CUNxilbeYDFIybesfxXSdjMJBbXLtV0+icIhjmqfSUm2gTls6WIrG8qv9A==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.2100.3", - "@angular-devkit/core": "21.0.3", - "@angular-devkit/schematics": "21.0.3", + "@angular-devkit/architect": "0.2100.5", + "@angular-devkit/core": "21.0.5", + "@angular-devkit/schematics": "21.0.5", "@inquirer/prompts": "7.9.0", "@listr2/prompt-adapter-inquirer": "3.0.5", - "@modelcontextprotocol/sdk": "1.24.0", - "@schematics/angular": "21.0.3", + "@modelcontextprotocol/sdk": "1.25.2", + "@schematics/angular": "21.0.5", "@yarnpkg/lockfile": "1.1.0", "algoliasearch": "5.40.1", "ini": "5.0.0", @@ -694,9 +674,9 @@ } }, "node_modules/@angular/common": { - "version": "21.0.5", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-21.0.5.tgz", - "integrity": "sha512-/ZI11F6Wxr8TZRVO4O7pmhBJ9YxDg9mvA76e0PiivmqZggM02HY0y3XPMP3hAOe4K+PfaVBgMAu3P9t32klzfA==", + "version": "21.0.8", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-21.0.8.tgz", + "integrity": "sha512-on1B4oc/pf7IlkbG08Et/cCDSX8dpZz9iwp3zMFN/0JvorspyL5YOovFJfjdpmjdlrIi+ToGImwyIkY9P8Mblw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -705,14 +685,14 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/core": "21.0.5", + "@angular/core": "21.0.8", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "21.0.5", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-21.0.5.tgz", - "integrity": "sha512-92sv9pVm9o/8KfPM7T8j5VQmTaSOqmIajrJF8evXE2dNJcwkBpVtzZUqDzr23AV3vg94C7eYU64i8qrsmJ+cYQ==", + "version": "21.0.8", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-21.0.8.tgz", + "integrity": "sha512-k/EPMuNvfn0eebEMmVcwhMlCWqzER/BEHVqTQCKsAAt7AuYZuluz7oR8Ypw96v3jbY+ZaH1ZvAzrK6URzryhOg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -722,9 +702,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "21.0.5", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-21.0.5.tgz", - "integrity": "sha512-45sFKqt+badXl6Ab2XsxuOsdi0BbIZgcc9TdwmFPdXMNfcSUYDcPiOA0l1iPwDIZiu4VyqzepMfnHB9IwCatgA==", + "version": "21.0.8", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-21.0.8.tgz", + "integrity": "sha512-+i/wFvi5FTg47Ei+aiFf8j3iYfjQ79ieg8oJM86+Mw4bNwEKQqvWcpmKjoqcfmCescuw0sr2DXU6OEeX+yWeVg==", "dev": true, "license": "MIT", "dependencies": { @@ -745,7 +725,7 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/compiler": "21.0.5", + "@angular/compiler": "21.0.8", "typescript": ">=5.9 <6.0" }, "peerDependenciesMeta": { @@ -755,9 +735,9 @@ } }, "node_modules/@angular/core": { - "version": "21.0.5", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-21.0.5.tgz", - "integrity": "sha512-HFXfO5YsBVM+IEaU8h3DZSxO98yDZM2v49NlSVNDzFD3fhnkpTmcgT2NKz9ulIiuV9N376itt+x+NG12sg/+Fw==", + "version": "21.0.8", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-21.0.8.tgz", + "integrity": "sha512-8dNolIQn8WHrD3PsqGuPrujxDX5hjpMbioifIByjjX9yaJy9on7AewVGb8m/DHVwWQ1eGVAGmvW9wt+h+nlzLg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -766,7 +746,7 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/compiler": "21.0.5", + "@angular/compiler": "21.0.8", "rxjs": "^6.5.3 || ^7.4.0", "zone.js": "~0.15.0 || ~0.16.0" }, @@ -780,34 +760,34 @@ } }, "node_modules/@angular/forms": { - "version": "21.0.5", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-21.0.5.tgz", - "integrity": "sha512-RcmXs/LgKyc7D70xVT+3aK/H2SCFEyuebAiw72Iz1te1Gbql2GDFF6hgEOaNwOUglDg8ogN5MdVif2DbRLD3Hw==", + "version": "21.0.8", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-21.0.8.tgz", + "integrity": "sha512-H03A50elawXO53xkz0Aytar5kYT14GLeaj6dLKc1kcR5NqvX9Y/R7z3bY52tvypAdIR8CmPT7ad07TlT4O9lkg==", "license": "MIT", "dependencies": { + "@standard-schema/spec": "^1.0.0", "tslib": "^2.3.0" }, "engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/common": "21.0.5", - "@angular/core": "21.0.5", - "@angular/platform-browser": "21.0.5", - "@standard-schema/spec": "^1.0.0", + "@angular/common": "21.0.8", + "@angular/core": "21.0.8", + "@angular/platform-browser": "21.0.8", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/material": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-21.0.3.tgz", - "integrity": "sha512-Sjv88NbW8R5UTBqoVa8q4p55VP7KPEmXFTJiQYCz1oK7JqbLcQnH27rjetQBAWMEb1O/z1jqpMnpnYUuHNp1IA==", + "version": "21.0.6", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-21.0.6.tgz", + "integrity": "sha512-BSbqFkVIjpXS+UGD7R1jDnuKArMCtLSKHL/1f/9mvHM4AntRFC88MQJMjS0k+pHCofN+MBMEpzBVrDOOqL+46A==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { - "@angular/cdk": "21.0.3", + "@angular/cdk": "21.0.6", "@angular/common": "^21.0.0 || ^22.0.0", "@angular/core": "^21.0.0 || ^22.0.0", "@angular/forms": "^21.0.0 || ^22.0.0", @@ -816,9 +796,9 @@ } }, "node_modules/@angular/platform-browser": { - "version": "21.0.5", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-21.0.5.tgz", - "integrity": "sha512-UVCrqOxFmX6kAG3Y6jqjCWvLoTP7fxeY96AsxTMp1fkBdqbQbEPleWQpwngNimsuUPvf+rA6XOxsqiDmRex5mA==", + "version": "21.0.8", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-21.0.8.tgz", + "integrity": "sha512-5rPyrP6n6ClO0ZEUXndS2/Xb7nZrbjjYWOxgfCb+ZTCiU7eyN6zhSmicKk2dLQxE1M15wbTa87dN6/Ytuq2uvg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -827,9 +807,9 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/animations": "21.0.5", - "@angular/common": "21.0.5", - "@angular/core": "21.0.5" + "@angular/animations": "21.0.8", + "@angular/common": "21.0.8", + "@angular/core": "21.0.8" }, "peerDependenciesMeta": { "@angular/animations": { @@ -838,9 +818,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "21.0.5", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-21.0.5.tgz", - "integrity": "sha512-0P5vFSS6UhiU7IBeVqPEKmRhMtyQqyXGN9+zF7kLK8H0cx1j0eGVmHRsVuY2YKoVp97fXDIeVGSbO0t5ZcFhoA==", + "version": "21.0.8", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-21.0.8.tgz", + "integrity": "sha512-i1pW2tSl9zG8hkqPYPifP7WGNDUuqIn8YVCLizNahINin5OIcb/KfuoYBC2zfDlaJaTY9no6PHbsbTD0cP5hrg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -849,16 +829,16 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/common": "21.0.5", - "@angular/compiler": "21.0.5", - "@angular/core": "21.0.5", - "@angular/platform-browser": "21.0.5" + "@angular/common": "21.0.8", + "@angular/compiler": "21.0.8", + "@angular/core": "21.0.8", + "@angular/platform-browser": "21.0.8" } }, "node_modules/@angular/router": { - "version": "21.0.5", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-21.0.5.tgz", - "integrity": "sha512-IFmf0Wd7jSOoZ8TI+4RXMsYmnIfHQG+kGxeMQVKrefTdr3uEHW/TEsNzbW5bkCpVJHRm4EhkH4hSu8D8tUQffQ==", + "version": "21.0.8", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-21.0.8.tgz", + "integrity": "sha512-LPR65wyWBSyR46fGeQtD92+TM635o0lh+N5k9qPZdMacogwViTrtBHWPfKYBtBUXLWEWXXKJfSbXvhh3w3uLxw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -867,9 +847,9 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }, "peerDependencies": { - "@angular/common": "21.0.5", - "@angular/core": "21.0.5", - "@angular/platform-browser": "21.0.5", + "@angular/common": "21.0.8", + "@angular/core": "21.0.8", + "@angular/platform-browser": "21.0.8", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -960,14 +940,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", - "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.5", - "@babel/types": "^7.28.5", + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -2497,6 +2477,23 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/types": { "version": "7.28.5", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", @@ -2589,9 +2586,9 @@ } }, "node_modules/@emnapi/core": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.7.1.tgz", - "integrity": "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.8.1.tgz", + "integrity": "sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==", "dev": true, "license": "MIT", "optional": true, @@ -2601,9 +2598,9 @@ } }, "node_modules/@emnapi/runtime": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz", - "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz", + "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==", "dev": true, "license": "MIT", "optional": true, @@ -3073,6 +3070,19 @@ "node": ">=6" } }, + "node_modules/@hono/node-server": { + "version": "1.19.8", + "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.8.tgz", + "integrity": "sha512-0/g2lIOPzX8f3vzW1ggQgvG5mjtFBDBHFAzI5SFAi2DzSqS9luJwqg9T6O/gKYLi+inS7eNxBeIFkkghIPvrMA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.14.1" + }, + "peerDependencies": { + "hono": "^4" + } + }, "node_modules/@iconify/types": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", @@ -3799,12 +3809,13 @@ } }, "node_modules/@modelcontextprotocol/sdk": { - "version": "1.24.0", - "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.24.0.tgz", - "integrity": "sha512-D8h5KXY2vHFW8zTuxn2vuZGN0HGrQ5No6LkHwlEA9trVgNdPL3TF1dSqKA7Dny6BbBYKSW/rOBDXdC8KJAjUCg==", + "version": "1.25.2", + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.25.2.tgz", + "integrity": "sha512-LZFeo4F9M5qOhC/Uc1aQSrBHxMrvxett+9KLHt7OhcExtoiRN9DKgbZffMP/nxjutWDQpfMDfP3nkHI4X9ijww==", "dev": true, "license": "MIT", "dependencies": { + "@hono/node-server": "^1.19.7", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", "content-type": "^1.0.5", @@ -3815,6 +3826,7 @@ "express": "^5.0.1", "express-rate-limit": "^7.5.0", "jose": "^6.1.1", + "json-schema-typed": "^8.0.2", "pkce-challenge": "^5.0.0", "raw-body": "^3.0.0", "zod": "^3.25 || ^4.0", @@ -4244,9 +4256,9 @@ } }, "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.0.tgz", - "integrity": "sha512-Fq6DJW+Bb5jaWE69/qOE0D1TUN9+6uWhCeZpdnSBk14pjLcCWR7Q8n49PTSPHazM37JqrsdpEthXy2xn6jWWiA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.1.tgz", + "integrity": "sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==", "dev": true, "license": "MIT", "optional": true, @@ -4254,12 +4266,16 @@ "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1", "@tybys/wasm-util": "^0.10.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" } }, "node_modules/@ngtools/webpack": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-21.0.3.tgz", - "integrity": "sha512-JDO+KOpNBL5bKgHugjLLgDNDt3odBZLYDaKyeC7s9xv3nAPu0UXQHkMcZe+sOJVMZS0zkSTTQ7zMO8BC6MDj3w==", + "version": "21.0.5", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-21.0.5.tgz", + "integrity": "sha512-m27t/Gl+AAW4jHZ0WOZTQhuYEHtI6ThfR/msKiAnOcfx9z5zR4hbR68cIuxx7KPkd/yDjL6mdi9i/vhcq9DNPg==", "dev": true, "license": "MIT", "engines": { @@ -4619,18 +4635,18 @@ } }, "node_modules/@parcel/watcher": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", - "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.4.tgz", + "integrity": "sha512-WYa2tUVV5HiArWPB3ydlOc4R2ivq0IDrlqhMi3l7mVsFEXNcTfxYFPIHXHXIh/ca/y/V5N4E1zecyxdIBjYnkQ==", "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, "dependencies": { - "detect-libc": "^1.0.3", + "detect-libc": "^2.0.3", "is-glob": "^4.0.3", - "micromatch": "^4.0.5", - "node-addon-api": "^7.0.0" + "node-addon-api": "^7.0.0", + "picomatch": "^4.0.3" }, "engines": { "node": ">= 10.0.0" @@ -4640,25 +4656,25 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.5.1", - "@parcel/watcher-darwin-arm64": "2.5.1", - "@parcel/watcher-darwin-x64": "2.5.1", - "@parcel/watcher-freebsd-x64": "2.5.1", - "@parcel/watcher-linux-arm-glibc": "2.5.1", - "@parcel/watcher-linux-arm-musl": "2.5.1", - "@parcel/watcher-linux-arm64-glibc": "2.5.1", - "@parcel/watcher-linux-arm64-musl": "2.5.1", - "@parcel/watcher-linux-x64-glibc": "2.5.1", - "@parcel/watcher-linux-x64-musl": "2.5.1", - "@parcel/watcher-win32-arm64": "2.5.1", - "@parcel/watcher-win32-ia32": "2.5.1", - "@parcel/watcher-win32-x64": "2.5.1" + "@parcel/watcher-android-arm64": "2.5.4", + "@parcel/watcher-darwin-arm64": "2.5.4", + "@parcel/watcher-darwin-x64": "2.5.4", + "@parcel/watcher-freebsd-x64": "2.5.4", + "@parcel/watcher-linux-arm-glibc": "2.5.4", + "@parcel/watcher-linux-arm-musl": "2.5.4", + "@parcel/watcher-linux-arm64-glibc": "2.5.4", + "@parcel/watcher-linux-arm64-musl": "2.5.4", + "@parcel/watcher-linux-x64-glibc": "2.5.4", + "@parcel/watcher-linux-x64-musl": "2.5.4", + "@parcel/watcher-win32-arm64": "2.5.4", + "@parcel/watcher-win32-ia32": "2.5.4", + "@parcel/watcher-win32-x64": "2.5.4" } }, "node_modules/@parcel/watcher-android-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", - "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.4.tgz", + "integrity": "sha512-hoh0vx4v+b3BNI7Cjoy2/B0ARqcwVNrzN/n7DLq9ZB4I3lrsvhrkCViJyfTj/Qi5xM9YFiH4AmHGK6pgH1ss7g==", "cpu": [ "arm64" ], @@ -4677,9 +4693,9 @@ } }, "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", - "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.4.tgz", + "integrity": "sha512-kphKy377pZiWpAOyTgQYPE5/XEKVMaj6VUjKT5VkNyUJlr2qZAn8gIc7CPzx+kbhvqHDT9d7EqdOqRXT6vk0zw==", "cpu": [ "arm64" ], @@ -4698,9 +4714,9 @@ } }, "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", - "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.4.tgz", + "integrity": "sha512-UKaQFhCtNJW1A9YyVz3Ju7ydf6QgrpNQfRZ35wNKUhTQ3dxJ/3MULXN5JN/0Z80V/KUBDGa3RZaKq1EQT2a2gg==", "cpu": [ "x64" ], @@ -4719,9 +4735,9 @@ } }, "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", - "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.4.tgz", + "integrity": "sha512-Dib0Wv3Ow/m2/ttvLdeI2DBXloO7t3Z0oCp4bAb2aqyqOjKPPGrg10pMJJAQ7tt8P4V2rwYwywkDhUia/FgS+Q==", "cpu": [ "x64" ], @@ -4740,9 +4756,9 @@ } }, "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", - "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.4.tgz", + "integrity": "sha512-I5Vb769pdf7Q7Sf4KNy8Pogl/URRCKu9ImMmnVKYayhynuyGYMzuI4UOWnegQNa2sGpsPSbzDsqbHNMyeyPCgw==", "cpu": [ "arm" ], @@ -4761,9 +4777,9 @@ } }, "node_modules/@parcel/watcher-linux-arm-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", - "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.4.tgz", + "integrity": "sha512-kGO8RPvVrcAotV4QcWh8kZuHr9bXi9a3bSZw7kFarYR0+fGliU7hd/zevhjw8fnvIKG3J9EO5G6sXNGCSNMYPQ==", "cpu": [ "arm" ], @@ -4782,9 +4798,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", - "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.4.tgz", + "integrity": "sha512-KU75aooXhqGFY2W5/p8DYYHt4hrjHZod8AhcGAmhzPn/etTa+lYCDB2b1sJy3sWJ8ahFVTdy+EbqSBvMx3iFlw==", "cpu": [ "arm64" ], @@ -4803,9 +4819,9 @@ } }, "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", - "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.4.tgz", + "integrity": "sha512-Qx8uNiIekVutnzbVdrgSanM+cbpDD3boB1f8vMtnuG5Zau4/bdDbXyKwIn0ToqFhIuob73bcxV9NwRm04/hzHQ==", "cpu": [ "arm64" ], @@ -4824,9 +4840,9 @@ } }, "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", - "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.4.tgz", + "integrity": "sha512-UYBQvhYmgAv61LNUn24qGQdjtycFBKSK3EXr72DbJqX9aaLbtCOO8+1SkKhD/GNiJ97ExgcHBrukcYhVjrnogA==", "cpu": [ "x64" ], @@ -4845,9 +4861,9 @@ } }, "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", - "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.4.tgz", + "integrity": "sha512-YoRWCVgxv8akZrMhdyVi6/TyoeeMkQ0PGGOf2E4omODrvd1wxniXP+DBynKoHryStks7l+fDAMUBRzqNHrVOpg==", "cpu": [ "x64" ], @@ -4866,9 +4882,9 @@ } }, "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", - "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.4.tgz", + "integrity": "sha512-iby+D/YNXWkiQNYcIhg8P5hSjzXEHaQrk2SLrWOUD7VeC4Ohu0WQvmV+HDJokZVJ2UjJ4AGXW3bx7Lls9Ln4TQ==", "cpu": [ "arm64" ], @@ -4887,9 +4903,9 @@ } }, "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", - "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.4.tgz", + "integrity": "sha512-vQN+KIReG0a2ZDpVv8cgddlf67J8hk1WfZMMP7sMeZmJRSmEax5xNDNWKdgqSe2brOKTQQAs3aCCUal2qBHAyg==", "cpu": [ "ia32" ], @@ -4908,9 +4924,9 @@ } }, "node_modules/@parcel/watcher-win32-x64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", - "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.4.tgz", + "integrity": "sha512-3A6efb6BOKwyw7yk9ro2vus2YTt2nvcd56AuzxdMiVOxL9umDyN5PKkKfZ/gZ9row41SjVmTVQNWQhaRRGpOKw==", "cpu": [ "x64" ], @@ -4928,20 +4944,6 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/watcher/node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/@parcel/watcher/node_modules/node-addon-api": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", @@ -4950,57 +4952,6 @@ "license": "MIT", "optional": true }, - "node_modules/@primeuix/motion": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/@primeuix/motion/-/motion-0.0.10.tgz", - "integrity": "sha512-PsZwOPq79Scp7/ionshRcQ5xKVf9+zuLcyY5mf6onK8chHT5C9JGphmcIZ4CzcqxuGEpsm8AIbTGy+zS3RtzLA==", - "license": "MIT", - "dependencies": { - "@primeuix/utils": "^0.6.3" - }, - "engines": { - "node": ">=12.11.0" - } - }, - "node_modules/@primeuix/styled": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@primeuix/styled/-/styled-0.7.4.tgz", - "integrity": "sha512-QSO/NpOQg8e9BONWRBx9y8VGMCMYz0J/uKfNJEya/RGEu7ARx0oYW0ugI1N3/KB1AAvyGxzKBzGImbwg0KUiOQ==", - "license": "MIT", - "dependencies": { - "@primeuix/utils": "^0.6.1" - }, - "engines": { - "node": ">=12.11.0" - } - }, - "node_modules/@primeuix/styles": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@primeuix/styles/-/styles-2.0.2.tgz", - "integrity": "sha512-LNtkJsTonNHF5ag+9s3+zQzm00+LRmffw68QRIHy6S/dam1JpdrrAnUzNYlWbaY7aE2EkZvQmx7Np7+PyHn+ow==", - "license": "MIT", - "dependencies": { - "@primeuix/styled": "^0.7.4" - } - }, - "node_modules/@primeuix/themes": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@primeuix/themes/-/themes-2.0.2.tgz", - "integrity": "sha512-prwQvA3tDGBz8yWSUenaJUttEMCEvPvxwOfFhDPmSe1vwsfVKL2Nmh5eZvtPFQnxmIOPsHZS7zc0/L3CzJ83Eg==", - "license": "MIT", - "dependencies": { - "@primeuix/styled": "^0.7.4" - } - }, - "node_modules/@primeuix/utils": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@primeuix/utils/-/utils-0.6.3.tgz", - "integrity": "sha512-/SLNQSKQ73WbBIsflKVqbpVjCfFYvQO3Sf1LMheXyxh8JqxO4M63dzP56wwm9OPGuCQ6MYOd2AHgZXz+g7PZcg==", - "license": "MIT", - "engines": { - "node": ">=12.11.0" - } - }, "node_modules/@rolldown/binding-android-arm64": { "version": "1.0.0-beta.47", "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-beta.47.tgz", @@ -5247,9 +5198,9 @@ "license": "MIT" }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.3.tgz", - "integrity": "sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.55.1.tgz", + "integrity": "sha512-9R0DM/ykwfGIlNu6+2U09ga0WXeZ9MRC2Ter8jnz8415VbuIykVuc6bhdrbORFZANDmTDvq26mJrEVTl8TdnDg==", "cpu": [ "arm" ], @@ -5261,9 +5212,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.3.tgz", - "integrity": "sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.55.1.tgz", + "integrity": "sha512-eFZCb1YUqhTysgW3sj/55du5cG57S7UTNtdMjCW7LwVcj3dTTcowCsC8p7uBdzKsZYa8J7IDE8lhMI+HX1vQvg==", "cpu": [ "arm64" ], @@ -5275,9 +5226,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.3.tgz", - "integrity": "sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.55.1.tgz", + "integrity": "sha512-p3grE2PHcQm2e8PSGZdzIhCKbMCw/xi9XvMPErPhwO17vxtvCN5FEA2mSLgmKlCjHGMQTP6phuQTYWUnKewwGg==", "cpu": [ "arm64" ], @@ -5289,9 +5240,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.3.tgz", - "integrity": "sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.55.1.tgz", + "integrity": "sha512-rDUjG25C9qoTm+e02Esi+aqTKSBYwVTaoS1wxcN47/Luqef57Vgp96xNANwt5npq9GDxsH7kXxNkJVEsWEOEaQ==", "cpu": [ "x64" ], @@ -5303,9 +5254,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.3.tgz", - "integrity": "sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.55.1.tgz", + "integrity": "sha512-+JiU7Jbp5cdxekIgdte0jfcu5oqw4GCKr6i3PJTlXTCU5H5Fvtkpbs4XJHRmWNXF+hKmn4v7ogI5OQPaupJgOg==", "cpu": [ "arm64" ], @@ -5317,9 +5268,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.3.tgz", - "integrity": "sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.55.1.tgz", + "integrity": "sha512-V5xC1tOVWtLLmr3YUk2f6EJK4qksksOYiz/TCsFHu/R+woubcLWdC9nZQmwjOAbmExBIVKsm1/wKmEy4z4u4Bw==", "cpu": [ "x64" ], @@ -5331,9 +5282,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.3.tgz", - "integrity": "sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.55.1.tgz", + "integrity": "sha512-Rn3n+FUk2J5VWx+ywrG/HGPTD9jXNbicRtTM11e/uorplArnXZYsVifnPPqNNP5BsO3roI4n8332ukpY/zN7rQ==", "cpu": [ "arm" ], @@ -5345,9 +5296,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.3.tgz", - "integrity": "sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.55.1.tgz", + "integrity": "sha512-grPNWydeKtc1aEdrJDWk4opD7nFtQbMmV7769hiAaYyUKCT1faPRm2av8CX1YJsZ4TLAZcg9gTR1KvEzoLjXkg==", "cpu": [ "arm" ], @@ -5359,9 +5310,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.3.tgz", - "integrity": "sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.55.1.tgz", + "integrity": "sha512-a59mwd1k6x8tXKcUxSyISiquLwB5pX+fJW9TkWU46lCqD/GRDe9uDN31jrMmVP3feI3mhAdvcCClhV8V5MhJFQ==", "cpu": [ "arm64" ], @@ -5373,9 +5324,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.3.tgz", - "integrity": "sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.55.1.tgz", + "integrity": "sha512-puS1MEgWX5GsHSoiAsF0TYrpomdvkaXm0CofIMG5uVkP6IBV+ZO9xhC5YEN49nsgYo1DuuMquF9+7EDBVYu4uA==", "cpu": [ "arm64" ], @@ -5387,9 +5338,23 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.3.tgz", - "integrity": "sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.55.1.tgz", + "integrity": "sha512-r3Wv40in+lTsULSb6nnoudVbARdOwb2u5fpeoOAZjFLznp6tDU8kd+GTHmJoqZ9lt6/Sys33KdIHUaQihFcu7g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.55.1.tgz", + "integrity": "sha512-MR8c0+UxAlB22Fq4R+aQSPBayvYa3+9DrwG/i1TKQXFYEaoW3B5b/rkSRIypcZDdWjWnpcvxbNaAJDcSbJU3Lw==", "cpu": [ "loong64" ], @@ -5401,9 +5366,23 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.3.tgz", - "integrity": "sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.55.1.tgz", + "integrity": "sha512-3KhoECe1BRlSYpMTeVrD4sh2Pw2xgt4jzNSZIIPLFEsnQn9gAnZagW9+VqDqAHgm1Xc77LzJOo2LdigS5qZ+gw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.55.1.tgz", + "integrity": "sha512-ziR1OuZx0vdYZZ30vueNZTg73alF59DicYrPViG0NEgDVN8/Jl87zkAPu4u6VjZST2llgEUjaiNl9JM6HH1Vdw==", "cpu": [ "ppc64" ], @@ -5415,9 +5394,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.3.tgz", - "integrity": "sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.55.1.tgz", + "integrity": "sha512-uW0Y12ih2XJRERZ4jAfKamTyIHVMPQnTZcQjme2HMVDAHY4amf5u414OqNYC+x+LzRdRcnIG1YodLrrtA8xsxw==", "cpu": [ "riscv64" ], @@ -5429,9 +5408,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.3.tgz", - "integrity": "sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.55.1.tgz", + "integrity": "sha512-u9yZ0jUkOED1BFrqu3BwMQoixvGHGZ+JhJNkNKY/hyoEgOwlqKb62qu+7UjbPSHYjiVy8kKJHvXKv5coH4wDeg==", "cpu": [ "riscv64" ], @@ -5443,9 +5422,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.3.tgz", - "integrity": "sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.55.1.tgz", + "integrity": "sha512-/0PenBCmqM4ZUd0190j7J0UsQ/1nsi735iPRakO8iPciE7BQ495Y6msPzaOmvx0/pn+eJVVlZrNrSh4WSYLxNg==", "cpu": [ "s390x" ], @@ -5457,9 +5436,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.3.tgz", - "integrity": "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.55.1.tgz", + "integrity": "sha512-a8G4wiQxQG2BAvo+gU6XrReRRqj+pLS2NGXKm8io19goR+K8lw269eTrPkSdDTALwMmJp4th2Uh0D8J9bEV1vg==", "cpu": [ "x64" ], @@ -5471,9 +5450,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.3.tgz", - "integrity": "sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.55.1.tgz", + "integrity": "sha512-bD+zjpFrMpP/hqkfEcnjXWHMw5BIghGisOKPj+2NaNDuVT+8Ds4mPf3XcPHuat1tz89WRL+1wbcxKY3WSbiT7w==", "cpu": [ "x64" ], @@ -5484,10 +5463,24 @@ "linux" ] }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.55.1.tgz", + "integrity": "sha512-eLXw0dOiqE4QmvikfQ6yjgkg/xDM+MdU9YJuP4ySTibXU0oAvnEWXt7UDJmD4UkYialMfOGFPJnIHSe/kdzPxg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.3.tgz", - "integrity": "sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.55.1.tgz", + "integrity": "sha512-xzm44KgEP11te3S2HCSyYf5zIzWmx3n8HDCc7EE59+lTcswEWNpvMLfd9uJvVX8LCg9QWG67Xt75AuHn4vgsXw==", "cpu": [ "arm64" ], @@ -5499,9 +5492,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.3.tgz", - "integrity": "sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.55.1.tgz", + "integrity": "sha512-yR6Bl3tMC/gBok5cz/Qi0xYnVbIxGx5Fcf/ca0eB6/6JwOY+SRUcJfI0OpeTpPls7f194as62thCt/2BjxYN8g==", "cpu": [ "arm64" ], @@ -5513,9 +5506,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.3.tgz", - "integrity": "sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.55.1.tgz", + "integrity": "sha512-3fZBidchE0eY0oFZBnekYCfg+5wAB0mbpCBuofh5mZuzIU/4jIVkbESmd2dOsFNS78b53CYv3OAtwqkZZmU5nA==", "cpu": [ "ia32" ], @@ -5527,9 +5520,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.3.tgz", - "integrity": "sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.55.1.tgz", + "integrity": "sha512-xGGY5pXj69IxKb4yv/POoocPy/qmEGhimy/FoTpTSVju3FYXUQQMFCaZZXJVidsmGxRioZAwpThl/4zX41gRKg==", "cpu": [ "x64" ], @@ -5541,9 +5534,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.3.tgz", - "integrity": "sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.55.1.tgz", + "integrity": "sha512-SPEpaL6DX4rmcXtnhdrQYgzQ5W2uW3SCJch88lB2zImhJRhIIK44fkUrgIV/Q8yUNfw5oyZ5vkeQsZLhCb06lw==", "cpu": [ "x64" ], @@ -5555,14 +5548,14 @@ ] }, "node_modules/@schematics/angular": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-21.0.3.tgz", - "integrity": "sha512-XYOI2WOz8B+ydJ8iUHRXrUyjTx+YGdCQ8b2FlXnU46ksIctVU+zt4Zgu6462xeaPwOFYw6+r+TvaBAZ14a82Gw==", + "version": "21.0.5", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-21.0.5.tgz", + "integrity": "sha512-uNBIilq5bGnln3D7Nbm3/K+Ot++eGj4rygU0DCw//IZiTQU/iSyF3UAsN++iRetu/OMs+97T/RoGPjD22ryiZg==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "21.0.3", - "@angular-devkit/schematics": "21.0.3", + "@angular-devkit/core": "21.0.5", + "@angular-devkit/schematics": "21.0.5", "jsonc-parser": "3.3.1" }, "engines": { @@ -5585,9 +5578,9 @@ } }, "node_modules/@sigstore/core": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-3.0.0.tgz", - "integrity": "sha512-NgbJ+aW9gQl/25+GIEGYcCyi8M+ng2/5X04BMuIgoDfgvp18vDcoNHOQjQsG9418HGNYRxG3vfEXaR1ayD37gg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-3.1.0.tgz", + "integrity": "sha512-o5cw1QYhNQ9IroioJxpzexmPjfCe7gzafd2RY3qnMpxr4ZEja+Jad/U8sgFpaue6bOaF+z7RVkyKVV44FN+N8A==", "dev": true, "license": "Apache-2.0", "engines": { @@ -5605,46 +5598,56 @@ } }, "node_modules/@sigstore/sign": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-4.0.1.tgz", - "integrity": "sha512-KFNGy01gx9Y3IBPG/CergxR9RZpN43N+lt3EozEfeoyqm8vEiLxwRl3ZO5sPx3Obv1ix/p7FWOlPc2Jgwfp9PA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-4.1.0.tgz", + "integrity": "sha512-Vx1RmLxLGnSUqx/o5/VsCjkuN5L7y+vxEEwawvc7u+6WtX2W4GNa7b9HEjmcRWohw/d6BpATXmvOwc78m+Swdg==", "dev": true, "license": "Apache-2.0", "dependencies": { "@sigstore/bundle": "^4.0.0", - "@sigstore/core": "^3.0.0", + "@sigstore/core": "^3.1.0", "@sigstore/protobuf-specs": "^0.5.0", - "make-fetch-happen": "^15.0.2", - "proc-log": "^5.0.0", + "make-fetch-happen": "^15.0.3", + "proc-log": "^6.1.0", "promise-retry": "^2.0.1" }, "engines": { "node": "^20.17.0 || >=22.9.0" } }, + "node_modules/@sigstore/sign/node_modules/proc-log": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", + "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, "node_modules/@sigstore/tuf": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-4.0.0.tgz", - "integrity": "sha512-0QFuWDHOQmz7t66gfpfNO6aEjoFrdhkJaej/AOqb4kqWZVbPWFZifXZzkxyQBB1OwTbkhdT3LNpMFxwkTvf+2w==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-4.0.1.tgz", + "integrity": "sha512-OPZBg8y5Vc9yZjmWCHrlWPMBqW5yd8+wFNl+thMdtcWz3vjVSoJQutF8YkrzI0SLGnkuFof4HSsWUhXrf219Lw==", "dev": true, "license": "Apache-2.0", "dependencies": { "@sigstore/protobuf-specs": "^0.5.0", - "tuf-js": "^4.0.0" + "tuf-js": "^4.1.0" }, "engines": { "node": "^20.17.0 || >=22.9.0" } }, "node_modules/@sigstore/verify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-3.0.0.tgz", - "integrity": "sha512-moXtHH33AobOhTZF8xcX1MpOFqdvfCk7v6+teJL8zymBiDXwEsQH6XG9HGx2VIxnJZNm4cNSzflTLDnQLmIdmw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-3.1.0.tgz", + "integrity": "sha512-mNe0Iigql08YupSOGv197YdHpPPr+EzDZmfCgMc7RPNaZTw5aLN01nBl6CHJOh3BGtnMIj83EeN4butBchc8Ag==", "dev": true, "license": "Apache-2.0", "dependencies": { "@sigstore/bundle": "^4.0.0", - "@sigstore/core": "^3.0.0", + "@sigstore/core": "^3.1.0", "@sigstore/protobuf-specs": "^0.5.0" }, "engines": { @@ -5659,11 +5662,10 @@ "license": "MIT" }, "node_modules/@standard-schema/spec": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", - "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", - "license": "MIT", - "peer": true + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "license": "MIT" }, "node_modules/@tufjs/canonical-json": { "version": "2.0.0", @@ -5676,40 +5678,30 @@ } }, "node_modules/@tufjs/models": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-4.0.0.tgz", - "integrity": "sha512-h5x5ga/hh82COe+GoD4+gKUeV4T3iaYOxqLt41GRKApinPI7DMidhCmNVTjKfhCWFJIGXaFJee07XczdT4jdZQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-4.1.0.tgz", + "integrity": "sha512-Y8cK9aggNRsqJVaKUlEYs4s7CvQ1b1ta2DVPyAimb0I2qhzjNk+A+mxvll/klL0RlfuIUei8BF7YWiua4kQqww==", "dev": true, "license": "MIT", "dependencies": { "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.5" + "minimatch": "^10.1.1" }, "engines": { "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@tufjs/models/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/@tufjs/models/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", + "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^2.0.1" + "@isaacs/brace-expansion": "^5.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -5986,9 +5978,9 @@ "license": "MIT" }, "node_modules/@types/d3-shape": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz", - "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", + "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", "license": "MIT", "dependencies": { "@types/d3-path": "*" @@ -6074,9 +6066,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.19.7", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.7.tgz", - "integrity": "sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==", + "version": "4.19.8", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz", + "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==", "dev": true, "license": "MIT", "dependencies": { @@ -6110,9 +6102,9 @@ } }, "node_modules/@types/jasmine": { - "version": "5.1.13", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-5.1.13.tgz", - "integrity": "sha512-MYCcDkruFc92LeYZux5BC0dmqo2jk+M5UIZ4/oFnAPCXN9mCcQhLyj7F3/Za7rocVyt5YRr1MmqJqFlvQ9LVcg==", + "version": "5.1.14", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-5.1.14.tgz", + "integrity": "sha512-16bJdpgUPNKXuaelVxuLZUeDd02+PnF0aQd5HY4xLWoUOMoRE+CyNkRpjRMIcPBCR1dscSb52pmFNILAN1uzkw==", "dev": true, "license": "MIT" }, @@ -6131,9 +6123,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "25.0.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.2.tgz", - "integrity": "sha512-gWEkeiyYE4vqjON/+Obqcoeffmk0NF15WSBwSs7zwVA2bAbTaE0SJ7P0WNGoJn8uE7fiaV5a7dKYIJriEqOrmA==", + "version": "25.0.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.6.tgz", + "integrity": "sha512-NNu0sjyNxpoiW3YuVFfNz7mxSQ+S4X2G28uqg2s+CzoqoQjLPsWSbsFFyztIAqt2vb8kfEAsJNepMGPTxFDx3Q==", "dev": true, "license": "MIT", "dependencies": { @@ -6836,9 +6828,9 @@ } }, "node_modules/baseline-browser-mapping": { - "version": "2.9.7", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.7.tgz", - "integrity": "sha512-k9xFKplee6KIio3IDbwj+uaCLpqzOwakOgmqzPezM0sFJlFKcg30vk2wOiAJtkTSfx0SSQDSe8q+mWA/fSH5Zg==", + "version": "2.9.14", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.14.tgz", + "integrity": "sha512-B0xUquLkiGLgHhpPBqvl7GWegWBUNuujQ6kXd/r1U38ElPT6Ok8KZ8e+FpUGEc2ZoRQUzq/aUnaKFc/svWUGSg==", "dev": true, "license": "Apache-2.0", "bin": { @@ -6896,9 +6888,9 @@ } }, "node_modules/body-parser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.1.tgz", - "integrity": "sha512-nfDwkulwiZYQIGwxdy0RUmowMhKcFVcYXUU7m4QlKYim1rUtg83xm2yjZ40QjDuc291AJjjeSc9b++AWHSgSHw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz", + "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==", "dev": true, "license": "MIT", "dependencies": { @@ -6908,7 +6900,7 @@ "http-errors": "^2.0.0", "iconv-lite": "^0.7.0", "on-finished": "^2.4.1", - "qs": "^6.14.0", + "qs": "^6.14.1", "raw-body": "^3.0.1", "type-is": "^2.0.1" }, @@ -7151,9 +7143,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001760", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001760.tgz", - "integrity": "sha512-7AAMPcueWELt1p3mi13HR/LHH0TJLT11cnwDJEs3xA4+CK/PLKeO9Kl1oru24htkyUKtkGCvAx4ohB0Ttry8Dw==", + "version": "1.0.30001764", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001764.tgz", + "integrity": "sha512-9JGuzl2M+vPL+pz70gtMF9sHdMFbY9FJaQBi186cHKH3pSzDvzoUJUPV6fqiKIMyXbud9ZLg4F3Yza1vJ1+93g==", "dev": true, "funding": [ { @@ -7422,11 +7414,13 @@ "license": "MIT" }, "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==", - "dev": true, - "license": "MIT" + "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/compressible": { "version": "2.0.18", @@ -7683,19 +7677,6 @@ "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==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/core-js-compat": { "version": "3.47.0", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.47.0.tgz", @@ -8086,15 +8067,6 @@ "node": ">=12" } }, - "node_modules/d3-dsv/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, "node_modules/d3-dsv/node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -8696,9 +8668,9 @@ } }, "node_modules/engine.io": { - "version": "6.6.4", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.4.tgz", - "integrity": "sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==", + "version": "6.6.5", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.5.tgz", + "integrity": "sha512-2RZdgEbXmp5+dVbRm0P7HQUImZpICccJy7rN7Tv+SFa55pH+lxnuw6/K1ZxxBfHoYpSkHLAO92oa8O4SwFXA2A==", "dev": true, "license": "MIT", "dependencies": { @@ -8708,9 +8680,9 @@ "base64id": "2.0.0", "cookie": "~0.7.2", "cors": "~2.8.5", - "debug": "~4.3.1", + "debug": "~4.4.1", "engine.io-parser": "~5.2.1", - "ws": "~8.17.1" + "ws": "~8.18.3" }, "engines": { "node": ">=10.2.0" @@ -8740,24 +8712,6 @@ "node": ">= 0.6" } }, - "node_modules/engine.io/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/engine.io/node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -8909,9 +8863,9 @@ } }, "node_modules/es-module-lexer": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", - "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", + "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", "dev": true, "license": "MIT" }, @@ -9515,16 +9469,16 @@ } }, "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==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "license": "ISC", "dependencies": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 6" + "node": ">=10.13.0" } }, "node_modules/glob-to-regex.js": { @@ -9636,8 +9590,19 @@ "node": ">= 0.4" } }, - "node_modules/hosted-git-info": { - "version": "9.0.2", + "node_modules/hono": { + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/hono/-/hono-4.11.3.tgz", + "integrity": "sha512-PmQi306+M/ct/m5s66Hrg+adPnkD5jiO6IjA7WhWw0gSBSo1EcRegwuI1deZ+wd5pzCGynCcn2DprnE4/yEV4w==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/hosted-git-info": { + "version": "9.0.2", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-9.0.2.tgz", "integrity": "sha512-M422h7o/BR3rmCQ8UHi7cyyMqKltdP9Uo+J2fXK+RSAY+wTcKOIRyhTuKv4qn+DJf3g+PL890AzId5KZpX+CBg==", "dev": true, @@ -9859,9 +9824,9 @@ } }, "node_modules/iconv-lite": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.1.tgz", - "integrity": "sha512-2Tth85cXwGFHfvRgZWszZSvdo+0Xsqmw8k8ZwxScfcBneNUraK+dxRxRm24nszx80Y0TVio8kKLt5sLE7ZCLlw==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", "dev": true, "license": "MIT", "dependencies": { @@ -10333,35 +10298,6 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-report/node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/istanbul-lib-report/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==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", @@ -10423,6 +10359,22 @@ "node": ">= 10.13.0" } }, + "node_modules/jest-worker/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/jiti": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", @@ -10493,6 +10445,13 @@ "dev": true, "license": "MIT" }, + "node_modules/json-schema-typed": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz", + "integrity": "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==", + "dev": true, + "license": "BSD-2-Clause" + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -10790,6 +10749,19 @@ "dev": true, "license": "MIT" }, + "node_modules/karma/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/karma/node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -11121,6 +11093,21 @@ } } }, + "node_modules/less/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/less/node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -11135,6 +11122,17 @@ "node": ">=4" } }, + "node_modules/less/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, "node_modules/less/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -11431,29 +11429,19 @@ } }, "node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "semver": "^7.5.3" }, "engines": { - "node": ">=6" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "license": "ISC", - "optional": true, - "bin": { - "semver": "bin/semver" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/make-fetch-happen": { @@ -11607,19 +11595,6 @@ "uuid": "^11.1.0" } }, - "node_modules/mermaid/node_modules/uuid": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", - "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist/esm/bin/uuid" - } - }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -11957,9 +11932,9 @@ "license": "MIT" }, "node_modules/msgpackr": { - "version": "1.11.5", - "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.5.tgz", - "integrity": "sha512-UjkUHN0yqp9RWKy0Lplhh+wlpdt9oQBYgULZOiFhV3VclSF1JnSQWZ5r9gORQlNYaUKQoR8itv7g7z1xDDuACA==", + "version": "1.11.8", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.8.tgz", + "integrity": "sha512-bC4UGzHhVvgDNS7kn9tV8fAucIYUBuGojcaLiz7v+P63Lmtm0Xeji8B/8tYKddALXxJLpwIeBmUN3u64C4YkRA==", "dev": true, "license": "MIT", "optional": true, @@ -12488,9 +12463,9 @@ } }, "node_modules/ordered-binary": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.6.0.tgz", - "integrity": "sha512-IQh2aMfMIDbPjI/8a3Edr+PiOpcsB7yo8NdW7aHWVaoR/pcDldunMvnnwbk/auPGqmKeAdxtZl7MHX/QmPwhvQ==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.6.1.tgz", + "integrity": "sha512-QkCdPooczexPLiXIrbVOPYkR3VO3T6v2OyKRkR1Xbhpy7/LAVXwahnRCgRp78Oe/Ehf0C/HATAxfSr6eA1oX+w==", "dev": true, "license": "MIT", "optional": true @@ -13050,28 +13025,6 @@ "dev": true, "license": "MIT" }, - "node_modules/primeng": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/primeng/-/primeng-21.0.1.tgz", - "integrity": "sha512-lCmMpr2cgL4r/HPByMnrKTPgwYJAQhMDbtu/u8VL3Otnzs8KSKY7bmSnH6cqvucsk8lr/VSKJTxbssb9gtmOVg==", - "license": "SEE LICENSE IN LICENSE.md", - "dependencies": { - "@primeuix/motion": "^0.0.10", - "@primeuix/styled": "^0.7.4", - "@primeuix/styles": "^2.0.2", - "@primeuix/utils": "^0.6.3", - "tslib": "^2.3.0" - }, - "peerDependencies": { - "@angular/cdk": "^21.0.0", - "@angular/common": "^21.0.0", - "@angular/core": "^21.0.0", - "@angular/forms": "^21.0.0", - "@angular/platform-browser": "^21.0.0", - "@angular/router": "^21.0.0", - "rxjs": "^6.0.0 || ^7.8.1" - } - }, "node_modules/proc-log": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-5.0.0.tgz", @@ -13143,9 +13096,9 @@ } }, "node_modules/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz", + "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -13486,9 +13439,9 @@ } }, "node_modules/rollup": { - "version": "4.53.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.3.tgz", - "integrity": "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==", + "version": "4.55.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.55.1.tgz", + "integrity": "sha512-wDv/Ht1BNHB4upNbK74s9usvl7hObDnvVzknxqY/E/O3X6rW1U1rV1aENEfJ54eFZDTNo7zv1f5N4edCluH7+A==", "dev": true, "license": "MIT", "dependencies": { @@ -13502,28 +13455,31 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.53.3", - "@rollup/rollup-android-arm64": "4.53.3", - "@rollup/rollup-darwin-arm64": "4.53.3", - "@rollup/rollup-darwin-x64": "4.53.3", - "@rollup/rollup-freebsd-arm64": "4.53.3", - "@rollup/rollup-freebsd-x64": "4.53.3", - "@rollup/rollup-linux-arm-gnueabihf": "4.53.3", - "@rollup/rollup-linux-arm-musleabihf": "4.53.3", - "@rollup/rollup-linux-arm64-gnu": "4.53.3", - "@rollup/rollup-linux-arm64-musl": "4.53.3", - "@rollup/rollup-linux-loong64-gnu": "4.53.3", - "@rollup/rollup-linux-ppc64-gnu": "4.53.3", - "@rollup/rollup-linux-riscv64-gnu": "4.53.3", - "@rollup/rollup-linux-riscv64-musl": "4.53.3", - "@rollup/rollup-linux-s390x-gnu": "4.53.3", - "@rollup/rollup-linux-x64-gnu": "4.53.3", - "@rollup/rollup-linux-x64-musl": "4.53.3", - "@rollup/rollup-openharmony-arm64": "4.53.3", - "@rollup/rollup-win32-arm64-msvc": "4.53.3", - "@rollup/rollup-win32-ia32-msvc": "4.53.3", - "@rollup/rollup-win32-x64-gnu": "4.53.3", - "@rollup/rollup-win32-x64-msvc": "4.53.3", + "@rollup/rollup-android-arm-eabi": "4.55.1", + "@rollup/rollup-android-arm64": "4.55.1", + "@rollup/rollup-darwin-arm64": "4.55.1", + "@rollup/rollup-darwin-x64": "4.55.1", + "@rollup/rollup-freebsd-arm64": "4.55.1", + "@rollup/rollup-freebsd-x64": "4.55.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.55.1", + "@rollup/rollup-linux-arm-musleabihf": "4.55.1", + "@rollup/rollup-linux-arm64-gnu": "4.55.1", + "@rollup/rollup-linux-arm64-musl": "4.55.1", + "@rollup/rollup-linux-loong64-gnu": "4.55.1", + "@rollup/rollup-linux-loong64-musl": "4.55.1", + "@rollup/rollup-linux-ppc64-gnu": "4.55.1", + "@rollup/rollup-linux-ppc64-musl": "4.55.1", + "@rollup/rollup-linux-riscv64-gnu": "4.55.1", + "@rollup/rollup-linux-riscv64-musl": "4.55.1", + "@rollup/rollup-linux-s390x-gnu": "4.55.1", + "@rollup/rollup-linux-x64-gnu": "4.55.1", + "@rollup/rollup-linux-x64-musl": "4.55.1", + "@rollup/rollup-openbsd-x64": "4.55.1", + "@rollup/rollup-openharmony-arm64": "4.55.1", + "@rollup/rollup-win32-arm64-msvc": "4.55.1", + "@rollup/rollup-win32-ia32-msvc": "4.55.1", + "@rollup/rollup-win32-x64-gnu": "4.55.1", + "@rollup/rollup-win32-x64-msvc": "4.55.1", "fsevents": "~2.3.2" } }, @@ -13630,9 +13586,9 @@ "license": "MIT" }, "node_modules/sass": { - "version": "1.96.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.96.0.tgz", - "integrity": "sha512-8u4xqqUeugGNCYwr9ARNtQKTOj4KmYiJAVKXf2CTIivTCR51j96htbMKWDru8H5SaQWpyVgTfOF8Ylyf5pun1Q==", + "version": "1.97.2", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.97.2.tgz", + "integrity": "sha512-y5LWb0IlbO4e97Zr7c3mlpabcbBtS+ieiZ9iwDooShpFKWXf62zz5pEPdwrLYm+Bxn1fnbwFGzHuCLSA9tBmrw==", "dev": true, "license": "MIT", "dependencies": { @@ -13692,12 +13648,15 @@ } }, "node_modules/sax": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.3.tgz", - "integrity": "sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.4.tgz", + "integrity": "sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==", "dev": true, "license": "BlueOak-1.0.0", - "optional": true + "optional": true, + "engines": { + "node": ">=11.0.0" + } }, "node_modules/schema-utils": { "version": "4.3.3", @@ -13772,26 +13731,30 @@ } }, "node_modules/send": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", - "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", "dev": true, "license": "MIT", "dependencies": { - "debug": "^4.3.5", + "debug": "^4.4.3", "encodeurl": "^2.0.0", "escape-html": "^1.0.3", "etag": "^1.8.1", "fresh": "^2.0.0", - "http-errors": "^2.0.0", - "mime-types": "^3.0.1", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", "ms": "^2.1.3", "on-finished": "^2.4.1", "range-parser": "^1.2.1", - "statuses": "^2.0.1" + "statuses": "^2.0.2" }, "engines": { "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/serialize-javascript": { @@ -13938,9 +13901,9 @@ } }, "node_modules/serve-static": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", - "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", "dev": true, "license": "MIT", "dependencies": { @@ -13951,6 +13914,10 @@ }, "engines": { "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/setprototypeof": { @@ -14124,18 +14091,18 @@ } }, "node_modules/sigstore": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-4.0.0.tgz", - "integrity": "sha512-Gw/FgHtrLM9WP8P5lLcSGh9OQcrTruWCELAiS48ik1QbL0cH+dfjomiRTUE9zzz+D1N6rOLkwXUvVmXZAsNE0Q==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-4.1.0.tgz", + "integrity": "sha512-/fUgUhYghuLzVT/gaJoeVehLCgZiUxPCPMcyVNY0lIf/cTCz58K/WTI7PefDarXxp9nUKpEwg1yyz3eSBMTtgA==", "dev": true, "license": "Apache-2.0", "dependencies": { "@sigstore/bundle": "^4.0.0", - "@sigstore/core": "^3.0.0", + "@sigstore/core": "^3.1.0", "@sigstore/protobuf-specs": "^0.5.0", - "@sigstore/sign": "^4.0.0", - "@sigstore/tuf": "^4.0.0", - "@sigstore/verify": "^3.0.0" + "@sigstore/sign": "^4.1.0", + "@sigstore/tuf": "^4.0.1", + "@sigstore/verify": "^3.1.0" }, "engines": { "node": "^20.17.0 || >=22.9.0" @@ -14170,16 +14137,16 @@ } }, "node_modules/socket.io": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz", - "integrity": "sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==", + "version": "4.8.3", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.3.tgz", + "integrity": "sha512-2Dd78bqzzjE6KPkD5fHZmDAKRNe3J15q+YHDrIsy9WEkqttc7GY+kT9OBLSMaPbQaEd0x1BjcmtMtXkfpc+T5A==", "dev": true, "license": "MIT", "dependencies": { "accepts": "~1.3.4", "base64id": "~2.0.0", "cors": "~2.8.5", - "debug": "~4.3.2", + "debug": "~4.4.1", "engine.io": "~6.6.0", "socket.io-adapter": "~2.5.2", "socket.io-parser": "~4.2.4" @@ -14189,66 +14156,30 @@ } }, "node_modules/socket.io-adapter": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", - "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "~4.3.4", - "ws": "~8.17.1" - } - }, - "node_modules/socket.io-adapter/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.6.tgz", + "integrity": "sha512-DkkO/dz7MGln0dHn5bmN3pPy+JmywNICWrJqVWiVOyvXjWQFIv9c2h24JrQLLFJ2aQVQf/Cvl1vblnd4r2apLQ==", "dev": true, "license": "MIT", "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "debug": "~4.4.1", + "ws": "~8.18.3" } }, "node_modules/socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.5.tgz", + "integrity": "sha512-bPMmpy/5WWKHea5Y/jYAP6k74A+hvmRCQaJuJB6I/ML5JZq/KfNieUVo/3Mh7SAqn7TyFdIo6wqYHInG1MU1bQ==", "dev": true, "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" + "debug": "~4.4.1" }, "engines": { "node": ">=10.0.0" } }, - "node_modules/socket.io-parser/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/socket.io/node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -14263,24 +14194,6 @@ "node": ">= 0.6" } }, - "node_modules/socket.io/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/socket.io/node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -14326,6 +14239,16 @@ "websocket-driver": "^0.7.4" } }, + "node_modules/sockjs/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==", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/socks": { "version": "2.8.7", "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", @@ -14600,19 +14523,16 @@ "license": "MIT" }, "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==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "node": ">=8" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -14723,6 +14643,13 @@ } } }, + "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==", + "dev": true, + "license": "MIT" + }, "node_modules/thingies": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.5.0.tgz", @@ -14849,15 +14776,15 @@ "license": "0BSD" }, "node_modules/tuf-js": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-4.0.0.tgz", - "integrity": "sha512-Lq7ieeGvXDXwpoSmOSgLWVdsGGV9J4a77oDTAPe/Ltrqnnm/ETaRlBAQTH5JatEh8KXuE6sddf9qAv1Q2282Hg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-4.1.0.tgz", + "integrity": "sha512-50QV99kCKH5P/Vs4E2Gzp7BopNV+KzTXqWeaxrfu5IQJBOULRsTIS9seSsOVT8ZnGXzCyx55nYWAi4qJzpZKEQ==", "dev": true, "license": "MIT", "dependencies": { - "@tufjs/models": "4.0.0", - "debug": "^4.4.1", - "make-fetch-happen": "^15.0.0" + "@tufjs/models": "4.1.0", + "debug": "^4.4.3", + "make-fetch-happen": "^15.0.1" }, "engines": { "node": "^20.17.0 || >=22.9.0" @@ -14927,9 +14854,9 @@ } }, "node_modules/ufo": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", - "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.2.tgz", + "integrity": "sha512-heMioaxBcG9+Znsda5Q8sQbWnLJSl98AFDXTO80wELWEzX3hordXsTdxrIfMQoO9IY1MEnoGoPjpoKpMj+Yx0Q==", "license": "MIT" }, "node_modules/undici": { @@ -15040,9 +14967,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.2.tgz", - "integrity": "sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", "dev": true, "funding": [ { @@ -15088,13 +15015,16 @@ } }, "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==", - "dev": true, + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], "license": "MIT", "bin": { - "uuid": "dist/bin/uuid" + "uuid": "dist/esm/bin/uuid" } }, "node_modules/validate-npm-package-license": { @@ -15779,9 +15709,9 @@ "optional": true }, "node_modules/webpack": { - "version": "5.102.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.102.1.tgz", - "integrity": "sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ==", + "version": "5.104.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.104.0.tgz", + "integrity": "sha512-5DeICTX8BVgNp6afSPYXAFjskIgWGlygQH58bcozPOXgo2r/6xx39Y1+cULZ3gTxUYQP88jmwLj2anu4Xaq84g==", "dev": true, "license": "MIT", "dependencies": { @@ -15793,21 +15723,21 @@ "@webassemblyjs/wasm-parser": "^1.14.1", "acorn": "^8.15.0", "acorn-import-phases": "^1.0.3", - "browserslist": "^4.26.3", + "browserslist": "^4.28.1", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.3", - "es-module-lexer": "^1.2.1", + "enhanced-resolve": "^5.17.4", + "es-module-lexer": "^2.0.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", + "loader-runner": "^4.3.1", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^4.3.3", "tapable": "^2.3.0", - "terser-webpack-plugin": "^5.3.11", + "terser-webpack-plugin": "^5.3.16", "watchpack": "^2.4.4", "webpack-sources": "^3.3.3" }, @@ -16092,6 +16022,19 @@ "node": ">= 0.6" } }, + "node_modules/webpack-dev-server/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/webpack-dev-server/node_modules/http-proxy-middleware": { "version": "2.0.9", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", @@ -16256,9 +16199,9 @@ } }, "node_modules/webpack-dev-server/node_modules/send": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.1.tgz", - "integrity": "sha512-p4rRk4f23ynFEfcD9LA0xRYngj+IyGiEYyqqOak8kaN0TvNmuxC2dcVeBn62GpCeR2CpWqyHCNScTP91QbAVFg==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", "dev": true, "license": "MIT", "dependencies": { @@ -16268,123 +16211,34 @@ "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "range-parser": "~1.2.1", - "statuses": "2.0.1" + "statuses": "~2.0.2" }, "engines": { "node": ">= 0.8.0" } }, - "node_modules/webpack-dev-server/node_modules/send/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==", - "dev": true, - "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/webpack-dev-server/node_modules/send/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/webpack-dev-server/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==", + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", "dev": true, "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/webpack-dev-server/node_modules/serve-static/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==", - "dev": true, - "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/webpack-dev-server/node_modules/serve-static/node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "dev": true, - "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" + "send": "~0.19.1" }, "engines": { "node": ">= 0.8.0" } }, - "node_modules/webpack-dev-server/node_modules/serve-static/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==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/webpack-dev-server/node_modules/serve-static/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/webpack-dev-server/node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -16399,28 +16253,6 @@ "node": ">= 0.6" } }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.18.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", - "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/webpack-merge": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", @@ -16640,9 +16472,9 @@ "license": "ISC" }, "node_modules/ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", "dev": true, "license": "MIT", "engines": { @@ -16790,9 +16622,9 @@ } }, "node_modules/zod-to-json-schema": { - "version": "3.25.0", - "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.0.tgz", - "integrity": "sha512-HvWtU2UG41LALjajJrML6uQejQhNJx+JBO9IflpSja4R03iNWfKXrj6W2h7ljuLyc1nKS+9yDyL/9tD1U/yBnQ==", + "version": "3.25.1", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.1.tgz", + "integrity": "sha512-pM/SU9d3YAggzi6MtR4h7ruuQlqKtad8e9S0fmxcMi+ueAK5Korys/aWcV9LIIHTVbj01NdzxcnXSN+O74ZIVA==", "dev": true, "license": "ISC", "peerDependencies": { diff --git a/frontend/package.json b/frontend/package.json index 30973dd..1064005 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -33,13 +33,10 @@ "@angular/platform-browser-dynamic": "^21.0.5", "@angular/router": "^21.0.0", "@fortawesome/fontawesome-free": "^7.1.0", - "@primeuix/themes": "^2.0.2", "material-icons": "^1.13.14", "mermaid": "^11.12.2", - "primeng": "^21.0.1", "rxjs": "~7.8.0", "showdown": "^2.1.0", - "tslib": "^2.3.0", "zone.js": "^0.16.0" }, "devDependencies": { diff --git a/frontend/src/assets/url-explanation.png b/frontend/src/assets/url-explanation.png new file mode 100644 index 0000000000000000000000000000000000000000..a08e102573998c6a0a2b9722e9cc3abe38bd5cfc GIT binary patch literal 34590 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 literal 0 HcmV?d00001 diff --git a/frontend/src/assets/user-manual.md b/frontend/src/assets/user-manual.md index 438b29c..4a26376 100644 --- a/frontend/src/assets/user-manual.md +++ b/frontend/src/assets/user-manual.md @@ -47,6 +47,31 @@ networkSim --> third style networkSim stroke-width:3px ``` +## How to use Network Simulator + +Lets say you have an application that calls a third-party service at the URL: `https://payment-gateway.com/`. +The payment gateway has an OpenAPI specification, where you have generated a client for it. + +It has an operation to list accounts on: `GET /v1/accounts`. + +You therefore have set a `baseURL` for you client to `https://payment-gateway.com` and the client can then call the operation with the full URL: `https://payment-gateway.com/v1/accounts`. + +### URL Structure for calling through Network Simulator + +To use the Network Simulator, you first need to define a target system in the Network Simulator UI. +You can name it `payment-gateway` and set the target URL to `https://payment-gateway.com`. + +You must then change the `baseURL` of your client to point to the Network Simulator instead. + +Assuming the Network Simulator is running locally on port `9898`, you would set the `baseURL` to `http://localhost:9898/forward/payment-gateway`. + +So, by setting your client's `baseURL` to `http://localhost:9898/forward/payment-gateway`, all requests to the payment gateway will now go through the Network Simulator. +You can then configure different network and the operation `GET /v1/accounts` will be called as `http://localhost:9898/forward/payment-gateway/v1/accounts`. + +The URL structure is as follows: + +![URL Structure](assets/url-explanation.png) + # User manual This describes how to use the Network Simulator application to configure and simulate various network conditions. diff --git a/logo/network-simulator-100.png b/images/logo/network-simulator-100.png similarity index 100% rename from logo/network-simulator-100.png rename to images/logo/network-simulator-100.png diff --git a/logo/network-simulator-1024.png b/images/logo/network-simulator-1024.png similarity index 100% rename from logo/network-simulator-1024.png rename to images/logo/network-simulator-1024.png diff --git a/logo/network-simulator-300.png b/images/logo/network-simulator-300.png similarity index 100% rename from logo/network-simulator-300.png rename to images/logo/network-simulator-300.png diff --git a/logo/network-simulator-48.png b/images/logo/network-simulator-48.png similarity index 100% rename from logo/network-simulator-48.png rename to images/logo/network-simulator-48.png diff --git a/logo/network-simulator-60.png b/images/logo/network-simulator-60.png similarity index 100% rename from logo/network-simulator-60.png rename to images/logo/network-simulator-60.png diff --git a/images/url-explanation.png b/images/url-explanation.png new file mode 100644 index 0000000000000000000000000000000000000000..29733e42cc7fb4f63034796d9e9287eb9dfd408e GIT binary patch literal 52077 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 Q9QgA@T3M=G!sPk?0MxBK$p8QV literal 0 HcmV?d00001 diff --git a/images/url-explanation.pptx b/images/url-explanation.pptx new file mode 100644 index 0000000000000000000000000000000000000000..b14db32e22a4bef9dceaf95fd10aab92235b1a2d GIT binary patch literal 42075 zcmeFYQ;5BKTTiH8|6 zV#Iui(Z<(D|9bCJUJ4il1po{H0ssJj5P;?C*k%O~0ALFi000>P0!T~P*2c-$#z{}v z-OkuihtAE~iXa~Zh$0sN===Bo_w_$`1twEA6gLVtoO@ocyukleEHXw&D~zL%YVX6OBFD)iNDhTW@QMS zNeo|I`#el*>?`~hq9`CVg1)(MaPng5)Kb5JENhxsMVa&2+dNUC2$G8em7z5{ko<+x z4%tHFi-f#e^6`l|6D2ykIxrp(6}+QQV*-_MJ@e2?=HAF)Ft)-~SDwVEp$eAwt7eHq z{xeHdz2YZb?E0%V`t_)XRC!_|;fP$(BY9$Np3qW#Td$(4OwGa=P(1eDjbvitP?d-c zuG@Ujrc=iPmNGNm1P)ZfjAVSFOoL(<}WP1YlJ^%RV@Ai3oM-*sZ>W%%*(E~Gav_S{%wIfSqPn2ErBXgJA{+o>>E@>^H#P$erJuo0T?lLU~l1w7teQh zkBIG=DknV~s-KiySD?i6h^I^(OV;EYd z5Z7`9&FB5`hOfnC$TCXdEZ!JeCQaUKj6P?07KWOdi!a5AkE}u%kcqCDr4|~J<#}s1 zf|*pK`-oNcC1dvLnm6mLy5K#_EtY-KSsZ3tf}t_|qYWkIREgcmTb6L0*opa83uQv-*CR;k^s&!3HhJ9enP=QO>LUtJ_SCCStzbu)gjF=x;_?fm1Kq*+|l zn1TZU__F{2p#Il2`H$7O(9*I!Xh!nk7x)U;b**+s76F?=YexewNf|QP;A>#Q?Vy(8 zN_1ch|9pm{Tw5D#)tByVa}nKN?<)&8(;jG4P{Nb61=ym zv+9tsyyUBDT6UU^tnrp9YSGtlSDe~xvgB7c+SKv>tg@C{cU|WH-20OSo6LN(LQ?t& zwaJtg4KK?0)x`JAzJR?X$KLYx+rdWd3aS}2WdzyobNwTyoyl}mUcKkAZfc@Bu0l&k?rkqbdK_TV3-KStFO$SfThaM_D(7jIq&^7cR zuz=(Q3N>*oQ&dDU?PXwzY`?T|*z>JtBb3n4G*NY8o=u1OdM9zp0_RF*u@?Z5Z#Z({ z!8IM7kx()}Qr~|+k~tAAOh^GSB5ik+TSzcwbjQRSSJ46g@D5B}|7?9Pw1MIBq2o4WamBy&Rh z^KBuv6)Hr4~O*z=syi#2j+dGAaH*IRdV zui6J>47FRJdr%}PhDKd(G>6!#ZOMYG@TD1Wu`|L@b+bD{0NPRE7AKrT0l^9E+IZZ| z%UZx)+E7Q|&w8VZx$_6#b4rJ8j0b!?t8Opf@UlOu94*z`Tv)?$^hEQ*-vvAdEVW42 zswr9Io;%E~$`y}x9nW$5*=JtkM-UmNGzEb};Q%d=D5VLIB%=(4Nh3g$f}twvTk{0D zvw0yci<%FTM(~))PotU`0oe)$=*N)Yv4WsS@&aJx#I-Ng&c9&~Ub;Nhb!K?;pg9H# zr|3)?WbA{_8cSjOXkb`A<;$`s`pOms_!#){KA=Z^U}Vy$nF{D&c}|5BhT%&Uz>f|a zqyI@V;0#PnPiwYVHfbhD_4XHa6}C$T^voBXt`(UMwc$r14D`N^L@C@eMHxw| z{nR`jSS1qBUa@h?$`$o#&WUh}n4DmTFp5E{eAnysIQc+=ds2n!lR{1WMqXBLyZS4S zhPOXj`XRk!I?+Cio)SMjvyb3xguxo%;PcfbjSwNj?eKuPiZCnTnf*$6ppE>>Lj&tP zm>dcyjv_}9i%}5wcx_1}Mz<=0)g106ZFJ$<@;VNKVY0b;6Mk|8IwRVp(*X63)=DB4 z(ugt^A(D`#G`gj`#w*IxFm#v-n+Jxgx!jW|eR(c8Po>ey%r4TOe{7F#w0F2|5I20} z8A%_?&oCBcipK?^kP;D6C>lhXp@>36kf=~WGWU(~4`4wYzD-L}Pyq%9^CFg&`fqS+ z09W>LDBUHocGd@{3}D%Cj{bmqBtZ^4=(H0fFwY*QAcqvmTL>5`E999DPvoC^b)+LD zrg{gkfyVSJCBAmjGZ!8n@m12TOagftL6 z)Raodo=`|RF!G)y&VJkh{g8IALl7?L9n^h88)Jh_>Z<|Ee}v=t2^kJr8<6m_z~an# zL%XGq=Tp15^5VJu<95>%i0eE`##`Z>$qb0sw#y z@Lk8>Y~|l*ik*Y8<9F+C;AC!V^MA<7H|q!d?*6}T_@Di%Oze{!{Hy!*zeYH=S*UIg zw`xa6d?E;~hL5!_v1X7FLQ;Ew3Rbafrx_BCzBfId8Q~|acr>LS!>dBpWTdFafhd<; z5o&_bZGlH`5y(6#KUSpv$&ef1?C#U-Av)%b;gH1;4T64z;k2E>Evd6)Fr!lpTW&XR zw&92`xuG~v!M;tTbNCv+z6v}ZM!vQPb5Yz4QjZJsIikfLReGbVcFjxWyAM^~DE2&> zC5CO)WQ>{u=O%k9smu!=1M@rg+&jbbs)#Dq?y z4=+gogoe;Q(?DVpi6}YI?B&IMi8*T-2V!BOx_=p{jU;0qWT1BYb02*y6mk}sql4W-)ON>FYP?KKa*$Z;C_?zoB$KVgB zuFuh!&ROtMuY6U3eF9ImrX6PbG?INi%PQm<4)+-loF2R!N63CzB%6#MYOeQ&MPjS1 z=aGOgi=rOk3K*bq>8mMTk($J_nnokf^qQD!`|0E04vE{P_md4rOx?z1zPuV z{ddYv9=&h}fui|AWd9lvkQ~smR;0rGA^RG;RdhVCsEz#FfH=w4lY%@9KHZ6uU$gfL z@-X;4M+a`iEvC3XFdJXtC#_d7sb^ekiEGW{ZFY>Hi>cH@i3y1s+QbhiLAiRTvh+352l}3H15Ew!|_u#3@`)#q;v@(g$k+Zswse z3vqI-fYxr}52KK3$6&ZV9&1($C*c2Y zR)O>XhpWJUeb|cpy-Qq?{u1KK5Y!;?~je}{3`D&EYgR%$&8x|=ENe}VyJO`$it8{;u3n}hybh8TzD%_tx^Q$9a z(Y@E$91|`K7ItN}(Tp21Gw^4a4l_jQHI!=0tzR}f54&DJcUSbbo!`AxaOx*qXkmNJ z-n`k^)f8Rc8#Hoi+@{{Tnh#(%wHotHkm!aSR3V-)YtJo28C^_Ssj(fk>G2x6b!f&j z$*sGq-HE{w`l!hWKYdhOJ_46{!K#ou!7;ktJjCzn1FVcGsco=4(pP%{7~u)-|1?rX z1}`z#sY>cTs%Y4Gmt0SSoRqIv`5NNY-Av9U+;Y3EXK|1M_@1$WJpwEwn^m%co*F;~ZX4K4co6Ho$ns8^7R|fCeln9qN zJ#b>2xjEs4bY&80MmX5`Ofg|`nwu2Bc#ICmMddHT$&1qR7wMuYO?(uqBD?aVYct<@ zGEzpgwyai8Xg7Ly#Cp1G#nh)Rg8o4ABvBN3MLl4U#*N8eEP|7aM<|Hh#~{tNHAajc zV7Tdt0taA}tC}`sJLV?iL!5IBvHmP$Pe%(??1byonZg)Vwr;^%N|drM24z*KygHwL z%Dw)X#<4i;wi|;0C1$K+%0uwPAjk+we%AJamILh4LQkLH+^SqLlLv~Ykx--Q_A(7V zS)NjISHIuhQzl+gtUMt)Qu9jtvM+~m(K9KdcFASMGL8Gjjgj>>rva(1%xFvlDm)fq z!0mpMN5zkMql_hu<&S<84{ak}M9$IdLb;lM7^Q&K+a9PDwXUCQwpzJxDr0^sjgMBv z8unzQWS8g4^c!2H`kd@n05Y^j_a!m)E%D*}s$g?QuzkEpwe?6%&8Ckx9|gL)9wBtd&zyQj|h$vLrGmAN0TN`<;@xu)wW+7cMI z!Yv=_+d6Q;ji{L=G;iimLS9%8bk+CB6IzBQhQij3>1kPBv=?z>t?#L*ZLh9F^)rMYI3Mu8aaEXhM}imjZN&u0JFs?N2e?aG;TaP%s5QFZ$Z}RoFi) zFnT-v(B>9TYL%MOY<#1;y7()krvWAv^o{Ch@`&*Cm9yhKFe4Wv-9e#7Bk~qOc#@FC z68kScyFz8GphF}n##0RrZD@boXjy~USxq0BBB`g-E6!B#5ZXh=@P-z*%ApKrJK2XI zk)_8zf*pKC9jCq1&-0G;8iNda6xKiiVgJOEP>AR0+7X2k-!!1OXP<*-FT*a z*Ai8A^ejvJK}*lS#~|%f&ULlrxJlU)x7NF1Nx`n-jECQ(fEPo(2I31e>f(OOCBA8|*n1%mp zU{xf^i(6+~0S<;=l3o2VDYBCM_J!;(257Ag${K_Vf|j_GO*do8)m+x4I94`}zb^Tw zul*n@dF&=S=25<+kW+d~R-sMK7X$YX^go>|)s-jHdf#nL^tVp?uMqX`b9FN1+-8Ff zWuymwl^fwrR;utyG)ssbPPlM<9fw-MQ*v>sM0y}aXwP_Loa2pJ7KOFpASnw zZePniB9a-?)kg(2H?Ik&l@7E*paaNQsdA(I_Ysf_@k3*G$8lttZo@~AtJ)UnO2v*X zJtqaUv2~+i>Op{gdbf3RyOB?e7pwEBSIc3O#ZjE!R)6gH<=8i~Q#hOUKiTEbQ|IDvPzCT(COgk!)&OM;N~q2znrG7(_}ZBuSB-}~=@aS#dse#{dn-zQK9wyr z)Pie3>;8p~$~FKbZ!VCXY9jS8CW0jKsbt5#lSVyQqCj?GYz!9a4MOvsq^&+44kI}T z9(Z52Kx?JhTt%b4wvD=s1keq&2yy*BKnYSPO_=p>kuvZsfDHr#?x=VW_d3*W5-j67 zZfQ?aoTo$CrCcaNP?%2WWEHe)BpK#@O25%p(i_-nUh zm-rbZ_?YzB2J@W#Bo#x*XgMkN(?*zT@^e7%NyXTZz})s#5QaiRzX!8H6MF0Ou;UW- z@m~d#yS+&10{`^B(h%n@DRLGo+PMK{lYpnxZ=afVjgobf#;nNzYba`y|3ZxRN+pCY zDZ>WIL*JC$!Bu1@8&8jOXxh6lEa;}VDgb%YBtb2h(g}`W4m3qeH-Pp8FE51Gd@gP+ z%>4AhAN?B0e8+I~)~Ges0ys%BJOSgVQ<_N159wdfaA>sVT_C;W@d%;#z3428f?NP4-25EV-}GM$$Wnp z?K}8=x-J*#YF+k49mfjPSacV4^}6aTZ+6PwQKplz&MjW8{8C@_V%ylUY9SdMQ}hGg zIegOK%pe@f`z?m={oDBX@4^c(*>05NH{bL4_Cx*^Ix+vncPG`i{z9j2{90E8ry2Fa zA8}A;D9JR|!VPTd?cnmHTxj_{ag7<35VI@mcqMZ6!jj<&WT%@|kQdMq`O}0wj@>bf zdAgmQ78a(|h2`xoSNp^>&OfxAjF)sLw{~_+LOY`8-L;OLSHjyoX%pY?4oC2HA4baQ zx-s7h@OtNf)3WuSTaM81~uY&!qewVf?dLN&!v z(8G<5A8GQ`ytO`j0sS0NmWHoa_0y<27U9I=3dnZl*w^H3Fv%r6uVM8O?VKHc747^1 z@O+J>?_#=;tQ>Ij!)_F1dP6c|ol&EnLpCWJ!TKkwEB{Z-F!OX!iU2gIP7VQktRED_ zd~%QzNc$n|!`LAsK`6=TdgBs?9Gzm8N~rZpTax&wI?QKA@t6$Z0dWcecfvvv>2rRB zS0ON@lw_f|srj)B6j8kC2)6djWB?3uYS=?ok*+XaL_&`xI`(Cm&A|CEHNdtlXuxU5 z>osB;r;;m%jo5hW!*mnyij&@xr@go)x`SSyoExhJslnUg#CwShIo=Y-3@*NvHT%__ zY**L2P$b9Jbyxb3-PmANNqj3SO|_TSQDWjn>K|akXESZk%rc5?tPGdj(Os_%K1i8o zn-`SE(aANzoDX9a?d?wbf?RDbg%lOggh2&S{sanJL6d4pW?AEa*{nPkQy{>U13$Z> z%)^I*pPkd*5~OF&I+f3>>4E|wEyW_Fif|or>q$3>aY8_7%{v7Whaks+=tXpg_h%0X zM_~B7tfCZQ2nw3M3by_3C?Gy+%FvZ&2E1$^`N%X7qIsIQwU&}==Q4^P*E@q-(jMCj z%#hp$jFy&E(o~$SZD9V>i7 zMWx}M{4I;U=~}@KAXawzqU`h?n$fifAJ(4Ih2VLJBLVhs+s7oSQEg&Pl zX=0&II-RX+X4p^{d%7I{m&MUsNsO;=i1)B=v7C|8wzZ|Q9F7>F1V<-16G2k$#^5(c zWPWYSSIh05HO(}b>z6^7N73|v)9Jy%?{p6D>pueVT?A=b|2It>MgG@7%<>lyU;LNG zn>0Kh@4NHHQ&t#^idxqJptU#od9D)9j7QE8Yuz+4CMl^HUvle+v-*qwj#zQ==%|b5 zL|eh**+)rjIQ_QUDkBZ@*=ph6h+=A*Z`je;i2-d6B_FX!Z`vkgb-)Yf$r$ zSIX<9m+mo*^}Wgz79+=AWxmkx4*f)RPN#E++d0R15jOApM(m&pc>`+7<=k4ExfyqN zGVv@=Y}pC9iUCVwGH^+i0^3l1Rd_cqw<)^6z4g3nNhafx<#NyMRU!AW$MMJ`Bm20J zI~H&1@{2ypLd%qCxO?Qy4S)h415Gc&23+L=WeV>6=YH&xu2^Ky5JvF;{$ zR@YhpTK+;)(SYsSk{L;x=cEO#fN7HBiXPCFMyztS+z%#j zlo!C^m%=&JsaTucnBiPl{i7?56R?e|ea>`Zy)!+eyS+>-NR}-jp2sazp8qHFh4Ib^ z0}y2$P#pOJAa$Khyb}Y7A5uSZ>)amr=cH0aL+!BF$RIhv+g0rpy+?sLsXWvQU<-Bx zp!AZ8jaZWbu+Nh6W*{m9~13$h3Ybz^UhKD6F+Swfl5YB&3fN0ac}*mO`8# zW;Z+lUd7!&d>UIBBNO$=-`)fwC=RAb$Bv6$!zeL$Q$j*#xim1OQAODU&=Nb8RbkhF zC^rmZ1eMl<6lVCye~AQnz`bBG^k6Vbh#vrQj3~C41SoYCv6h*hU^So{ykMnJ^h;t` zuA&Xfw1L&f5C1vQ4*;~@-`skjw=X-OrwR-MY*qnK zAf*~1#=|GKbfr`-YOA~?`n4xmp~nkN7euYSmu1f(-KhNL`3ELXZuJ_U~7MA(F%t4!>1+W})44{Cy~cZFf_6 z(-U;g#VKQjr8N)4aW5?!W?5hm0vBWi&Nz68#w?a0K?IM!$A=*zd!zhH4OKeTOx&u# z;2XB2$Zj-=Av4DUJ9~gEUhFH*<^yXDQlr^c_94cjhnbGRKX}vb@b=a8&}_EQz< z?q#;`%|;U~5JUvx11O^okpg}OnSB=rEV5GJc}7v!fhLuvAxZL?kNa!`MVR0v8f0B36s=oM*RwK5wo0%->XghohQra$gq`Ox>&+*2mS^4PfWB4 zyUK(B3;-Yy|6c)!yVvGJ`uB6!o!`XW4K>E2R}hvHV!(S)~4$amlq)U@i7wyVrn zUxESNXr>ex9myZ5*EpI_Oq$fisM|u&-s%bX0F=$!@$V zqDyorEwu-lMwC;=!_j3Vn6HzR_~{%f?YA3hl4x*Z4zq7W)}TdLRTo%vQ#q|Y5=2cW zz+Kp;XlzBBJ+hfO7ijs_71X3JX07a6yK3TQ;by7Y#_Y)9Y_w?%So5rbf1QN5pCw8F zvcn|+O^!7rAbB;wZ@iVxtv8N8(#v?O_gG$}vY)#~B@}@fVQ{Cx!3Wzs)oX7IKdj#* z)TLcy)28=l8VF`KbV1&@*hDKi%H=puclL1ZY-Z8#Y|p!PN7|n9;*zK8rZ2iJVY@Ei zGPOG?u*8wn=_r5)V#%Of!1Qw$tWb)zCt_F^iiTg_r$ zSG>36l7xxCZbVz_EL*pjyPT{roE@QH)<K$2~Y2LrD(w2d)%er>>1GP!$iGVElnK3);1*jjLMj znWnDNslN0%fFXCoJHhna-z`4NHeW3~@4EsFoDwH2TvM`61zFRz@Up7pGWDZQr$6EB z7W)e3SLf(UZ&zd)wlEB>JM;{l5?4ETBsPqbO4@%xI+iTpuTK-sC_5;E;=yqW5*h<4 z`c%pzw4#VaQj9Yy5$(&-a|$;wjzS!1C58kIwyrFRdJyo;BgA3(tjmYmndx7 ztE&aG^h3o~7b>iUeo|KtVD0rt(dQLyF}Yy-YcLL5*|(WpucZ&W3~;XJkGlCzHV&h@ z(~W}6Mw=m#J1~UzdBbAObWA40Ui6tAmcEr#YCt-fB%EVj9<6;U21WftTwEddr(Y)r z!DtepQEIUAk3OYhi-JJoc>3TUTjXq)Y;joXrW6!#5=D`K(X$hR?wgO&iOOKyZ^e)nd z8>NC2yTOyxdQtWRU&P(i^LtT|o_s|$NPLuEjrZScRObB}LlCZ^A3_3Kd-3WrcDII7 z3s*^gr5IimVR%vwe_juzzGyNI=a}zjPpwYEnnzM3AjYdJkf7YlBZ%@z%hg_2l+X=V zlUa5g@NsGED8%YWF4KdqNeMprjXqt4U$C4~iSew^*GfWw)kTEDpdisf&q=oe?n~C$ zi5f<${CRj(Uw>R$Eo!0N^nK}O?!0t;r8TkxbYJqIHc@t`qhXFA5lO|i9h($pbdf+2 ztbG^q!TMqYux+1!s;W;=DcGszlG<~og|e#cOgZf+ zl$hLhk%^6&%j}eLvW=b;jkMrrlE-I_L^6F&)ySR z*?dCt>$#J7BAkEk_Ih`{%L3jzDyP`hWI~5)1^+UN%JnR@i&(SO2@dy*KV{Z zEcUqkeW*XzuEr}f9nNxVRSEea*1=0(&JtN%p{hycNNO_9Oi_Kxc=`w#mZ5w-Wl#ls ztT5Ua*uXR*tkMr#RVYHw=>xX)9jDbt`d?Rev{Ci5=Oxa?tTNIj1D1{$T+4D3EsiPl zG1waCXo?0nYGf2H^Kw!#VFgTg_6+F!1mhrMS3hNgv2>&nV_mQ13DGyc+Lz$ zWo;sZ+D|B}?nkG}^YL?3>gA0{IV29-6|b`!YKE^OsX; ztU3wUZl{%h!3SK)*iVuA`r?0EDVg_wX`!JqS{M&WhUmdG{Vx6TXtgK`Si_^x0|;%D zWa;8)U>8Sq8x))l&nwwdr9jLc_v@wt*Y1xl_)8r?eHq?510DC0tTCwx@*_qRPZ|&^ zWRHmVI>8Wmj1oHZ`LYjp=>tudTirhLE_Xnvm+HL~P0W85lgA~)+@$)P) zS5(uL`w7rf&$hno4!0j0{4?^V!6w}uQ||a4$h-brF;txLYm`! zZ?4W5^qD>n4h%{c%%Y1;k#XO>vh=?G(WkMMR?hbS1_&Uie+>}qe*=W7&R_h~hklkD z!sA4e+c|y`PYb#(MJ3pRKoM@9^ z=6i3V$Ky-u6)v&7VbLco^ct@fL~qjb;-0m3UtQ+J*6C7ry?fOs!}ILH-`#&3H3KGA z=Z-${;FkiCKASgH9V;HIZrkdYA|oS7I6vU8T@;pNVS@WUi+_ z&qzNVS}ds)M$cx$bmasS&Dw(hjCeCgN;U40&ViANLKt;@<;3&B%3r=GKjUkUq?Zv> z)Ovy?si|3CK6C;PHCT;-v^D zJJ4zA#(1tR3vsraXQf-7rn0RyPK$MsxXDi~e@tSG^~ZyT{t5)*hn80bvmAtwkwj|9 zoc%rRc3`GNX%P3?q>B+;AXe%kQ*=n->Y*}bQ#{ho1b_n0oJ)2(W1lKE8AFUR&m+hZ z!>laIC$4~4107$-0d;lkBQQN-RdI8Ccfv>08adEb$rmY056BLD4|32o6j+rO@-bPi zIl%r1Nws%5O#-IA3mG)D3I$IvNix@xRw-w)@XVk^y3<(DJzt`_I;0z#ICpSJPzwUJ7j~yN$~`80hu~WF zq-ytrH|GJ9j2gctRE}t&y39N_V5qBxzHQ&v3)$G>M*mzp{0^;|cZTx~=VZ7Tja!5J z5WEOiMkzU#M~tNy@-BfzNC5zer*-sz1ycR)!@Om|Vt-2yyt+{y`VnnMEqD8TAD1V> z725APq&k50Ly&QVvuJgOxN%x2a-1ei9x;$HpMwT^Sg7Y=?0E#|>bGmimBi|pD~J6Z z$4`zhC6r>4K*07cI!6va!*C68NzLS;kFbW^m;Hd_^OPRXrnk4F95oKpi$?7=shuj8 z2J(qz#IXbzV-9@^ie*Mg4HP1@d4kafk|}fZRp#AYMo)oPrYD%Y0{H-|iyD|GQy^S- zXm*++$h_2TVAi@rLM`Brq%!x=RaOiO*Pw4t&I5ZhsgewmBI0M0jvLY!ee~!>t7SR@EgVD|DZBc{LO_jv93RcCs6lWy~?J* zY(+yMx2B0#Hs>ckB_%p}T~;ID-N+jWK3+VRSV-b_r;b`t6H+~O`kR?Q{6!e)nMMNo zLbVGgF(A=Sg7ymc_r)w@91I0KWWrp7i)8ldRgORxFA z8YB;wMHG^W)b^E1U@9$ViV)h%)q2LBDtVKNAK#bC8pE|4U}+LgZ$$(F~{AJI+O)l4Jc;q^@;4gnvWF7!Prlz1zA?4C=6 zhfg!nB@>go)l6{6v#`V(6TcThDm{KyMloEm6ro8tyg%@bf)q{;LW+3bP0!i#0(ZKQ z;jVK+EW_YByHSNPL1txgsjspOEGAMFScMT+d8yz}zu|sK-H3cT2ga))7QxC8i2c<% zq>Q0x*2B3Su>R!1+@vAbq-*L6#gCP2mIk>j7548VziH(XYc8TJ=F+e>nM#=wO#7>Z z(&p+e0LgL0G!y%>bfUM$b;!jl1R>;+$Z)0^e9)TG^Y}@=YJjX~zKVVq0?FjjYOYt< zZO$<{i%UtZh~cq(aKO)j@e8?ki+^?l_MKH=r3I_`ZKN?_wsg{|{17wT_xfFaq$g#F z92!r8S}7UD-JY_rHt`95v-nui-b9_w6MVXwsF{>l>{JTm@@$c&WwnkzAiPOO99@yMKxrOlhmm8~y z07V_p-=hZ?gYP*jbQchTG1tF7e$rXNyHS8^;sRFOd91m6(EToYBt!p6+e|)S(lgw( z@eX^YO;JIoN~CqwC+@=Bk4NxD@l@jEqEw6@G?^nH@tlj2wBG;H7+Dl!T!}dApljaG zMHk_fu|`p(>sOkhpD2Vwuy4;E`ay8BwR^-4#74!lAn2smnZqSOzfHBCsiB6{C$kWZ8p~_|`csqv&YXW$wc5E%?S{BFl$8#?@ zb*bp(h^y(^YUuMXcl_DxMV?2X$gi5O`7oq)JH#)_&`GG&FZ##U{~TZ1xw%1!pnB^4?v5mmi+MO-5X{R3b_b?8Y*^IU5ZogIG}j<5cLPE!YqS){_INr z`6PGq1SDmbBlI=yYRA_pO9A!QtNXmv_C&|Usm!6veyumat{ZYh5Cq4&i=<%*B)87{ zkyKZ>EIU0PS`z`+JD=~6oJMd5C-b-685VYO7;kuCZlOZbNO|0U$)bV%mF0^X5F|kWa1-A2dl#Km6HKALp-s z8W>+K)H@({EL&Q>$YV#~eZJLtyZz?|&tn=xBIFzX#r|Kw|KG{Y|D0UBmy3BpAjPZ; zn5&@JClkG-6Nux$BlJkxm%ac4tgmw6)R3U3G{>tWPvbb~x@$=-&Ng~c1-IAzbMZ{+BjaIqWy+{J-qpz zZ}^w~A=6y>qsjw;a$LFZPlw2y3$dmrgeJ8JI79LCRpO!!^jfosi#KaCWBf z@tR7Smb0dyuzX_CXpl$%S-p~WnN2F{bL<8g%VxKG0juUv{Lt)Z zVCfdHC5^{~jvP45g*LiG3feAJ6Fl@REYol3Upo|zkL?XZ4n`^^Gy#VJWxQ7qDn&4WmToaSO2Mj++VD$-cLIJj1}8-fWRD;e z!H7nP#mV|`_$qSRQ1)Z>m4gOg(w#;IZGmuy@HQ^Ay34HI^&9yG5|5ista0ZO$|hVG z#idZoQG~U>W|i40{tyh|J?hLbZ!(U6c3s8GcuPV!dm=HmToM{)jN`TOsQG91tLz&HwWWSR_HFSqtb=*u=ALWeYI!q$kT_8(T~fJ+ z=c|2Soc&SJ=xorJ(k!bl9F4#x3@U2$(N9aqPMd~S&|U~2lSA9>(fkFNR5!V zJ|`+F5T~DDxki&ogN6i79=Jk9b1$xsf{YZ`f#;O{T|l7^De12f=+-NMiU^zQ<+0{Z zeD=C&lMjzx6Tlk|{`i(X5!z6p8?BR1YP>kXlXAzmkMMYvKm#GBi=jt-hEu7lCR1}{ z$uT2cV@t8FJO*a5>I%MxXp1cu0ORHqaAGtJH@pyM$pg!@TL+6*T)q7Y4z#}Ehh+@l z)C|D8f69XgSgHUf&<#j3c))dm`1eE$fR0J3CrGX+CO{W#t|)hABCbFb6Tq96A5L`U z2%tq`h_}k(t1*?*)+My5cO+xI_pq6+8O@ut^<15S4sT8_0Ssonx6oWW8B>u&6!ShTAl_f_r2bLREp!0NBxIcKrMn$f>w-A3koHVJQ|1MvF@ zZ|iU!&~G5%+MwM)LN-Bp{DrT8@cIZ{0iU@GgG2ltL#Cg5!Yr;gI>W{_aqe{%*G${o z%dsMOl}2PzqbM7Ae{@oa+KgHaa>m5rzT^o5;miZ@cO4v`W$*0kB74HFc&YdjZTU%HcO!V`g+5ePO(=kLn<%*p}0v?d5iQIP+{?O|2im+IGaFwAQxTA|cM%&vJtZy&KuW zSV9qPg5#;suYtqgb#W~D)c)?7CTaIe!DHtI>kaP|H^tVKeuor6m%ak(>XrFu6V4qe z4naFu3`bV0S>uS7KrB+3@7t`FR1E9 zj4%U1%KjiBW7L7!B?oZ?IQGLg zvf)fmaxxR?b!{&tH5+%*ZjME6QiF zGzSKqDbS zVdz=w$>?zH(7MxVg@!e2{RY_5^?~IaaS@sb8T-SKQA2+fH??xgJ3s8?cUvP|q!wWB zx>ZN+8XP++PRTv($*9q|cO>+cXzX%Wj46uwfWSr^nU8{;xF#FB?t``w?Mm#bwas%P zop5rS5jkIS_P23;+&SC$5SEped|iOzNl1i8LP01Pi8S(9 z8T*4x`Tj(10%*SW3nF{gf|K;{ro}6ssXNdz=x!N0Ym%LC(gsQ3)ZRW)h#TaDc0m@2 z9U>HcQ@RDEH!7^&M5Arp&ZRDHC8k4p{!Mf6J3(pvouHh^PFtR2v%c=7sukSZMoCFr z(7Q&u^W-?eJJ8lcvsy#L^2uwI3Oz!?83|2A@R63rw}B=TWxR!yW#WIzx_LEkLHTyC zbFjzrvSk90d}mJB;HZ}xrr*S;;d&F$vauj`y! zRk!LWRIgKUf3-Y?WXxTA$Y5` zzcs%bx?x%f<769qxHp5N+^4j`cBg5GnEY~(@Q`7lI@iTdbwf0RHtr0m=Xlqvt}Sqs zH`=Eh?Sf|OWfca{&k;+lD|)#Cy{JHn(GG<>P;@e1>1>+k4`mMqN&LdaplK@^|%Y8xvFWZ9dDNFEs8#tf#q1Sx8Eo^mO5@lWD|2z9MMIOlxb#ZGkQvq zO7o3S71nP3u4`8i0~vu&rs ziE}Ajm5+%}6e~}rpHxh9)C;(9JY~39mRVP@nzL{^_&Qh}`QFRKPKxsdZVhVJ+;wyw zyM1(Q7P?`eDv^*5KSZqV3dNKJ$*Z|C)7srZ#x@q^j~gUg=4Y703Q<9MX7RSsEaR<- zQE$A;C1FD2%C)=`pIv*&3F4b(j)}L16N;fCKIS2_#D{zfbO?l);tHP$*;+bX0tSjq zrm;@<48F%}m1vvoa3cGnSJ>^yjUq`M{Z5$VQHI`7qmB}NAw|IOVo>A04z4nHR;Ppc zj(R@8vAk@N#`wu%jr+Z@H`YcXSz8dH&<3SZ9ljH?Q1?QFCiMYdj z5-3reV3gZ_3r*G5G_P~~xL3^W8oKM6<;}kihH<A(w9*k+m~@}3i`K&CD^_Ud z+>10{%QZ5cK*}(SwfZp;zU{hRv1@A`dH9~E&KGV&L?0W6mf&a-^zzQQTbm0?)nb!z zoTZWIGF3(v8sMW{Fny zL5-t9mK|MrN!_s?6h;xx-G=FiTnvuKyyxIC2zhnGN(4mSOu1s8#CV~_TF<$(K~jO~FPOJ%aAXPFp_Y)0q|Ur9kSJj`KG5ZjB-6 zQ(v8>m0o07WBKz}K@iBaa+7=o0+eC=o~ThEL!Ig^i__K>n;ny6Y4s|}%#Y<3W`x7> z1ybEd+&w+)*k%4{WH4qJ-?2V>VoMz2nGMw>k-OKTZ{;e=R$_4nQZDxJU`XA9)FJ<> zN&WZTMen4ocTtA^d)!4K$PB8oKrZEWAd@A6e=Jljt?Ui#*7OIhvk?ww9r1|8?PX+e$O}S!Gb86+t<&Ik) z&XkM=HI*>Ki!EMWsQ4VTBGhXSo(O0Z><~!4SC2TnIZc-?&X4n%SkOo0AW}Xu2rzr+ zR-0n?KqthK*b!r3?3q)sh)h_VP?O_wH`JwcndFa#yeNb;zdmujUbj`z;fQ%NQ1HP4 zMG~i?)KOmXbJdqI*DNZ@F!;w!Kq`}+56hgw*QR65d1Df~$3jJ%)x*o@E|tR>#Np3j zAy>k&vDsk4RHlL@QC5uhiWCJqcIE6oa+qs#dWYYp0=qRuYB85ogOF9#7n-y~`a-aZ zS6TV4Nee_2u+Df=s{AUo0~6&K`B^?-K=>>8zI+`j%g%HprTisG79B=G^3y`|#;3AENXLA2myTXCEf)V16BHy^Rb8`ZJ*WmfC>P&~_%2yv zYm3|?^cH6Gs444|%%5N^&Irn4;3K;IB&OgUxrLNM7gc|ue0jAT-BjTMktpqEY zyBh;t6qy%xfh2sSp~{AayoNl%CR!XFP+BZku7 zn6uBMD>b0SJ7&~Px*M32ysa+9_ucwlm4NAE!Yp~@96Ka+^+kW-oA9w^{AQOu0~I4o z+Xd+biW#oqB$-LRW;BrP?2TVFv#p8rhqVDfSe#pq>L=>{;ha%~6-3=V%N*zY#i7yS z7LCjrN5t{VaJEWRrW?e9WXZZGbnm`dqQ3r&c(GxN|H>`m23hYKBrp3<4Dvgj=zrND z|M#c5JJXT>VlL4B(VqO5fO0?G#Gl{IdH=<1_myAuK2EeiabPp%7Zq zL5UK5E9OUu!)=*vZc`t1>D}wrW-RT+M88P!e!DsEOe|8x&yg4iP!NnhLi5jOhgx*lAAt^)d5`R)wU76UI|X2OOCzJd(t3oPPASj93J^xfa9l zqNCq#rln_@LjjIzHK9~$aut%Vrv0N0F1Srz&UN8zyKWi{Q1)ox04*pf@PesGIB9f0 zKdPv#%Z(~2(Hoi2H{&ujOQ|T)9Z>`+9OY}S;>xFw)&4kMk0mEh6A>sDbP?+VRsL`6 zy^BKe3uAZG%q&;g(QZGsF7O>J`sqfYpD@he^j5IUCW5Rux3~c$Uurm9XoZZTpCSw! zO{?wva7`4F3yup&&8daRfyhP;p^ksA>wcmTRdqEltz@91Vf$snf#pdiiIM&xbxCED zs-y_;I&rG4*OaV?QE?0-J-pPJ^K$FF%+q=D)eP}fTy-=&eE0hqxa9B&Io6oNI?2f< z{axAlgGZO~)s*ji)yi>=yl;^761uQC!`bLmG{YJ;yX4c#68gB-k2&UJo1zU-+Th9C zZXHwEEO=CpW53|GsbLHAxcBAgC2F}S>TkQWFsA3PoIgpfa)>e#(?q`%MjTk>S57ES z3?Ec7&gm>Rp6Cxu`Eq_f|0cs^&)?@@Jv#p=Cr-T5Gs^P)S^A?Rc(b=ss7=cCxu`HF|D?w^0d=!3T%=cZhi!Vl*u6 z_B4`{AGtGWD=bMl4sZId-gxi*%K{mPe)QBL%lpSds` z)ach`RTDIpP7dKSz31p$;>JDuu`&hlDasF1gilijBf~oUtYR3_M4|*%T8TUzk-(C# ziqg93l07#ApC;D4C>RZyC^Q8~Et^|6ePLKCG^?yxbAWgWL4eUT%9Pqresbv(2}A1D zJE@EoLHx?fCjvkCeLgyRVW74+w=KLHtBD|u=Z1qxLAO0AVFu!3y2iSNLgVC6vH?NO zf$betle7*Det;Y**T>SX%_xPYvY9PP!BY7B_{;9xm;QLqcV2uPCkd&WXsT3>YiA#o zrS_}I1z!=tQ=vZ|Bt8}&SExFArHQ3J)F?}!`m8m>yWmygbJyDtn-H$s++O-;q9m9x z@k=T#E8fWmkm%cS+I=ZXik5L4oJZo#eT0@%i^f>ryjzOhe&R?Ki9m;O|Mh5?hl;CLtiBAA<9%U=$TP0tz6aYkzR2XH(}#C2IS&*?RO#v#W^1R zqo9x-9DxRD?C1pBp}-*tmc7!~G0#=h*5V9t*~0bs-FuL9Co9DOV%=>~Rzq(58a$ag z=+N}(CX8@q>q88W6`wVRX8Y`@F@=j{43BV1Jl|;)qD?cW|uq z#6kPKv7^qs=7RH6;jcf?M*3{p;X-D@v`zFt#;9+QNgs_1A1ty$2RFW|nUU*;G8&ik zj_ZLXc<~jMb80r)rNEIC1zy4NGo(CHLkx0@-;q7m`YgViyixp>s!Bx1o41E^NZ{h; zJSsArt(4%Ln5EJ(=oBI6>nb08BPVPw%Mc&S403EFV;tEf?sJe1O9W|*IicG6)V{j$ z$i2Pn1-j#G?&{-Dbr(shv~#=X79Z;}_b{!^fCXW(+Ljw#5h3lqVU0)`4*BX9u9fCs z5#>G=i;OB=mYAkw%e}Tkwvb#_Ul!-c#=>@L;tkGIVd6{W##yo7L<(@;4-o81e3p1|wtW+ja2Gn+fV zkwx-O3TbM1(T^EG&JL{X3lG=!n^5KiJ$BTvTDvNS&?S7n8Pwh(mS(DM}PHk-I!`XCu&;P0E7S-0X27N01k&kidJN%Aak@H(i#hm9>`}R2&Y^OdZ zw>4*Y8s~d_vWzz1D0-EIgEYOHORpQTnx5w9o4x*$ae&w=Zb})Zwl7F*r0vjA*x;uI z!^x!VTxY!t1d~rz&->;Z=bWjCM<_b^s!DwUz4%xX0gW~-9OS-L8->&k_D!Q*!dIZ0 z2ER~aS!Nd*X1-Icx7o{d)f3RWWyXKqh1TjMsNOb5BvljGkrz*yPC)2MzBXf0hHvX< z2UE}Kg}*d@RRFOz#VUn$0r4oJD1twe+amk^-%}C-$NwK@4bz^VKB7^ULaC6O$q)8bVlCIrk9LR|` zqqCGUSqhSWj6J`zmmX%NU`epmBpP{b{L6z%2mfV@*ngi3_lwy79zou(T=<*2+dIAUe_3Y`FLQV?0@~bv z1np|5|3IGkbC3T(s(HtQ;>dDSi026YXZ(w8#u4rbM6qaE@p8S9xgb+R^ZC?Ispikf zNUgL4BtG%^BRx5hxcr{EyT>8D?d_*W3}0f&OLT!wjEMO%V!sGW=2^IRGFqk|9^+2K zX8taWl+-p_#PiBRbY1vtQ4bdXo4`uFR7Sbo?*;u*rYg`esXX;y0}Upud2>t|Y7FBq zl_{@2Ksz)UT*GsoxPL#7zjhXmhM_=^ey$DGz?h*te93uXQq=(7#&v289QBDNB*2G{ z_Z!e?!M^(+tX zS&cedjmUp|v$8HJ_9glt@BLJ(tu#J7YP_OKTOP!>+6X<)8W|FXK86x(9Oc@aa?P~c z>(P*gA!@#)+B#HUl7sf7mrs?Mh_*fQM{}6uRyJ}9;e1+}R>&}i*G8qf4_V&OoAlVF zyq90`Rx#vSG;)jE6cQgSw3kIAuX-#+iHX9;M6;cDqPV|WvXKMEX8JvqES2AP3u9o- zj&b}WfoOQ}4z#r`KGrj9EoXALb>pC|)}&V&MRu22dZA&YFl;9xQh~8kM;K*g+Y+UQ zZ)%&?mL99C1}>wa#3Q{9crGtl^P1nt?7RxY21ve{>jusRs|b7bhQ^aqPQ(&YyqZzN zY;^hx#(Z@80%9W7(R;8vhmpFu?rQms1$zRz(Liw)&IdtsbQU3D!|`Z+QNG;ns^`on zLUDt5oz#J{{8<8;D#rM0m1#saYCcyg-ET9}VJ7zB``-o`2G+>8yOdl(te-Sk?qCDF z8TPslpP*ZR+z5LkREQ>~qiqxYNC>v6$=H|GLUN4b`;LRwTxj8rqN>yqoOau^&tYY- zXAO$`K+@ZBJ0CzEW+AGt1~RT&rIBsE$Z$?p5v(yuX(uh2xTYLdo=_ra{~=%961qmf zONMIqc88o=uV5V!xfBti8qonlu z8ia4fOfU7=pw!<+w8P!1ORX`>H(vA%hlqHfyg8+O;j}Y_jONPz-L(d*=hHi=g&Up6%Fc_{-LorzWZ=-LixH1n zg`8R86c7Ct7GHphwg?KaSdp6XO3Fnb+JNfMvxfq zUkfqne4EQ1ElfKaY%;ZS8sgN)K@G%^@Wyg|^ZJustq7%LrL?|hLa<|qgz=%caEvc56 zit5HnI_;1OUq^e`!PaEpe3n}vYjE@sosp;D5q?Gs;%ep8*`WC%PQZF{P#0dmC_A3E7?SC|?-zb+EoWwyZd!e$pGcDsdsJH|98&;K#mkFIYsve0 zgHSRrZOmD2Q|yT-yCmFWZ5?05)#{|Uutn2r#m7}i8RNbs&^e@13WS#>Y*Z|wmx6eh&K<8a%UZfm7q|N+YfU#Ks<)g+Q=R%%+ z7Goh6^1ynROOV~!A3OtKKTKZWgJgYZAe*$`0!Z5%8(0|7-@X2v_EiTW@L144k{t3V z+etGqU6dwexyjAUJ61Q+u6)%`!C^}~>~(Zxu z;0ak{#E3)jRD27Qx*X3$&(&l9V)HC5T`Oho%_=eZ62kLvlM$yTvr-5d#(XfT_7*#! zz3Mj(FZe{r$YIEnRF;)NJT@)QUFaq{VssM1^~WAhPE$n#zq>RKZrWlWnK26mxz%Jm z^XGR|QAWn*N^sGWJJYDuh#-=}k8D*gY_3&adQk{RwLLfYH4Wv09#tK&AC6NtDT*kg zylq6@%56Zz_brp?Wq1mC#%BIkes(Wjx;3Ac)oq@9k7MCx6yhxY8dA1#&w6z_lxOa= zJ?$z)U!|@sM`^yB0Z^~%#FUyJx#I#h?dnHDC2+n~&sa_lm6OR#RDIoZXz~xD-?G~I zwqG6KG1_V-Ghx10W;2rL@TLTOfWb};ZMV^tcV30eq}qR$80TlZmfoq3sOMrl=554o=V#@JXH+>Pe=hxf^vrbyqw}%vtT=c8y9ye{H=^nQ< zC+!(0TeZ?3fu{*WFRxFEB4`i5d@32Q(R%`Y8o%P>k1Ep*GlC_RZ^p2P5zj-boO;PvHma@@yI%ZARHPmceaG@Gu?e{^QjY*A)Ix4 zqE=391frUxHT0oSQ$ zaQK!jdK-JSZMWF#?v}0uMnNL>tafqlBu>GTTmo&mtvwiQoIQ`zg%r5_ zIKhFNI&%0x^UpBPSmk!Sbj<7#lrm9gU|><-AVK)H-qf1ENy24ajBa`Isn`~N+T0E= zsl4zKZUy%1O81I#e^?|pA5qDYUEP8hmsw(Gq=HFHBeQ@Zqn<6(%t~B;f-rU0D+^W5 zAXhHd38jJ)N^fE1f|s>D-;!`{uQ**_edfA`VfwfTx6LUe9U5cwninX!emr8D)>r0Oi1yhsOx|y{#9TNQ>U^Bu zyxTespU630eVj$fVE|ZOS}-%DG~TbkVy7^0Z8qLt zSy_IaW_Ug#TCO#dSZq5(bU@GE0oheUtwRBy^gG>j;ruH`x02{yDNDkjX^72Wd6BJm z9aa0!);7tfL*)x1i(W&CC4Nt>@1?zwmXr8ghb{2bfZ>Lci8mBV*K0``+I1S4lq%}m zC&}Z&=;OG@nk=@LB|8RH${F?Vv8Nr^D_;ejY{7dg1eB6)#Za=tFjeUG$lw-^AI3UC z^b0L-11jb0txD=*%8r_i-Jq)GvmGxyl%V)?vd=%mvonkbsVs;9{gRpo|#m8!5aK_N};HwKeR?%p@ zN9=`+6`!Cbxa02#mv9iV`sMEJx;IK1Asehk7}PfqPs57oOUp||ByPOSZsV{*OWTb$ zmrQ2njn=CIu-8RWjT)w0e_JIEdSdkWeMb>WmFhTp|KV(>JggDeZ9=EGgqs33lW+~V!6!CRn@e+;$?uykD1LdGg8ZuQ z3K0O-vV*4uWGVUM_>u8X-%3x$*2>xr^e}a>(6!VtF{d-NHZTHC0ha(M;=*FW05H(5 zR2%dI04@VUh2EGL0sxYdcl%UW02CM+0A#2H$_4_u2n-hh+N#}U1`!9t`{%hF809~% z0h#Osm;gYgns?Wzg8u#}+Moke`yYQHGQjQ;Gr)hl8VryD@!L5d5_B~HxC>yHF}AX| zvNN`_CS;;x0I>6mNkaZW2bH^Xvb$51u_vL^5r7KFEibslopXKi91;Qw>c`iBxr6=> zfJB8tBYMsU{a989hS&z3@oiKlED3*k8;0DM15zekTW`2Wm{{02xMbuMlvLErEUawo zFE|7Qg@i>!#l+=bD<~={tElSf8yFfHo0!_!J2*PMadz?X_45x13<{2piH(a-NPL%+ zm7SBDm;b(?u%fc6x~3N7{np;m+11_C`|0z@=-Bwgi)lZDZ-c}&ds78ad9 zDzhAv#)e7m07KXI%Ogxu=4G4hH46{`fZr7eaBv7H2nYx$ zXedyDhK2r7U?0KWl}G<52zLePM?wB)0fIolKp2pakT9TM6nHpzlz+Pb=Rw^P1vmph z0Axi2U|QAuB$Vv z-=SSg9aI$#l8EucFUR>>bb-vLuzD~QpsRgo;`qK@C=tUC42{n5Bg8&J%F}FSuppB| zthR(&AL#%&p*oX^c{HIn{n0$U$*uG0vOOD2{K&z#;3+nRQ0A*TBFAv^wZ4zk3Sjd2 zk)=$n9(Ncme{)saCFnrij>)<57I+j8;eXKqMT(zRx93sawcRjzYFKW|v#fQKHG_4O zT`wxEGVCj7gUYF9&L_UN_aEQ{i)Bw_#F0S8;Lx$Nw^AcX*Q$fNfSZt? z$1LMH)jpn&4d0%p(~Zq`w!#m9uUd_ESuzTB3B9;>S+0&E_6*=Oupzb162eWfFrxVk z)dp6<_pJ?rrm^Utp=$+ii+tRT2s1MN122imiae2CdXyM1cm@PE1rETE1OTBc9rO}5 ze1S8&NKiNO0|HZb*IZ|)K7iX@IqoqbVyIN{S08Z~J z_KP;i+2r=8==IMgaamIQS`kzi7)5cqZMg^3tB096@gl0HO->J_NBhG`75C>5&X@rW zHMP0MG6FV5>Lpcn15cU^Dvu?oW`dt@djc4x0OS?Ahm$^r%I{c;cn!P9P2$v^HF{Bt z5-x2*La1C`RE^Qk^e7Gc=bBmSDol?x9#`5?;kj%X&W$NxyjvX@}JLA!G)b~fA=oRb_#x6%6Z9d&PW&tXk9=a z%Z!F^CY~zJV_YXet;7zbikB=oio?d))wChcw`R)gI#>?w<=P93vXoO{Y=23BFb^$& z#^lrB#p&!pevX7idD+i}0*}}wEG(>yfbbpvWVH;VKKneIcXA_bQKVU-fYxRMY6xc# znNT0!0pCNnZXa$dNw^4Opfq!7>brdfiV#6MuGl8^dlD0x=*Iy4<8MBZ+-Q?hqdO9K zG{z-;0Oa`KdiY^{u-08(ci1&8#f&ekpE1spjYkvUiz<;vTKx zw5-1ksW&SD4O@SiKLK@2?^mXg+7myK5i3PesF4dsLvkqJbgBzc918B|!50ggolmi= zgL!r%0KEwbY{c{4LKQEJC`I-{pq?>k@U^ZX?>_>Z*{vc!3S7`Dn(+-?jz~#-!g0JW z-a>y+nG;Q3VycL)f*+KyE^JZQlLlr9wrAGUU9c>Hhv)8c+!~{rCDjHKjSyAX9-TlF zicmfi%oM-nEt(^#Cmgm`3k3MNx}YsRLlWezbbhwZw_Ak{$)Goe7#mrkAb%Z)j&(|C0g-Yw*Uq873L1aCOu26TZr)SiD57y zbeSIq3~==K6B@DF)hD{#n$ePYD-v*#XlYsq6g=bhdJ4$Lt@tN{#>dr*7ssF`wFUqI zt1PPvWIn6g=asJ$+MPJ`&Yg41qh~nZCi^M(6K_BB0-#Yvy)}xUIymXMIk*S}fD-@#p`)r= zC>(JTuEvSq^_c3OUb$5djgoxR6eyW;Gi$CMTNG`Opb1iXoi;Ae4le#$ZEG0QcpVSi z$BqfZY5~QE8n%!lY;l*>s3GQ6`N4sY+s48R(v+4(`ZF35Z)m2oX(i4I@ZGiyWc|w8 zN&6|xFPhv!k2wv}6vO3XQdm*jdh~j*SL>@c%|0G)S^)uXk%542vrRLHo5JL)m#444 zWHl;Px%N4xyT@!yiP%T!qB5IpMldoC?vCMm18N~|$K@p(F1R?YtR79*p*WX3>!(AW z$+mhPOvt)sLBej+ZPyC((RpV7`eGIcSP}pN4wHf{MC2<%=N47EX-5-`4H+5B9B1@i zy&YTHd;(Smb)K2+F^ZeIQ|U%O@qL$ib_Y$ke6BmxWBPPh&w=~}65@NJ3Y)Z$n7Cd^ zyweYrheG2Q6W<$e5c-PT)5fw$Gs(g*JNm6CZP1fbz06~=Nz1{#UPcE40rHKAEO9xK z(5DI}ezX1DhZ;8~P|d%qcr>_VQ+L21_Dz$7 zEMk{7*VHBdRPr>TNSSLeUO)yT!h*Mtq5=R<-4I$WQ^mRxR1L+P6bxL7m^ zJ~CO=s1VuMQC49=SZM^zC5lA{ zh{Z)|g5X|rT1x@&@!8A?lCsiIC)L^@58kls^u0pZrt8cU)1tf(I$cAEW;>E%@0QM( z5xe43`#Q5b00f+J&3MzN>Y??JkQh#jd12VU5bFR8oW+Kx8beGr?Ye@#_~Xy-ed^H& z1iW+vH31C>xHfDt8Qup1%;tr=X>Qb{4^BZ#imyy$^(I_B$QG0h{;P<@Jr$0=K6o!? zO2Kr6b!!`Ls^e$i=$|#=kS5cH7T_%uSuufGXWP(J@#ka?N_-@QyzqJ%dpl$6jb5$i zx`7=^<^|>*@JuUjAP0YyYZYfDkMUbTNowsAo)J9I$ees@QcF;k*0|g?&cCJlvKE0c zvBXl(#)>(@VLc;NFIo&Gw@O&Hx_6$PAFuD3)gs@OKv%AoNX{o6)_lXuoC#ZvUhjpS zM&A#?2Ei=GtAb9B5VWyjufh^c0jDoYSgw*2%iO+}4751577yV!`XeV!$@d(9HhU@G zi_#o_V+6_%Ml_MpeKZwOaDH~ph8|#}kI0!-8_()>)q%d4I#9*H4hBk+67NJ%&1tG= zqosOoVJ=v+u_DOy4uLlPg@S}O$C~ze$Qi~M%Ay*TMQ$KRpc18W|f5O zwLi`v?3z6n?sysIx%uLg?qb?oO7h4{bq;fy&1owv#%=MnSL+@toqeC*dLxg$-DL*I z3Zefvz<^^9CRYoNbxZw*(Y=wsA2iK;o-PCZ@rCaxmv&}J2z?6X%-y;EinIOVqm7bXYGJAu#5I8X5u6*J1L+5j zE~8UNSOZG^$7m3iVNP`8ZEc?@97W8Nd4B!Ej`=ri-E5ACCTzj@{rh$x8$%quxNPHg z*m+@j9h?`-v%`vuK5k5fZ**yjByMC+lr`G?Hs%b32--W#wLD{y^Th%4S9JBDRq>(c z5)Tkyo(~3)>Nl{GBuelwzrYGHHqlWDCaY-SZj}!(d|sg4AB@ho0nMyn0Of-NIR3j^ z_kXi_fdEeY2QVi80~pgX5)hE+0B8Wnj1?4)>i?iXxJ&%A^FIZ`{}c%SQy~0Lf$%>C z!v7Qq|5G6Rivr>PX<9X;j8hMKu9AXe_P@E`{9=XmoBPc#AN^{%*apg2ivYdUxWpMd zXHok^P=A+>c!&BJOgzD%tAy491@x19V|#}MpJ5#H~@--S@&a+75k@H0UPF*(Zy4}I3qWVn0dwl1D(H{8^7n7||VipD>pAn?`Kn1blx0Kd*ij*I5af(M|t!4>P083|LSIC(A zkPNKhCG2re@J&XZ<`v$6^>)K0J%<&YE!g%Xup6PCXD&!OwI{Uiak5TMrr;(+9&t9< zz>UO!4oY!ldVe9~bJfVL?$ZhL99fsKvbYU-t8L))I6thUI7V}j&o}XMfUJCYhep;% z54MKC_e`X~PYZ`;^9?I*zEGf=6R*$Xh(mDhOmsc}DjBA_wZ@3GWSiH`Yk53du;15lXz0qSw?g%n+QOq~thAdSERr1tm4ofP7ej5)^QoQ*TaJ6KeW}v! zS`2hebGph~MsaFHGJLVCU7rVOSS)EW+r?YS^t|jc8x&?B=+-qQS?xtld*3o*5)hub z*+1HB?FHRpxCg=Ut~BV*{HsOb)J<4KG3Y-vpaYcd=kDIw>*$&r$lE)c8`%B0dkFnv zNZt(Cyvxl&PR6(Hv;v@@^zDQ+PTOGAu|!+E#@T4A^9C13(ewj6;#mpGJNnEJz$GxW z2A26880ZLBA3fd)n|T|PD(w%C;GJt0bGdA!o$ZRymA(z<87EsqXWQBF2U>_^)^R7Q zeBC`Ul%2DvN61k-cO8u*eY^Q2Xe9=EEGVswtZ#~dN6hhsFx!dOT#CUzd z4fQh*-ikjCg_5*1*Y>Bbc@`MBsR?vGs!Q<}27F2QNr@B`w*cNcJaa zeT%BPAE+krU@q_#)0U%zPtv}-ay5j~hLs3p^D*N3%Gihadar^OXwOMIo zOH*+HsS36FGYTC4+S?TesxfK-g06l~!L;&Mam9rg`dR*Y3OHJR9WEzqA{Ey1q089}<$dSx@DXv4+F^)t@F-54@w#Z;_i zS4?jgV#VSMK%vF5Btk-_tH7%!B}2K}@`>vpBhCp1Sm&GxhicE(@Zp`k|CYW~b}{S9 zQ%L{1mIjGZT0*Mi1I8NFOM>|zGwqs*3vU(L^X_Deu-z!4udHg%^)~lV<% zEyNj51?{2Qp`G=0QE$EkX9e%*WRdOZT-K_ct7}3 zUbk7!G9WY~Pw`;4P=rqsV?PoSO33KdF@fl`7%G(P;WrSAoT{3J*%dj}%U+)mn=u#I z7$qS%dBqi_n^0CA%(~RX?1GlxA&dWZP?G4x1#Qt_(x=R3P4+84Wws8QRa;NO^)W?_ zeYdv&+)HA(T?!jNWBTaMO^mU2z+g;rtIOlF>51s4M(_AC8C4*pM-Oo%9G|-~lpb6^GY|`zimMji0RM#A z5?Rl*5Q|MKNXLS!B_weSZfQcP`^ke=1w2g^_KU;UNS?b;Xn(>tNSa*S)ZtY}au;jihz)g3!vMowwmu_JWq9DvPHP)lNH3WLUBi<2r?*TsM z+7|Q?*>z}o*2rv|s05y`3q3a9DY=+Eq*lVL<%~mTD_CKbRU*PYA)1AJ!HI!u`az-r z_!2HJTW|EPl+%unWq6m${7Mvs^=!QDUA*lX(8vm7l7Jlq{3r-yZpIE1*X@h(_7~^$ zn*zus`xcx^@rJe^n+3>|#H`|`o|a`SjL90Brlmq+&A0Z+-m>n@0T$maX3qx?s{${l zBW_>_I7Jqm8Ca?@TqFb|S|o1P_RS3q!87p|J4n?O+WGjT`FIvUbR-kKmb|G#b3qhR zI*u~d^tw6~TibfWo<(o&l3=D-?^<+j1?nk3*CAlwv>*%C-^5bPdmEOMpvit7@#jk9 zzC-;uQxmYVv^TJ{*Lv-2ZD6PIW4y^o{2svg+&&XzbO2ZZjZsiqg6}M4fk-Y9DfaW7fS3Q+{4h{_i!w{ ze+_rnmmk7Cj6r)3cO~@KaL?~N10Ui&3=VmZS0Vm?z`L9A9^(D^08Rt#H~*z0|4Ve9 z`*3Uzksk&%yKiZZ%unPyk&65uhB$i&_UFy?k^ei*ybmb#_mP8M{~hG}AWeUT{KFaa zzC{d?KsLGm?8Cny-#sdR!F<@zKksWgy1&5v>C^Jwz5DMY8|nQWG`sbG9_XtaNe`;6$kXwJ=j8WfzX~rKeEgs6F@0&ps z`UiaZh2g*S=|3DN55>Iq$fRLEk$)^C|0!F0NZLb5<9+p|@PCl@d%5F7fQQn&dw}MM zp8&s;?LDmidtuUjWdOiE>X-ZTn`r4__22LQf2|H5`%CqI$O2>}prC(TLk;?wM*skf J6Mnq={{ZM~#cTio literal 0 HcmV?d00001