From 7edf6d74be120b413dbf75cbbcd1daf51c30e6da Mon Sep 17 00:00:00 2001
From: neizbejnoezlo <137374284+neizbejnoezlo@users.noreply.github.com>
Date: Mon, 27 Apr 2026 16:24:05 +0700
Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B0=D1=87=D0=B0=D0=BB=D0=BE=20=D0=B2?=
=?UTF-8?q?=D1=91=D1=80=D1=81=D1=82=D0=BA=D0=B8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
mdm-front/index.html | 2 +-
mdm-front/package-lock.json | 1165 ++++++++++++++++-
mdm-front/package.json | 7 +
mdm-front/public/favicon.svg | 18 +-
mdm-front/public/icons.svg | 24 -
mdm-front/src/{App.css => App.scss} | 0
mdm-front/src/App.tsx | 112 +-
mdm-front/src/app/layouts/AppLayout.scss | 12 +
mdm-front/src/app/layouts/AppLayout.tsx | 16 +
mdm-front/src/app/router/router.tsx | 37 +
mdm-front/src/assets/Logo.svg | 26 +
mdm-front/src/assets/LogoIcon.svg | 17 +
.../fonts/Montserrat-VariableFont_wght.ttf | Bin 0 -> 688600 bytes
mdm-front/src/assets/hero.png | Bin 13057 -> 0 bytes
mdm-front/src/assets/react.svg | 1 -
mdm-front/src/assets/vite.svg | 1 -
mdm-front/src/{index.css => index.scss} | 25 +-
mdm-front/src/main.tsx | 8 +-
.../src/pages/DevicesPage/DevicesPage.scss | 242 ++++
.../src/pages/DevicesPage/DevicesPage.tsx | 180 +++
.../DevicesFiltersPanel/Datepicker.scss | 43 +
.../DevicesFiltersPanel.scss | 258 ++++
.../DevicesFiltersPanel.tsx | 234 ++++
.../components/DevicesTabs/DevicesTabs.scss | 39 +
.../components/DevicesTabs/DevicesTabs.tsx | 21 +
.../DevicesToolbar/DevicesToolbar.scss | 99 ++
.../DevicesToolbar/DevicesToolbar.tsx | 38 +
.../src/pages/DevicesPage/devices.mock.json | 102 ++
.../src/pages/EmployeesPage/EmployeesPage.tsx | 3 +
mdm-front/src/pages/MapPage/MapPage.tsx | 3 +
mdm-front/src/shared/styles/_variables.scss | 11 +
mdm-front/src/widgets/Navbar/Navbar.scss | 9 +
mdm-front/src/widgets/Navbar/Navbar.tsx | 25 +
mdm-front/src/widgets/Sidebar/Sidebar.scss | 191 +++
mdm-front/src/widgets/Sidebar/Sidebar.tsx | 75 ++
35 files changed, 2896 insertions(+), 148 deletions(-)
delete mode 100644 mdm-front/public/icons.svg
rename mdm-front/src/{App.css => App.scss} (100%)
create mode 100644 mdm-front/src/app/layouts/AppLayout.scss
create mode 100644 mdm-front/src/app/layouts/AppLayout.tsx
create mode 100644 mdm-front/src/app/router/router.tsx
create mode 100644 mdm-front/src/assets/Logo.svg
create mode 100644 mdm-front/src/assets/LogoIcon.svg
create mode 100644 mdm-front/src/assets/fonts/Montserrat-VariableFont_wght.ttf
delete mode 100644 mdm-front/src/assets/hero.png
delete mode 100644 mdm-front/src/assets/react.svg
delete mode 100644 mdm-front/src/assets/vite.svg
rename mdm-front/src/{index.css => index.scss} (76%)
create mode 100644 mdm-front/src/pages/DevicesPage/DevicesPage.scss
create mode 100644 mdm-front/src/pages/DevicesPage/DevicesPage.tsx
create mode 100644 mdm-front/src/pages/DevicesPage/components/DevicesFiltersPanel/Datepicker.scss
create mode 100644 mdm-front/src/pages/DevicesPage/components/DevicesFiltersPanel/DevicesFiltersPanel.scss
create mode 100644 mdm-front/src/pages/DevicesPage/components/DevicesFiltersPanel/DevicesFiltersPanel.tsx
create mode 100644 mdm-front/src/pages/DevicesPage/components/DevicesTabs/DevicesTabs.scss
create mode 100644 mdm-front/src/pages/DevicesPage/components/DevicesTabs/DevicesTabs.tsx
create mode 100644 mdm-front/src/pages/DevicesPage/components/DevicesToolbar/DevicesToolbar.scss
create mode 100644 mdm-front/src/pages/DevicesPage/components/DevicesToolbar/DevicesToolbar.tsx
create mode 100644 mdm-front/src/pages/DevicesPage/devices.mock.json
create mode 100644 mdm-front/src/pages/EmployeesPage/EmployeesPage.tsx
create mode 100644 mdm-front/src/pages/MapPage/MapPage.tsx
create mode 100644 mdm-front/src/shared/styles/_variables.scss
create mode 100644 mdm-front/src/widgets/Navbar/Navbar.scss
create mode 100644 mdm-front/src/widgets/Navbar/Navbar.tsx
create mode 100644 mdm-front/src/widgets/Sidebar/Sidebar.scss
create mode 100644 mdm-front/src/widgets/Sidebar/Sidebar.tsx
diff --git a/mdm-front/index.html b/mdm-front/index.html
index 9b4cb92..b293216 100644
--- a/mdm-front/index.html
+++ b/mdm-front/index.html
@@ -4,7 +4,7 @@
-
mdm-front
+ MDM
diff --git a/mdm-front/package-lock.json b/mdm-front/package-lock.json
index 16714bc..a2d1cf2 100644
--- a/mdm-front/package-lock.json
+++ b/mdm-front/package-lock.json
@@ -9,14 +9,20 @@
"version": "0.0.0",
"dependencies": {
"@apollo/client": "^4.1.9",
+ "@heroui/react": "^3.0.3",
"@hookform/resolvers": "^5.2.2",
+ "@internationalized/date": "^3.12.1",
+ "@radix-ui/react-accordion": "^1.2.12",
"@tanstack/react-table": "^8.21.3",
+ "date-fns": "^4.1.0",
"echarts": "^6.0.0",
"echarts-for-react": "^3.0.6",
+ "framer-motion": "^12.38.0",
"graphql": "^16.13.2",
"leaflet": "^1.9.4",
"lucide-react": "^1.9.0",
"react": "^19.2.5",
+ "react-datepicker": "^9.1.0",
"react-dom": "^19.2.5",
"react-hook-form": "^7.73.1",
"react-leaflet": "^5.0.0",
@@ -30,6 +36,7 @@
"@types/leaflet": "^1.9.21",
"@types/node": "^24.12.2",
"@types/react": "^19.2.14",
+ "@types/react-datepicker": "^6.2.0",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^6.0.1",
"eslint": "^10.2.1",
@@ -41,6 +48,50 @@
"vite": "^8.0.10"
}
},
+ "node_modules/@adobe/react-spectrum": {
+ "version": "3.47.0",
+ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum/-/react-spectrum-3.47.0.tgz",
+ "integrity": "sha512-EDQuMzz0kUeiMUUlxoeLFQyyxOXaAC7qlBw2PYOUfFLYd87xcV7VVV0JxiYx8zGk1IIY3UgQHgXrS1fv7CgezQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@internationalized/date": "^3.12.1",
+ "@react-types/shared": "^3.34.0",
+ "@spectrum-icons/ui": "^3.7.0",
+ "@spectrum-icons/workflow": "^4.3.0",
+ "@swc/helpers": "^0.5.0",
+ "client-only": "^0.0.1",
+ "clsx": "^2.0.0",
+ "react-aria": "3.48.0",
+ "react-aria-components": "1.17.0",
+ "react-stately": "3.46.0",
+ "react-transition-group": "^4.4.5",
+ "use-sync-external-store": "^1.6.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@adobe/react-spectrum-ui": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum-ui/-/react-spectrum-ui-1.2.1.tgz",
+ "integrity": "sha512-wcrbEE2O/9WnEn6avBnaVRRx88S5PLFsPLr4wffzlbMfXeQsy+RMQwaJd3cbzrn18/j04Isit7f7Emfn0dhrJA==",
+ "license": "Apache-2.0",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0"
+ }
+ },
+ "node_modules/@adobe/react-spectrum-workflow": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/@adobe/react-spectrum-workflow/-/react-spectrum-workflow-2.3.5.tgz",
+ "integrity": "sha512-b53VIPwPWKb/T5gzE3qs+QlGP5gVrw/LnWV3xMksDU+CRl3rzOKUwxIGiZO8ICyYh1WiyqY4myGlPU/nAynBUg==",
+ "license": "Apache-2.0",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0"
+ }
+ },
"node_modules/@apollo/client": {
"version": "4.1.9",
"resolved": "https://registry.npmjs.org/@apollo/client/-/client-4.1.9.tgz",
@@ -270,6 +321,15 @@
"node": ">=6.0.0"
}
},
+ "node_modules/@babel/runtime": {
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz",
+ "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@babel/template": {
"version": "7.28.6",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz",
@@ -480,6 +540,110 @@
"node": "^20.19.0 || ^22.13.0 || >=24"
}
},
+ "node_modules/@floating-ui/core": {
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz",
+ "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/utils": "^0.2.11"
+ }
+ },
+ "node_modules/@floating-ui/dom": {
+ "version": "1.7.6",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz",
+ "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/core": "^1.7.5",
+ "@floating-ui/utils": "^0.2.11"
+ }
+ },
+ "node_modules/@floating-ui/react": {
+ "version": "0.27.19",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.27.19.tgz",
+ "integrity": "sha512-31B8h5mm8YxotlE7/AU/PhNAl8eWxAmjL/v2QOxroDNkTFLk3Uu82u63N3b6TXa4EGJeeZLVcd/9AlNlVqzeog==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/react-dom": "^2.1.8",
+ "@floating-ui/utils": "^0.2.11",
+ "tabbable": "^6.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=17.0.0",
+ "react-dom": ">=17.0.0"
+ }
+ },
+ "node_modules/@floating-ui/react-dom": {
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.8.tgz",
+ "integrity": "sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/dom": "^1.7.6"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0",
+ "react-dom": ">=16.8.0"
+ }
+ },
+ "node_modules/@floating-ui/utils": {
+ "version": "0.2.11",
+ "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz",
+ "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==",
+ "license": "MIT"
+ },
+ "node_modules/@formatjs/ecma402-abstract": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.6.tgz",
+ "integrity": "sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw==",
+ "license": "MIT",
+ "dependencies": {
+ "@formatjs/fast-memoize": "2.2.7",
+ "@formatjs/intl-localematcher": "0.6.2",
+ "decimal.js": "^10.4.3",
+ "tslib": "^2.8.0"
+ }
+ },
+ "node_modules/@formatjs/fast-memoize": {
+ "version": "2.2.7",
+ "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.7.tgz",
+ "integrity": "sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.8.0"
+ }
+ },
+ "node_modules/@formatjs/icu-messageformat-parser": {
+ "version": "2.11.4",
+ "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.4.tgz",
+ "integrity": "sha512-7kR78cRrPNB4fjGFZg3Rmj5aah8rQj9KPzuLsmcSn4ipLXQvC04keycTI1F7kJYDwIXtT2+7IDEto842CfZBtw==",
+ "license": "MIT",
+ "dependencies": {
+ "@formatjs/ecma402-abstract": "2.3.6",
+ "@formatjs/icu-skeleton-parser": "1.8.16",
+ "tslib": "^2.8.0"
+ }
+ },
+ "node_modules/@formatjs/icu-skeleton-parser": {
+ "version": "1.8.16",
+ "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.16.tgz",
+ "integrity": "sha512-H13E9Xl+PxBd8D5/6TVUluSpxGNvFSlN/b3coUp0e0JpuWXXnQDiavIpY3NnvSp4xhEMoXyyBvVfdFX8jglOHQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@formatjs/ecma402-abstract": "2.3.6",
+ "tslib": "^2.8.0"
+ }
+ },
+ "node_modules/@formatjs/intl-localematcher": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.6.2.tgz",
+ "integrity": "sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.8.0"
+ }
+ },
"node_modules/@graphql-typed-document-node/core": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz",
@@ -489,6 +653,44 @@
"graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
}
},
+ "node_modules/@heroui/react": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@heroui/react/-/react-3.0.3.tgz",
+ "integrity": "sha512-UJPOxg3IbS5KtI2GLP7S56KrSBn/r4xQyntCVpnPzgoT7JuciB4dq7IhckuDNHcrdIPO45JrKHGJz2hiYxaRGg==",
+ "license": "MIT",
+ "dependencies": {
+ "@heroui/styles": "3.0.3",
+ "@radix-ui/react-avatar": "1.1.11",
+ "@react-aria/i18n": "3.13.0",
+ "@react-aria/ssr": "3.10.0",
+ "@react-aria/utils": "3.34.0",
+ "@react-stately/utils": "3.12.0",
+ "@react-types/color": "3.2.0",
+ "@react-types/shared": "3.34.0",
+ "input-otp": "1.4.2",
+ "react-aria-components": "1.17.0",
+ "tailwind-merge": "3.4.0",
+ "tailwind-variants": "3.2.2"
+ },
+ "peerDependencies": {
+ "react": ">=19.0.0",
+ "react-dom": ">=19.0.0",
+ "tailwindcss": ">=4.0.0"
+ }
+ },
+ "node_modules/@heroui/styles": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@heroui/styles/-/styles-3.0.3.tgz",
+ "integrity": "sha512-DtN5QWfLVxy6DSDNgtUuHVU/h4G+dfoDHHxGVZRW6plCEh1Rc5Yc7YW7b8JBiYCknSRx/fqLXpas3Fe5Q5XJSw==",
+ "license": "MIT",
+ "dependencies": {
+ "tailwind-variants": "3.2.2",
+ "tw-animate-css": "1.4.0"
+ },
+ "peerDependencies": {
+ "tailwindcss": ">=4.0.0"
+ }
+ },
"node_modules/@hookform/resolvers": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-5.2.2.tgz",
@@ -567,6 +769,43 @@
"url": "https://github.com/sponsors/nzakas"
}
},
+ "node_modules/@internationalized/date": {
+ "version": "3.12.1",
+ "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.12.1.tgz",
+ "integrity": "sha512-6IedsVWXyq4P9Tj+TxuU8WGWM70hYLl12nbYU8jkikVpa6WXapFazPUcHUMDMoWftIDE2ILDkFFte6W2nFCkRQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@swc/helpers": "^0.5.0"
+ }
+ },
+ "node_modules/@internationalized/message": {
+ "version": "3.1.9",
+ "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.9.tgz",
+ "integrity": "sha512-x03MSVTaB/4JHtW1VAYaY/2cCuBrHbWM6ZvlgpKdnSdW28tZbqpR673RJrVJyXWRw1bpgYN89Tz7ohX5tgNgPA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@swc/helpers": "^0.5.0",
+ "intl-messageformat": "^10.1.0"
+ }
+ },
+ "node_modules/@internationalized/number": {
+ "version": "3.6.6",
+ "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.6.6.tgz",
+ "integrity": "sha512-iFgmQaXHE0vytNfpLZWOC2mEJCBRzcUxt53Xf/yCXG93lRvqas237i3r7X4RKMwO3txiyZD4mQjKAByFv6UGSQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@swc/helpers": "^0.5.0"
+ }
+ },
+ "node_modules/@internationalized/string": {
+ "version": "3.2.8",
+ "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.2.8.tgz",
+ "integrity": "sha512-NdbMQUSfXLYIQol5VyMtinm9pZDciiMfN7RtmSuSB78io1hqwJ0naYfxyW6vgxWBkzWymQa/3uLDlbfmshtCaA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@swc/helpers": "^0.5.0"
+ }
+ },
"node_modules/@jridgewell/gen-mapping": {
"version": "0.3.13",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
@@ -960,6 +1199,458 @@
"url": "https://opencollective.com/parcel"
}
},
+ "node_modules/@radix-ui/primitive": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz",
+ "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==",
+ "license": "MIT"
+ },
+ "node_modules/@radix-ui/react-accordion": {
+ "version": "1.2.12",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.12.tgz",
+ "integrity": "sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/primitive": "1.1.3",
+ "@radix-ui/react-collapsible": "1.1.12",
+ "@radix-ui/react-collection": "1.1.7",
+ "@radix-ui/react-compose-refs": "1.1.2",
+ "@radix-ui/react-context": "1.1.2",
+ "@radix-ui/react-direction": "1.1.1",
+ "@radix-ui/react-id": "1.1.1",
+ "@radix-ui/react-primitive": "2.1.3",
+ "@radix-ui/react-use-controllable-state": "1.2.2"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-avatar": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.11.tgz",
+ "integrity": "sha512-0Qk603AHGV28BOBO34p7IgD5m+V5Sg/YovfayABkoDDBM5d3NCx0Mp4gGrjzLGes1jV5eNOE1r3itqOR33VC6Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-context": "1.1.3",
+ "@radix-ui/react-primitive": "2.1.4",
+ "@radix-ui/react-use-callback-ref": "1.1.1",
+ "@radix-ui/react-use-is-hydrated": "0.1.0",
+ "@radix-ui/react-use-layout-effect": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-context": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.3.tgz",
+ "integrity": "sha512-ieIFACdMpYfMEjF0rEf5KLvfVyIkOz6PDGyNnP+u+4xQ6jny3VCgA4OgXOwNx2aUkxn8zx9fiVcM8CfFYv9Lxw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-primitive": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.4.tgz",
+ "integrity": "sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-slot": "1.2.4"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-slot": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.4.tgz",
+ "integrity": "sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-compose-refs": "1.1.2"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-collapsible": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.12.tgz",
+ "integrity": "sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/primitive": "1.1.3",
+ "@radix-ui/react-compose-refs": "1.1.2",
+ "@radix-ui/react-context": "1.1.2",
+ "@radix-ui/react-id": "1.1.1",
+ "@radix-ui/react-presence": "1.1.5",
+ "@radix-ui/react-primitive": "2.1.3",
+ "@radix-ui/react-use-controllable-state": "1.2.2",
+ "@radix-ui/react-use-layout-effect": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-collection": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz",
+ "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-compose-refs": "1.1.2",
+ "@radix-ui/react-context": "1.1.2",
+ "@radix-ui/react-primitive": "2.1.3",
+ "@radix-ui/react-slot": "1.2.3"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-compose-refs": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz",
+ "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-context": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz",
+ "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-direction": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz",
+ "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-id": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz",
+ "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-use-layout-effect": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-presence": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz",
+ "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-compose-refs": "1.1.2",
+ "@radix-ui/react-use-layout-effect": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-primitive": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz",
+ "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-slot": "1.2.3"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-slot": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz",
+ "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-compose-refs": "1.1.2"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-callback-ref": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz",
+ "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-controllable-state": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz",
+ "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-use-effect-event": "0.0.2",
+ "@radix-ui/react-use-layout-effect": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-effect-event": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz",
+ "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==",
+ "license": "MIT",
+ "dependencies": {
+ "@radix-ui/react-use-layout-effect": "1.1.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-is-hydrated": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.0.tgz",
+ "integrity": "sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==",
+ "license": "MIT",
+ "dependencies": {
+ "use-sync-external-store": "^1.5.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-layout-effect": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz",
+ "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@react-aria/color": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/color/-/color-3.2.0.tgz",
+ "integrity": "sha512-Qw1TySxXnGlE4L7kzsi8v86U1yFs9FtonqsbySFzLPzsMV1Oar+rtkYHI5vwNSyNNF6TBJJikJNocS9Fi8xXwA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@swc/helpers": "^0.5.0",
+ "react-aria": "3.48.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-aria/i18n": {
+ "version": "3.13.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.13.0.tgz",
+ "integrity": "sha512-APjw4EwmvlnIyDxixSWfjHvOFFkW2rVTyKZ4l9FV0v7hOerh+FWLE6mF1XnnX3pgz3yARkKWwhSR9xYcRK6tpg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@internationalized/date": "^3.12.1",
+ "@internationalized/message": "^3.1.9",
+ "@internationalized/string": "^3.2.8",
+ "@swc/helpers": "^0.5.0",
+ "react-aria": "3.48.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-aria/ssr": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.10.0.tgz",
+ "integrity": "sha512-mnelvACtfNWWKFCT1YHebxJRmfBmmANGwHQhCFPByMVTx1L8RumcaLxChYkE87g2KPuP5xX2il/oRn1DytW+qQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@swc/helpers": "^0.5.0",
+ "react-aria": "3.48.0"
+ },
+ "engines": {
+ "node": ">= 12"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-aria/utils": {
+ "version": "3.34.0",
+ "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.34.0.tgz",
+ "integrity": "sha512-ZM1ZXIqpwGTJjjL6o3JhlZkEaBpQdxuOCqLEvwEwooaj5GsYI3E9UfOl5vy3UW6bYiEEWl9pNBntrb9CR9kItQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@swc/helpers": "^0.5.0",
+ "react-aria": "3.48.0",
+ "react-stately": "3.46.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
"node_modules/@react-leaflet/core": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@react-leaflet/core/-/core-3.0.0.tgz",
@@ -971,6 +1662,89 @@
"react-dom": "^19.0.0"
}
},
+ "node_modules/@react-spectrum/color": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@react-spectrum/color/-/color-3.2.0.tgz",
+ "integrity": "sha512-Xg/U8+l1CQdvPRF4Zrv7AvtqsjuYUNkMxJMG0cIug9RKtIfEoyh7VR4Xg3FNd4Y/AwKXNJZZN4l94qz4WlK23Q==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@adobe/react-spectrum": "3.47.0",
+ "@swc/helpers": "^0.5.0",
+ "react-stately": "3.46.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-spectrum/provider": {
+ "version": "3.11.0",
+ "resolved": "https://registry.npmjs.org/@react-spectrum/provider/-/provider-3.11.0.tgz",
+ "integrity": "sha512-W2Gxbj8AcG5OR2K5Ua3K8qQqxdsiytEiz+2rhr6oQyBM8VafEgDcNPYSOTtfjrQM3snl2Uhp8LzwN0jwQe/6nQ==",
+ "license": "Apache-2.0",
+ "peer": true,
+ "dependencies": {
+ "@adobe/react-spectrum": "3.47.0",
+ "@swc/helpers": "^0.5.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-stately/color": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/@react-stately/color/-/color-3.10.0.tgz",
+ "integrity": "sha512-P4tlvOYFA8hl/NXiMyPxfM+7rXV01hnwlvGCwbZqUK1aRv0Ry0yGCj2AbSzhYHx7i4J4+CVUJUYozNLzhm+6Sw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@swc/helpers": "^0.5.0",
+ "react-stately": "3.46.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-stately/utils": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.12.0.tgz",
+ "integrity": "sha512-7q+iHz9cENvro1dVKgdTxNh1i1mtWuLUI6UHp10TAgpxM9DyRDvmuN35zLXYCmMDgx3WLY2xkwqoez8xd+CdxQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@swc/helpers": "^0.5.0",
+ "react-stately": "3.46.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-types/color": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@react-types/color/-/color-3.2.0.tgz",
+ "integrity": "sha512-beV3vz80nzZ1EuYUM7296Kyi3AHcMrbQw0qub/9yzHWVTKKc5sy/e4dCMKcWL/ArkeAyc7jDOiui190RQ4l0Fw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@react-aria/color": "^3.2.0",
+ "@react-spectrum/color": "^3.2.0",
+ "@react-stately/color": "^3.10.0"
+ },
+ "peerDependencies": {
+ "@react-spectrum/provider": "^3.0.0",
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@react-types/shared": {
+ "version": "3.34.0",
+ "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.34.0.tgz",
+ "integrity": "sha512-gp6xo/s2lX54AlTjOiqwDnxA7UW79BNvI9dB9pr3LZTzRKCd1ZA+ZbgKw/ReIiWuvvVw/8QFJpnqeeFyLocMcQ==",
+ "license": "Apache-2.0",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
"node_modules/@rolldown/binding-android-arm64": {
"version": "1.0.0-rc.17",
"resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.17.tgz",
@@ -1253,12 +2027,52 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@spectrum-icons/ui": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.7.0.tgz",
+ "integrity": "sha512-86iQSDfJb3Ama1WSJ/mEiFy4DJT7e/v4pSmEuX4aKKMzbNYft+O40N18S2POUnmblrb7MQneLC/pgIp1SDBwEQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@adobe/react-spectrum-ui": "1.2.1",
+ "@babel/runtime": "^7.24.4",
+ "@swc/helpers": "^0.5.0"
+ },
+ "peerDependencies": {
+ "@adobe/react-spectrum": "^3.47.0",
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/@spectrum-icons/workflow": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-4.3.0.tgz",
+ "integrity": "sha512-ILuhgWh9jMXaEVMRuOYgTAjMc22cKyvCtUDyZmc8OEMfOYuejj+Gcp5t6DhaCfE0M9rORtVxCrRgsO2WyEgfUw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@adobe/react-spectrum-workflow": "2.3.5",
+ "@swc/helpers": "^0.5.0"
+ },
+ "peerDependencies": {
+ "@adobe/react-spectrum": "^3.47.0",
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
"node_modules/@standard-schema/utils": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz",
"integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==",
"license": "MIT"
},
+ "node_modules/@swc/helpers": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.21.tgz",
+ "integrity": "sha512-jI/VAmtdjB/RnI8GTnokyX7Ug8c+g+ffD6QRLa6XQewtnGyukKkKSk3wLTM3b5cjt1jNh9x0jfVlagdN2gDKQg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.8.0"
+ }
+ },
"node_modules/@tanstack/react-table": {
"version": "8.21.3",
"resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-8.21.3.tgz",
@@ -1361,11 +2175,50 @@
"csstype": "^3.2.2"
}
},
+ "node_modules/@types/react-datepicker": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/@types/react-datepicker/-/react-datepicker-6.2.0.tgz",
+ "integrity": "sha512-+JtO4Fm97WLkJTH8j8/v3Ldh7JCNRwjMYjRaKh4KHH0M3jJoXtwiD3JBCsdlg3tsFIw9eQSqyAPeVDN2H2oM9Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/react": "^0.26.2",
+ "@types/react": "*",
+ "date-fns": "^3.3.1"
+ }
+ },
+ "node_modules/@types/react-datepicker/node_modules/@floating-ui/react": {
+ "version": "0.26.28",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.28.tgz",
+ "integrity": "sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/react-dom": "^2.1.2",
+ "@floating-ui/utils": "^0.2.8",
+ "tabbable": "^6.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0",
+ "react-dom": ">=16.8.0"
+ }
+ },
+ "node_modules/@types/react-datepicker/node_modules/date-fns": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz",
+ "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/kossnocorp"
+ }
+ },
"node_modules/@types/react-dom": {
"version": "19.2.3",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz",
"integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"peerDependencies": {
"@types/react": "^19.2.0"
@@ -1728,6 +2581,18 @@
"url": "https://github.com/sponsors/epoberezkin"
}
},
+ "node_modules/aria-hidden": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz",
+ "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/balanced-match": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
@@ -1834,6 +2699,21 @@
"url": "https://paulmillr.com/funding/"
}
},
+ "node_modules/client-only": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz",
+ "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==",
+ "license": "MIT"
+ },
+ "node_modules/clsx": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/convert-source-map": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
@@ -1873,9 +2753,18 @@
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz",
"integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==",
- "devOptional": true,
"license": "MIT"
},
+ "node_modules/date-fns": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz",
+ "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/kossnocorp"
+ }
+ },
"node_modules/debug": {
"version": "4.4.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
@@ -1894,6 +2783,12 @@
}
}
},
+ "node_modules/decimal.js": {
+ "version": "10.6.0",
+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz",
+ "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==",
+ "license": "MIT"
+ },
"node_modules/deep-is": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
@@ -1911,6 +2806,16 @@
"node": ">=8"
}
},
+ "node_modules/dom-helpers": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
+ "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.8.7",
+ "csstype": "^3.0.2"
+ }
+ },
"node_modules/echarts": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/echarts/-/echarts-6.0.0.tgz",
@@ -2242,6 +3147,33 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/framer-motion": {
+ "version": "12.38.0",
+ "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.38.0.tgz",
+ "integrity": "sha512-rFYkY/pigbcswl1XQSb7q424kSTQ8q6eAC+YUsSKooHQYuLdzdHjrt6uxUC+PRAO++q5IS7+TamgIw1AphxR+g==",
+ "license": "MIT",
+ "dependencies": {
+ "motion-dom": "^12.38.0",
+ "motion-utils": "^12.36.0",
+ "tslib": "^2.4.0"
+ },
+ "peerDependencies": {
+ "@emotion/is-prop-valid": "*",
+ "react": "^18.0.0 || ^19.0.0",
+ "react-dom": "^18.0.0 || ^19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@emotion/is-prop-valid": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "react-dom": {
+ "optional": true
+ }
+ }
+ },
"node_modules/fsevents": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
@@ -2360,6 +3292,28 @@
"node": ">=0.8.19"
}
},
+ "node_modules/input-otp": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/input-otp/-/input-otp-1.4.2.tgz",
+ "integrity": "sha512-l3jWwYNvrEa6NTCt7BECfCm48GvwuZzkoeG3gBL2w4CHeOXW3eKFmf9UNYkNfYc3mxMrthMnxjIE07MT0zLBQA==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc"
+ }
+ },
+ "node_modules/intl-messageformat": {
+ "version": "10.7.18",
+ "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.18.tgz",
+ "integrity": "sha512-m3Ofv/X/tV8Y3tHXLohcuVuhWKo7BBq62cqY15etqmLxg2DZ34AGGgQDeR+SCta2+zICb1NX83af0GJmbQ1++g==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@formatjs/ecma402-abstract": "2.3.6",
+ "@formatjs/fast-memoize": "2.2.7",
+ "@formatjs/icu-messageformat-parser": "2.11.4",
+ "tslib": "^2.8.0"
+ }
+ },
"node_modules/is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
@@ -2394,7 +3348,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true,
"license": "MIT"
},
"node_modules/jsesc": {
@@ -2763,6 +3716,18 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ },
+ "bin": {
+ "loose-envify": "cli.js"
+ }
+ },
"node_modules/lru-cache": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
@@ -2798,6 +3763,21 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/motion-dom": {
+ "version": "12.38.0",
+ "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.38.0.tgz",
+ "integrity": "sha512-pdkHLD8QYRp8VfiNLb8xIBJis1byQ9gPT3Jnh2jqfFtAsWUA3dEepDlsWe/xMpO8McV+VdpKVcp+E+TGJEtOoA==",
+ "license": "MIT",
+ "dependencies": {
+ "motion-utils": "^12.36.0"
+ }
+ },
+ "node_modules/motion-utils": {
+ "version": "12.36.0",
+ "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.36.0.tgz",
+ "integrity": "sha512-eHWisygbiwVvf6PZ1vhaHCLamvkSbPIeAYxWUuL3a2PD/TROgE7FvfHWTIH4vMl798QLfMw15nRqIaRDXTlYRg==",
+ "license": "MIT"
+ },
"node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
@@ -2845,6 +3825,15 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/optimism": {
"version": "0.18.1",
"resolved": "https://registry.npmjs.org/optimism/-/optimism-0.18.1.tgz",
@@ -2986,6 +3975,17 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/prop-types": {
+ "version": "15.8.1",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
+ }
+ },
"node_modules/punycode": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
@@ -3005,6 +4005,66 @@
"node": ">=0.10.0"
}
},
+ "node_modules/react-aria": {
+ "version": "3.48.0",
+ "resolved": "https://registry.npmjs.org/react-aria/-/react-aria-3.48.0.tgz",
+ "integrity": "sha512-jQjd4rBEIMqecBaAKYJbVGK6EqIHLa5znVQ7jwFyK5vCyljoj6KhgtiahmcIPsG5vG5vEDLw+ba+bEWn6A2P4w==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@internationalized/date": "^3.12.1",
+ "@internationalized/number": "^3.6.6",
+ "@internationalized/string": "^3.2.8",
+ "@react-types/shared": "^3.34.0",
+ "@swc/helpers": "^0.5.0",
+ "aria-hidden": "^1.2.3",
+ "clsx": "^2.0.0",
+ "react-stately": "3.46.0",
+ "use-sync-external-store": "^1.6.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/react-aria-components": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/react-aria-components/-/react-aria-components-1.17.0.tgz",
+ "integrity": "sha512-0EyisMgvsFJ2aML3crDYv2tW5vT2Ryf8PGzY/g63JjDdCbLshlwazhS8JNtPF1vkTkungJJ6sVJbKyX+YKSoFA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@internationalized/date": "^3.12.1",
+ "@react-types/shared": "^3.34.0",
+ "@swc/helpers": "^0.5.0",
+ "client-only": "^0.0.1",
+ "react-aria": "3.48.0",
+ "react-stately": "3.46.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1",
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/react-datepicker": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-9.1.0.tgz",
+ "integrity": "sha512-lOp+m5bc+ttgtB5MHEjwiVu4nlp4CvJLS/PG1OiOe5pmg9kV73pEqO8H0Geqvg2E8gjqTaL9eRhSe+ZpeKP3nA==",
+ "license": "MIT",
+ "dependencies": {
+ "@floating-ui/react": "^0.27.15",
+ "clsx": "^2.1.1",
+ "date-fns": "^4.1.0"
+ },
+ "peerDependencies": {
+ "date-fns-tz": "^3.0.0",
+ "react": "^16.9.0 || ^17 || ^18 || ^19 || ^19.0.0-rc",
+ "react-dom": "^16.9.0 || ^17 || ^18 || ^19 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "date-fns-tz": {
+ "optional": true
+ }
+ }
+ },
"node_modules/react-dom": {
"version": "19.2.5",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.5.tgz",
@@ -3033,6 +4093,12 @@
"react": "^16.8.0 || ^17 || ^18 || ^19"
}
},
+ "node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "license": "MIT"
+ },
"node_modules/react-leaflet": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/react-leaflet/-/react-leaflet-5.0.0.tgz",
@@ -3085,6 +4151,39 @@
"react-dom": ">=18"
}
},
+ "node_modules/react-stately": {
+ "version": "3.46.0",
+ "resolved": "https://registry.npmjs.org/react-stately/-/react-stately-3.46.0.tgz",
+ "integrity": "sha512-OdxhWvHgs2L4OJGIs7hnuTr5WjjMM6enhNEAMRqiekhF8+ITvA2LRwNftOZwcogaoCslGYq5S2VQTQwnm0GbCA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@internationalized/date": "^3.12.1",
+ "@internationalized/number": "^3.6.6",
+ "@internationalized/string": "^3.2.8",
+ "@react-types/shared": "^3.34.0",
+ "@swc/helpers": "^0.5.0",
+ "use-sync-external-store": "^1.6.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1"
+ }
+ },
+ "node_modules/react-transition-group": {
+ "version": "4.4.5",
+ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
+ "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@babel/runtime": "^7.5.5",
+ "dom-helpers": "^5.0.1",
+ "loose-envify": "^1.4.0",
+ "prop-types": "^15.6.2"
+ },
+ "peerDependencies": {
+ "react": ">=16.6.0",
+ "react-dom": ">=16.6.0"
+ }
+ },
"node_modules/readdirp": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
@@ -3229,6 +4328,48 @@
"node": ">=0.10.0"
}
},
+ "node_modules/tabbable": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.4.0.tgz",
+ "integrity": "sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==",
+ "license": "MIT"
+ },
+ "node_modules/tailwind-merge": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.4.0.tgz",
+ "integrity": "sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/dcastil"
+ }
+ },
+ "node_modules/tailwind-variants": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/tailwind-variants/-/tailwind-variants-3.2.2.tgz",
+ "integrity": "sha512-Mi4kHeMTLvKlM98XPnK+7HoBPmf4gygdFmqQPaDivc3DpYS6aIY6KiG/PgThrGvii5YZJqRsPz0aPyhoFzmZgg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=16.x",
+ "pnpm": ">=7.x"
+ },
+ "peerDependencies": {
+ "tailwind-merge": ">=3.0.0",
+ "tailwindcss": "*"
+ },
+ "peerDependenciesMeta": {
+ "tailwind-merge": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/tailwindcss": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.4.tgz",
+ "integrity": "sha512-HhKppgO81FQof5m6TEnuBWCZGgfRAWbaeOaGT00KOy/Pf/j6oUihdvBpA7ltCeAvZpFhW3j0PTclkxsd4IXYDA==",
+ "license": "MIT",
+ "peer": true
+ },
"node_modules/tinyglobby": {
"version": "0.2.16",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz",
@@ -3265,6 +4406,15 @@
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
"license": "0BSD"
},
+ "node_modules/tw-animate-css": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.4.0.tgz",
+ "integrity": "sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/Wombosvideo"
+ }
+ },
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -3364,6 +4514,15 @@
"punycode": "^2.1.0"
}
},
+ "node_modules/use-sync-external-store": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz",
+ "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==",
+ "license": "MIT",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
+ }
+ },
"node_modules/vite": {
"version": "8.0.10",
"resolved": "https://registry.npmjs.org/vite/-/vite-8.0.10.tgz",
diff --git a/mdm-front/package.json b/mdm-front/package.json
index 8d89d5d..9e56ca4 100644
--- a/mdm-front/package.json
+++ b/mdm-front/package.json
@@ -11,14 +11,20 @@
},
"dependencies": {
"@apollo/client": "^4.1.9",
+ "@heroui/react": "^3.0.3",
"@hookform/resolvers": "^5.2.2",
+ "@internationalized/date": "^3.12.1",
+ "@radix-ui/react-accordion": "^1.2.12",
"@tanstack/react-table": "^8.21.3",
+ "date-fns": "^4.1.0",
"echarts": "^6.0.0",
"echarts-for-react": "^3.0.6",
+ "framer-motion": "^12.38.0",
"graphql": "^16.13.2",
"leaflet": "^1.9.4",
"lucide-react": "^1.9.0",
"react": "^19.2.5",
+ "react-datepicker": "^9.1.0",
"react-dom": "^19.2.5",
"react-hook-form": "^7.73.1",
"react-leaflet": "^5.0.0",
@@ -32,6 +38,7 @@
"@types/leaflet": "^1.9.21",
"@types/node": "^24.12.2",
"@types/react": "^19.2.14",
+ "@types/react-datepicker": "^6.2.0",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^6.0.1",
"eslint": "^10.2.1",
diff --git a/mdm-front/public/favicon.svg b/mdm-front/public/favicon.svg
index 6893eb1..7ea007a 100644
--- a/mdm-front/public/favicon.svg
+++ b/mdm-front/public/favicon.svg
@@ -1 +1,17 @@
-
\ No newline at end of file
+
diff --git a/mdm-front/public/icons.svg b/mdm-front/public/icons.svg
deleted file mode 100644
index e952219..0000000
--- a/mdm-front/public/icons.svg
+++ /dev/null
@@ -1,24 +0,0 @@
-
diff --git a/mdm-front/src/App.css b/mdm-front/src/App.scss
similarity index 100%
rename from mdm-front/src/App.css
rename to mdm-front/src/App.scss
diff --git a/mdm-front/src/App.tsx b/mdm-front/src/App.tsx
index a66b5ef..1d01b9e 100644
--- a/mdm-front/src/App.tsx
+++ b/mdm-front/src/App.tsx
@@ -1,116 +1,16 @@
import { useState } from 'react'
-import reactLogo from './assets/react.svg'
-import viteLogo from './assets/vite.svg'
-import heroImg from './assets/hero.png'
-import './App.css'
+//import reactLogo from './assets/react.svg'
+//import viteLogo from './assets/vite.svg'
+//import heroImg from './assets/hero.png'
+import './App.scss'
function App() {
- const [count, setCount] = useState(0)
+ //const [count, setCount] = useState(0)
return (
<>
-
-
-
Get started
-
- Edit src/App.tsx and save to test HMR
-
-
-
-
-
-
-
-
-
-
-
Documentation
-
Your questions, answered
-
-
-
-
-
Connect with us
-
Join the Vite community
-
-
+
diff --git a/mdm-front/src/app/layouts/AppLayout.scss b/mdm-front/src/app/layouts/AppLayout.scss
new file mode 100644
index 0000000..bb00f11
--- /dev/null
+++ b/mdm-front/src/app/layouts/AppLayout.scss
@@ -0,0 +1,12 @@
+.app-layout {
+ display: flex;
+ min-height: 100vh;
+ background: #EFF2F7;
+}
+
+.app-layout__content {
+ display: flex;
+ flex-direction: column;
+ flex: 1;
+ padding: 20px 36px 36px 0;
+}
\ No newline at end of file
diff --git a/mdm-front/src/app/layouts/AppLayout.tsx b/mdm-front/src/app/layouts/AppLayout.tsx
new file mode 100644
index 0000000..35dcbb0
--- /dev/null
+++ b/mdm-front/src/app/layouts/AppLayout.tsx
@@ -0,0 +1,16 @@
+import { Outlet } from 'react-router-dom'
+import { Sidebar } from '../../widgets/Sidebar/Sidebar'
+import './AppLayout.scss'
+import { Navbar } from '../../widgets/Navbar/Navbar'
+
+export function AppLayout() {
+ return (
+
+
+
+
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/mdm-front/src/app/router/router.tsx b/mdm-front/src/app/router/router.tsx
new file mode 100644
index 0000000..7d60087
--- /dev/null
+++ b/mdm-front/src/app/router/router.tsx
@@ -0,0 +1,37 @@
+// src/app/router/router.tsx
+import { createBrowserRouter, Navigate } from 'react-router-dom'
+
+import { AppLayout } from '../layouts/AppLayout'
+import { DevicesPage } from '../../pages/DevicesPage/DevicesPage'
+//import { DevicePage } from '../../pages/DevicePage/DevicePage'
+import { MapPage } from '../../pages/MapPage/MapPage'
+import { EmployeesPage } from '../../pages/EmployeesPage/EmployeesPage'
+
+export const router = createBrowserRouter([
+ {
+ path: '/',
+ element: ,
+ children: [
+ {
+ index: true,
+ element: ,
+ },
+ {
+ path: 'devices',
+ element: ,
+ },/*
+ {
+ path: 'devices/:deviceId',
+ element: ,
+ }, */
+ {
+ path: 'map',
+ element: ,
+ },
+ {
+ path: 'employees',
+ element: ,
+ },
+ ],
+ },
+])
\ No newline at end of file
diff --git a/mdm-front/src/assets/Logo.svg b/mdm-front/src/assets/Logo.svg
new file mode 100644
index 0000000..529828a
--- /dev/null
+++ b/mdm-front/src/assets/Logo.svg
@@ -0,0 +1,26 @@
+
diff --git a/mdm-front/src/assets/LogoIcon.svg b/mdm-front/src/assets/LogoIcon.svg
new file mode 100644
index 0000000..7ea007a
--- /dev/null
+++ b/mdm-front/src/assets/LogoIcon.svg
@@ -0,0 +1,17 @@
+
diff --git a/mdm-front/src/assets/fonts/Montserrat-VariableFont_wght.ttf b/mdm-front/src/assets/fonts/Montserrat-VariableFont_wght.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..451e69288c17eb9823f8e96f1a2b9621094d2668
GIT binary patch
literal 688600
zcmeFZbwE_l_b_~B?(W{*rMqF5r5h9lMFA-hm6ot52?J2EMN!PPyF0L5Ozg()kKGuc
zVqox5QF+eY1>^Je`+J_x`#$e~@1DKqPMn!JbLLFmnE?U-#)x=O6c!v3x+|ag3ZVW0
zK%+%iRAlV1q68Zd%s33pTjQ|U_%?|~n>GQ=$N*?9Y1=6IMA
z&b9y){UJ0m*4=C9>~79z$1so*8y6V&>D~1dOiYOOvebd8{dP=!h>4R=X!lC*lbWxs
zF4&E6c>rkkPDlSi5o-<5e>VDCqz^2RXlw9u02p<&56{fc>QiB|G#S8QF@VE~KjBjC9?;)89xBc>fv`44v$yrE0(q}|GFg}xkNotziBQ-;I
z{RXB-U68(6HaZA9YWGIsztC=z-KSvilS^t>0kWn8IR4c;FFkeNC~wTa5Av&D-6wT$
zzJ|Z{Xr$kP^pf1vK0U5X*U1DBWaA^x&+A{1k{*=~aB&Q>KP10jk9@a-E0G!AVGOel
z2$1@E(84!bK@+r=LjVZ)3_~b&=d(Qa^Jh2o;{3$}pa3b8Km-(X=ne~!YeuUW%MoKi
z37o3uW15!Vw`7=zYL2^cML0Ld~Ba0>K+
zrk4Yd5BzaqL;yEz3thTv`F#X6RlIj=VH4;5xY?{e-{s$1VtV({DnQOuKUG>nw43)Y
z=$FSi4$jUhz?YI&P*=umju=Cj)dnb^0L&0la1RmbYFXl&NAn>AFke(o6VV=_dXsM8
zMVg`g$8R~%`T(#Q*60x5K2XACvyQ6d!iy&-BtYhI{*+Jm<4XbzeTL8ehQ}HhfckHZ
zPkrn9Z=9dX4*Cds2tTpP<)7{vNTbz2t@9(4Cg?VVG^QSy6Fyn5lz=womY|Oa#DlW3
z3ox(1Jq&7#QdDXxJ5eVZXgY;%nnVk+3qIOJ2Qlg;(It9_Kj5QJI9*0b5kq2xCd?->
zCMFo81Wl&IOcgi5+KcHD;7SM;8N`TffO0%=MVC{M+M8G?Ig@}3_&{5TgB0iugJBH1
z;*Y2)c~zM;IL;c}wK(25sR1QA9Cu1ttLXGN9vkQkl;x>%H~NLfgyXb<#!M*(25ppZ
z+Msj~sP}8yGTzrd!^+3L-m1A>y;U>YdMj_+FIG)$a9Gj>#aPb^;YiE
z5-T@Jy_Ks~y_Jh)y_K_NhLw{=y_KUyoRx!ly_M9Y-b!LxZ)JsVOT&6A3!{1~b9|fm
znbdbS_A{*SY|5F8IFo@%fMI>IUWsnJPKkEBZjyGAMu~bnzl0aBp2SPi;#u+hdEI#<
zd53rpc&t{5X1toEIG(i>#FG+;*G%%zoUTd5NrEJafIJisNYa8lmOJM2)Wo7iVQ`&c;|;cH{zT0^wl`0t%jb
zgPDLO^SZ%IL6dpdU}nIJ+0tO<{X)YBQ)YI9y8zt>HkgHA&BQgBMZcKUFdnWhbLp!8
zV%8wmsO&0tO=w2WG?=wPpX_Qd>wu6n@?i4Q9o1BwtW?nuG3cURE8`(*Kk143Pu{S$
z>XYFOG@9T6&U_*Ef?s}MmPYq^$u!idmW&`X2${Wmv
zUVTm#Fw_7H`@8v1xs5^UETrY~-0#0gq&>!#
zg(Xk`KTUs5`)B@tQvS&;5YsDANegxKedP*M7*mD#re(BcTm+5{N}pCdM^Lne!g#mxEy>$Qh>_jWJ}P
z%K(fm16}%|xd3_NXk$^6+T%O2A^l%t=JNhC1{b92qzv63-MKQ5fG2XsJ(6EI`#s%8
zZc&@|UA5pESf=+Jn%}@gYGUF5N(gR+i{d);D%2g%RL72uMUgr3B)UT%te}k4I%ziey$BU&ixOW_+rc+O89ANiLtiF
z{I&d}F8qw^f3L-jlFo%7jYG=Nw5{$Re~dJhP>fMxzw+S8;fxEGNt|H
z5BoQzUG~F1RcUYc!|uh|$xpkT(%$EXzd2`TTz}XNl;J=Au$w6TML+C4l;L$6?Z`F9
z-vP8!n1wuA;v<2kh?`-#5o}-65NDvK5v)gp5f8<@6CBr#M?4Wq5pRcch%dlr#C1d;
z2#zML5KDDg3@b+T(qXW(40$g{zd!IA&7_5
zv53c0Op8vWlMqj#C5YG4t%ytMA;d@N8N}!4W5iFHHb9tQrU&9|<{;w3yeRD1qj_;a
zdGWlVXdcePICEk?YIw;b_G9>&Q#!aIfd4DTl5+q??IPxy&I_{sck
zh*SBHA>xsIjEyhn??Zfm{}JWWh$noK{f5ZozIe?-T4t
zd{BUcIKffDF~sG9+lcQ9?je34c!;<{@Dy>Spc?UO!5hRif*Qo{1@94m6#R|&v*0V@
z?}G0@SYUBx#|l^t#9A!Q5m_Bp2eBS&hS-92K$oihB$-GM4Zj$Anwf;As)>ZBOc3+Lp*`Sa$%>ia}Y0J7a(55EQ9EXsl1!yZ9=j4eleian3`3X9TXZ?Y(P_6~ao@qP9Y
z;>YZB#IM=6h~KgGK!ij{5etNRhz*1Wh>e6sh%JSdh^0a)Vq2j-Vn?A9VizIiUFadi
zT#I-jl$A&z5+K$Tp{ztw5z>nsMUIGlMZSphM0tn{MTNkK#)xJjo-Mk8_?B1`7_pAn
z46#g%BQmj**a@+-*awKXg&5^2ZY^$&xUCpVU)){X9dVjC197GpB`NML?t{3WxIfkx
zf}!LPDpLbYZ8KG0^kvvnP!K5j
z1d&2?0Ar?NHPAv1b-+YyBen%oC5PrnC;Ach)`qy9MdhM$a8ahxpl(F9Q`N)I>CC_f$cSCNBa7Lz4arG!(@O}dN9czX1l|9
zFOYk|J#>}wCJB4I-$?1+Rt
z(XciKHpIfgSUAxMb|k>=1UQlaXA|ILS2&dl6=_76L&W(^49Y+$hk5gkA3uKc!p;jf
zFNa)?yi#{{#r0J;PTf3y^XAR!TZ-EYZZE&R?e_M28}IGBclDn5{`UKO?|*o-w_8aR<(Y$*Q+hBuD!ne`o`;9ukXIO`KIpe
z-M3HP{{5D|HGSK;W>w9-n)@{sHBV|PYiervHKH1EjarR*jmf(;@2+$~4`-=BZ-amc+?Y-c``45jjJo)hS!?O>SAF4jod=PwKKOXv6`SHca_aC)t6}87}
zFVx!+`EUyZ+A{r2eF`){AVeg5|4Tiv&>
z-@bn{{ATj~`uD2uU%uCU|N5PL7k}6K9$x>nzOMdj{kQt>_4W0%UQo~0i|Z{&HF-lm
zk#D4)5JCw<1VoK!5N-OBA}f@Kt3d)Prdrg5N~j$TVcs(DnRCN?r}GmiL)g$NSFX^H`n`8z3=Hji=7j+tpY27DvF3Ez@0<;(bXd<@IYH_&GdSQFNgm9RE!xR57gg(9I?
zs3Fu6>Iij(dP04nq0m%lj_s(G&_h%$`X=IIODPs3gpQmhU&)Zrs`(u=IR#emg*99YjqoS
zTMe;>hK81gwuXs@sfL+`g@&bum4=Omorbd}(G+UxYMNnlepWO?yoT
zO=nG4&1RZDn%%W(v}(1)T3TBAS_WE1TIO1oT2d`*Et!^$mV=g~maA4vEq|?k+G1@3
zZ6j?fZK<|Q+eX_~+fLhF+dOFdgXJ3V_n2R#=(S3PgN
zw)z$NmHM^%e0{OLzP^dRrM`{6t-gc4qrR)Yo4$v>r@ohdbNy)j7z0ZKD+8&4wSmmQ
z#=ybA$-v#f!@$$f$WUr%V`y*aVCZS+W!S{9siC)FGeaMv8Y5jJBO_xY2O~!#cOws@
zrbgaI&5W8G`4|Nl3yh78O^jv6&c-grp2l9r&5eDGeT`d~d@|vi=$lxYNK9lV4kpef
zt|ne4J|?~Sx;8G{7{_G{UsK
zX^iP`Gea{oGg~tsGe5IdX06Tq&4SF@n?;*@n0uMGFmG+{ZysPCXdYr7ZeecWXAx)-
zWD#u9*0RE~+OpPC-_p|3)3Sx7pQXQLkY%uCh-Ii{m}R(SJIjui@s!v{M_6~T?r0rv-AQIClgS)pUb5!0P+7PvQWhnPk@c}@W)ox+
zX4B3l#wOM#*(TRE%r@FK)~=&nq+OI%dMwdp4(veWcRM_neM&a^V|n{bn{5@$oA;tk?WD?nc^S;eT`1JHC@EPno
zxMfbu!2vx31_k$x3eCvCew*vD$?*#}D=MpNYU{q%6CPh66p1yo^i51H9bCQq8ff6=
zy^6}`)iv)ve60QZOWoIR^@Q^HtXNkc$&|f4n7zdnd3*veQv7kfAUCSf=T?N2Z=NQ%
z#+-~67Vv8fXy7`6FN}aqq?k-5v&jmwmaHdx$VY5bWwZ%xj&p%%8b_087n(vdX>Xc`
zGlBth1TCV)bTXYvXVN)zK3zf;^azgq@6l@dntsJLScB1H3>Y&;!Z{k}?3C=49FQE6>PZcy)>1pvOE+n-G)~%0I!3y{npz92wXAim
z4XjPAEv=oc+ghhs_psSzbIEpv?RMMUwg+sF*q*dKV|&j2xl5)?o=g7{(-QlVz>+B?
zvr0CWY$@4Oa;oHf$=!{ybrio0aX$@^;M}?euJLUlPU+WM;{_lFcQhB_~VHmfS|!
z;#W7}cHtTv1#^1+%kTT%Uo2aHnAlFxa;|!ZKK9Rit2C-6
zp=oB7@|%~6uBvC1s7j1OJuiUDn#%8$mX)TQPh}T;BJjblnw374E|sEZFEPcuC!HSS
zw@=mY@rK9i9(e*DngiQkN~@>}x*_-%i9{Er4c=7gVy
z&t(2l{&9Xe|D0f#U_Z{yfAB9TS4AK|ZW@1ry__rig|iFS3AYHh39)>B{)Af^&BAq@
zNw`+H38@sq9gXhjwyDvKzDOl3`}wGRgxeb4T*z%d!(vQ(g$IR)h2_Fi!ZX4v!oP&K
zg?Afc)x!MD2wKMA}#q
zwzwM4eZA|2Ydu3@94x|bOC_)y4&Vw;EqsOVL`;luMJI$rkXX`*qzfMkj|(4(;)FNF
zt~8kDU@JWW*Jw)Vc3hXaNS|Wc@e$h%b!?GCmkE0L=xP-G_36FZCa1q$J7QLM;7?1SUYDB%L(Lb02ut4LRPNbD<|FDMnh
z5%w463k!q?@jC>?uMQH>!5U_btBOguR@@QSJ7?kw)nu3oVQ>cS;|kRksDWFew(y2D
zA-2SkxR3<+!enAU6GA)C4D4~Z-ew?Oiml)*x`^JUm+4>hI-QK8c^AeUdli4iUKGx>
zV#YCpnc>VxW&;z>Yywl-71sbm!HjkTH`*VX(816YSFk+j0BA`^LTfr2y3iHSj!uIF
zx){3C)%b0CI`pGukdJk`fbNC(ATyh^WTp~-
zW+v&tEF+1`Mv_D_m@<;Z>?1vxJxn&u2S;$Bec?4Uqr-6BFc5<2L|miJf)wb3Yb^sv
zD9pnzO{?iU`icGx`=OjMg3Iubaf8oHTarQ~On+icyqO6kfV3rD83pNy>v!4ElPUz;
z1v>=W1Us=$3&l0Sb+DZwa1c&1h9IKtVG_Lxml!MJzzidv%oyUz6cKl3H1S}HaaV~h
zjR)@Au?@|J!SpcnrMqDTeGS!23wXt}gdDn+R^nJBgvue0?tl}FK3LFHkkKr7%d`e<
z8Vkm>GsM${(3viWDfAl5rgz~cV+WOtH=#@n5ikkFnHfR+m}x|ZNh9V=E)1bZppc$`
z({P>%0zKLZ+S3_un{j{-xJG%0afG{!6Y0)u11o4w3tnH{tTj)nR#eslsIOH1fx`hxDGJDEs&0mnZN@k6ga!_dz-_cWk^j0Ka-
zbYccF1DGMqEM_6ISg=R1R~#e`5c`W;;p$X~I9MDgZX@;(HxY-4J;h$)rs7bMy4YLn
zB5sCjSk1-mBB4l4G)XiS*P#}RR*2?{CgR%BTG2w$Own9XiQuH*l;Ex4u%HT8C|?L(
z3aSN91zjuJCvau+wBU^3tl*sBqTmkBSnmt&aVwmHCxXYg
z#`&CE+ho(&bX;ZZ!S=%S#XL5j?aTIK2e6}XopB6X%&jxBa&{uFG)`k@vvb%!Y%V*O
z&19$Is^fHa20N3T#7<^su>;xuY!N$NP{Ym>ykqAJ-m?pEfnuTH0$YGP~8!`iZESv&Te;3%%i+Oy|b2lfK%$X;Zf*h{Q4dzp2?Ra95@
zD(lAnCHT&+!c~B+tS5T|SA1^@orI1|I~pXqF1jYVAv!Di3)lP#!IGwd9qkGBxB~Bl
z>+fE45ctz#2%ux24X(cX(IRL?M?p8b3cAvj5Jl%eCfx`f=uGHMx4|G>i62Ez!)RQK
zFQTVl1TBZ*^f)Y}6)=t7faUZRtfFsW4Sf#^`W;GXJ?vm8Y^HTk#;~x55yD%5*
z%u>>kSxzFE6(ovTN#dDxB#tQ|$;@Vw$?PTB%zl!?9H8f!d}a-^opxt%>B4L!otZ798&gWsn4Q9F!mBt^xGt;~z7kdm
zUkG0cpNlL+mN<@>C)h3W6nTr>MINH2B7ac}T-j+NauT%``H7l|nu}WED!G=>iw+lM
ziBd)Bq8_3gQBP5}C{2_h$`r+ml0=W7g40BqiBF=h-jc_sA!OAm}szQIB;7@
zcH;LT5lv_Ezy$Vzl*BNrg*HN&&|2sK#q=z!r5{8hkp}6-9D=dnP78=3lZD@!(qN;w
zEs?n*DjrtlM)j;#mB`)M@4q*&_1GFc-yd02P@FiPjB={
z!YD8lhQ%l%Vr3E0$%&E>d5SU=y2SlvQ~CRFF)IBUObQwlm#7GJMt7x;${wb)BcaOL
z_8;Eijovbe0;1&dj8b51F`59gQld2QgC-?mPLgDbG-sJqme>QMDiwmdG%h6wP3ny%
zA_>D3BxTx=hEIBetc*06k`on@l+2{INDb6hq5Q{|fwye1%ABH*q)Q|UfvqepDp4*~
zkQA9&gFPk@B}P)s74f-XPNk9>xbfugt=g5&rI15A&ESYUosH8V53jjrt(wC=nP}-+S}Ou#6FJ%xGt_x$Qc|$13#VO@L|G3rSyHLKzC1sqR9ibJLLP*Qj=H8)
zu+mh4U5c|jQNgJkr)VZ`Ym}QnT_KkBXroY*wfW)W5B@420q4WY+9-&jO6no95Q%Y)JYANC
z8W<3jm}Qokl!|dH0%WNQo~(^oDG%CU?J_2qrI1qS=!|)bKpl*9j_Qn+loN(TE)SNJ
z2Jq}s(^ENnuoUaPyunKr9L!bP#t1vGLh<6H(5I_Ib^mS$2Gp??PMVtNWnd+843oqP%6p5jewlW
zK$NoG_^(75#SbD0mZ>swxpqrVZ#WzJD{W}Ozg&^^yEXfVH59#38F;pCDqT_V>^RL!
zlq!0fDS9Vy`l2F9RTQO3)!u0VUg>65+QsuE27PtyzreLuL$V}}alVanJZb?eHDvJ+OZ-*L^r~os$Tqai#
zWYIPhi7|RRg}^SHd*MIdS(e%Z3z17tlG;NVHWb-aN{8dmEJP+vLK14r$(<7%wiam|
zN|&QHD!O8A$LYIks9|vBBlprFTlfZb70g36&^|Iu$jU6GAv=OTvg$gd(i5
z%J3Kk$4wvS(ypxSPZxBwRpdFVh=s~nk+YaYMHH7P_h*%VH1u^=P$M7oiZ=jN&x{K#QBds4l#PZed^i`>tih!r7`iCiU9Q)}enrKCnu=dlq5>{{
zg}U-DvQ-Fev7i+^19t_k6^
zl7z}26m_Ve$fB
z(^E239W_cB@GBHIR6==RLE|6Gb|BX@#U=91cwEiG8l@PdDpIUgC>M_4hyNgK2{~!0
zBq`+lm$7~g+}k_-RO5<^u`mZn0aWQ1#t?1UU+|2-*2RY2{y
z1h8?Xs%*65vcg9}W1W`E(^GMT)m4+Lq3U)z=&p--^2MzAHslRuGaU0B#ifosV1|{}
zxI`}dYN!NC$6opvy
za=B3B&pyI`(rYLKaFriRS>wl>i>0ADh=UYrLEQKS3s52A+95YA-@+4|x}jDmhZDba
zhe{`|D*oC@8gsHoL1PeYRP36u
z9pc)ZBx4*)#c-ozoB_zRCBzT>RMR4vO54v?yz^;Lc%fVP@xm-oZjmg!iJR%l_z|GjiK4xO%
z>BszQzVrX&jh$0a9JW_wkS!Z5>xDX^$NF-gbQN*sk3{S!($>rFk%4OWV
zsuMTSLCksL-cS#7ZhXLvWq#0GnB!dSR|j>B0P|K>ztNnVIQ>j_)Q@xrVY(a#^2UVA
zAnT9Gawv#_6K83@o|i8~EYun&wjy*B>^OgbRpTKfb1kk$a!*$JS8>M
z2)|MW&|Y*9e(BvqPteP_rzVa`VU{sRnU6ez-xb4nF}ze>AKnn&UOw<`>V)WI>GacCrgKYIiaSz#bwhMJ=qBmr=nm1HsJlRSz3xuk
zBf6J$@9DnM{jA5=)6q-U%hMaCH(qa+-cr2{db{+F>Rr*R!2Ku_^k?gz(!Yv(R$l3U
zGte-wFo-r7WKe7{&ETxTTSE)O-i8MZpBsKOB1Y=C_rwPGodg)QH%c^`WOUkCY;0(3
zhr3PM7VlvxgxydGzOD1in1PwPnX#FTSyQuMvpBO1v;Jly%_f=6Gb=HB
zW^QHfY~IW~)I7#K+kCD0HuDGOFD!_K)WX%m*CNCs+M=sPj>Q~{-4@3zE?T^>sI{b)
znwF-Pc9ve2iIy3b`Id_<4_cnaJt?m(zgP*Zbge9{oN$*(g4IN;IaVvIHe2nnI&O8z
z>Y-J&)dz_oe)S(L86%l4SuRmX4ofac9!jbupK$xBvD888gF8>+q$$#T>2T=;>3r#G
zsY1G6dP@42^r5s``pMeCx`}mX>xtHLtXEiXwmx8e+WMBv9QUF$l?BKmWXZBj*+AK7
z*-Y6=**4ix*#+5c*)!QY*>@YUjiHUTjh9Uuo8>muHh;?7``%wEB`)>9
zA={zAVYS04hrb-v9E}`(9D^OB9J@GXJN9=R={U)8o@0sQcE^K`ubn)cVw{FLjdPme
zw8Uwh(-o)tPA{DGoh8mu&i$NcJ1=)W?R?Gok@G9(&n|oy9T%yKt4k}F4lZ3?a$E+u
zjB=UcvczSx%K?}3E_Yq3Tt2vhtG27TtAlG3*C5wO*HNxhTo<^maV>Q{;Ck9k?B?gz
z)-BF0#jUs7V7D=D$K5Wu-E}u`m$(PHN4j@*&vNhYKGJ=X`#kqm?pxgVy5IHC@Cfio
z^cd(d)nl*6QIGGQB2Rr!Yfn#4f6oq{ojo&g|IA3wsh*2HH+YtL9`n55dDpYj^Su}G
zQui|Qvi5TF^7ab!YVVccmFAV}wcYEWS6!2gCizWT&&_$wwVRtaw{PC0d13Rb%^&zU`Q-Wx
z^^yCW@+H3NzDB;*zOKG4eM5cYd{cb$d<%Ui`7ZEX?Yq@?uWz~UW#7BLmA>ypVZIQZ?Ipn-yy#vHsot=lNgoza0Pp>H)?9HUS<1egSO*
z;sR0v@&kqkOb(bIusT2yus`5zz>`2hpl+abpm$(KV1D4Fz0D6vyi}$_92NO=^?oxLqo=f>FD=;6?_
zp|?V-LTkf#VY*=!VGd!0Q7QQb{u~FTkU`9lsLH61
z(M+^Xv_-T-bdzZR=#J6dqWeS-kDe4gH+n_%rs%!VrU-Eb?%hYX;7!Jou+qM)M-PfJ)KTClx16O
zFLb`$`9&AqF48VRU5dI)>hh+mT345@v0b}$&FMOzYf;w?U3Yao+Vw&=(#@e;c(+Wvd)4S((AJTnH_i5c1bzj@PvirO4-%^Ar!6}g`V^T^|
zwxt|MIhArXF3jLraw-9
zlcASknb9&MGoxR|h>R^6dooUB)b{Z0F|^0H9*25VWa?y^XU1f9&CJdmm^mtQa^|@#
zjVyz#4q5qG!?MO@&CFVowJvK%*2`?iZ13!p?BeWc*~_vwWFO1EkbNurN%ouUZ#lvo
z!yM}z&m8}p4mn+NvU2+66y{9KnVqvNXG6};oZ~rHa~|}x>FLrlr01ZX3wo~ZspwhO
z^KCEfUS_@8^-Ag0tJjKNn|f9Cdf)4NZ&7dk-d4TSd(Y~9y!VIR^?h3ODeN=5&$d1X
z`<(7mpDWHa$d%-}j%|DTUIsaB)+E=r0v%VpHqx+^}W&eao;z6>-(AXv+d{EFQs3vegpf>>9@S!#(ul|J?(GaziEH}{_XmA
z>Yv)bcmKiti~E=MKhXa{|Cjx13#FpGYA@^+}kP~)LC
zLlcJ18hUx?-Jvgs)(+zj(;j9v%x;+HuvWv`51Tpc#;|Y0HHX^{_ZZ%Cc-Zim;k||r
z96oCJl;K;4?;C!1`0GNgLes)Fg&hhL3)2hp3WpYsEu3Aryl`vb!NT)}w+f#WzA3C5
zAs%5m!f}Mph_DecBf5^r9x-S{*@#yoK8<8X>W;J=={2(T$etqyjFgXDKXT{DBO}j`
zyfyOa$eJSaB8Q@|qL`wtMFWb8iY67!Em~2uxu~q@Zc$~?yP|KS%tzUe3LKR@s>i7O
zQNu=!8#Qy((oqLTm5;hG>ei^Iqu!4CI$Ai|VRXmQNux7H_a8la^o-HVMsFFtXY}#W
zS4UTjt|^9Mtzy$++v29h{>2f+$;Ca2^NWWSk1L*8yrg(t@%G|F#jlG$kCBdv9MgGB
z)|mcdipQK7b7{<-G0(=-jHw?h9&0?-W^9wOfny`bb{m^BwqWeYv6IHm9lK)erm?%n
zmXEzQ&THJDaYx3T8+UWO_IR)Ht;P==KWhBs@$<&79KU&d+4$NC+7pZ?$R@Z=@SPAm
zA#y^u2|Xtam{2rf(uBDaR!mqwVaJ4<6FyFaiL!~#6Pr)WpE!2njEPGouA6vz;YRZi%&!*H&`8t)IYB<$;s_RsrsbN!Nr;eXGYwEJ88>jA`dTi>&Y1-4w
zr*)i`G%aIV-n609#!Z_s?ees{(<-OEo9;Zl+4St`lc{zH<8J>1ET8Pro$%?ewoR
zgfsMJSk3UC5iuiSM*57r85?F?pYdrX%v7JLKht|=%*_5XXU*I<^VG~sGizqq%<`TU
zI4fpW*I5H+mCU+2>&~poS?_1N&i0-iF*{*)`s@X>_s>2xyJn8|9OF5XIo@+x%?X*4
zJZHq5iE}Q@c`;XguKnELxlwbo=8m5`YwpguN9KN-2lHCYE0|X_Z{xh}^X|^Ko*y-T
z%=~rppUkgbAX;FsK(fGPL8k?y7OY*cZNb3>9~Q#G4hxeO_E=c7aK*yS3$HA^zldGr
zxX63a=tWZ(EnKvA(Y?hwi(4%2wphM+=i(!a&o92V_|X!pCC*ElF9}*QV9BT@Q*XVs&s)B7
z`IhB-mLFOEYWc?%WQE2GgB8*hX)AJ9%vy19Mfr*gD{ikeUDcFbgt1hp)yXwiRx2wLc7OvJ`Em`fd+GlnC>cOiwuimrz$QsQx{%fMvbY9bY
z&7d{Y)*M>%V$HiX-_{D(wq84C?ZUNd)+*LMD`87?OInq5F3B$$j5~7Ylq|tLqkBq@
zuj8##U+1)qBjTi<*AiuIe^%Ch{o4($8xl6m+;CvS
zhYephnr*b-=(Vx+#>|aVH}2ecWaIgbw>D{RO5BvOY1F1goAzxwx#{_)kDDzv+is5E
zynOSf&1IX9Z~n5yV@v#&fm@buIkV;3mWNxaw!Gi!vbFivHd{MvE!;X`>#VIyw_aDc
zDtr_{ijImTMTR0zu}pDA@pozK(m|yoOP7|O+NQqEW1HW$$=l9vyS80zd&ljawx@3I
zy?x5|<=fY7S8OlaerJ2-4(lCmJG$+dx#QxFCp+Hk__C9~v*XTAJG<@7+}U^M@SQ7m
zZrb^FXWcH@uB2V5yK;6F>{`9+&Tie^>AUCbK34{1YGsCHmSv7*DP_IN29}K~n_M=p
zY-QQzvZs5@_c-hc+!MYhde6i?+xFbv%kI_MYqU3EZ~oqOdyns}*!z8-|GvTd7VX=x
z@78{`{jK(A>>s;-!T#<0%MZ{4;sbsM+8-EpVB>-E1Aia%KiKJD$-y^=q=!5Ybw4!i
z(1t^I4n00pcbGY>cDU8yxWi)(?>Kz%2y-OzNY;_Eqr9Wdj&?XY?C8d$jPgF^1ItI2Pbi;JzOZ~%`KI!n|;St5e~p;!pKBHTu-@Q@2kWoOV7Pb~^9$
zjMK|cZ#{kfjPQ*18RIkdXPTX9e62tn94&*_LO+&c>bXayH{^{@KB2
zi_T6syYlS*v+vJ2oojin{kgbvUCw2k>wT`^-0*V?&aF9DdhWov+vom1&z#pfZ*|`N
ze9QA~&&QolIiGz#|NNBm^Utq7uQ-4H{EPFo7w84u3)UChF0{N5bRqLX?u8{6HeI-K
z;r@kJ7d~H9yQqJ$)5VLIY%T>{D!DAWoPK%AeO&j%;)&yvW>4BZiO1d5lb@`AQu^fllj~0&
zJgIt8^Hk%h*V9f1o!%4d~tD!<|$aKkEDl}nXxRhz2FsxDPIRRgO=R!ykdTD8CGbk+5$2UXQopPvh!
zYdtr6Zu8vrx%czd&%>TaJx_X``h48;sn6#SeR=ie-Iq^Z*1Y^)tx;`S-KsjI
zx)(nrIOp&!S6Jn->utwwFA
zYVW!MRjzp=QvQtb?yOd1@4o}k{Dpp((!7}CJ;9pM2q`3<6Q
zPfQb7PmY5O_gTw+1Ak%&^XY{e5+
zTfqh2TgjPU0ne{`aDe{50PfF28%!fUh|m2F)E3Kn4VKYf)D9h`6zuU{wVQaS%kSm>
z?`=DAXW&jwhdF&EG5?Ps7xi>Hg3)jK*#!3yHi0nG3w5y9{|0*FEfpNhMLi0~oTY--
zuRt1Y33!U?pAb&%$T4cCr0?=;sDEk34S2r*{~w_ZmG;Sqe=i#uN~{;|+O?+5FrU6u
z8%AJ#8$xvd9bmctM+n?~$$?U*3GQ%%H)uYElnw}KO3axYsE{n>-hdO6U!W^oLE9Ci
zUrAcyX=l*Du@-M;iCq0~2njL<+5D7fTQyD+oqUC75LU6I0#&P%u7=bNos^SuJgIY@7*Ush2Y6QC*AVTL
zHh;W)(7&;LqBgi|`y9cuGVl>T5-EpOK=tuF8E0-7;WUhM#8iqSotAjcY$Be`8uo8X
z49~kx#S;haAXkQ51*@PMs!3m1i;xZ3WFLncpcme8)C}gJ?H=wo%EDXtvVMapWD2@k
z{LuR!B0jg=uj{u&PNWb#y%8Ff&W*8*^c^KhQF;qVXm
z#F>aaQkeY_qKPJG<4NP6a7tySz3{!C9L95nxx|RW{}m44X~RbNNhNBeC(Frl7(|v+
z3+nkBM58U31C;Qu(BU^*6Fm9%E1V{!)CKE=6G|hOT*bS?{$B!~D&$}io^}uTmoQaD
zk2-qV$n2)IoCD^TMG+XCwM3-~se)A5aF
zj)pW+{ucg6T!(RgMW2zrFzu9rgywRrz(8PP*N#=UF*X$yq_vYoc4
znxp`C)Z{`sf($OJ#?8txViMxPc%m_xvyuKVo*YHJas?e6-{Bw0Orws7SCJ6BMIZ^zkR+N(B5`bifMW@JYERmroX!F_S4|^o
zG?J<#L{TG>h;0RqDc}YfgEtL?kwR=UZ1FVlY|;+<GVn}p3Av0XdKTer1PLS(
z<7-YWX&=0M*bn3T8}BXPV$?w}A{$8w#<`Ff&{L>_c8
zPwT)G&pDfd8P0f8XehaeXVfF{KA>rMBi=N~SM~W^2r?S+COk21s_b#Q;%Utg(t`w(
z#qd(u6ZQN_tLmF+4=5!g;3dxWx8f{b4@W@r@LaGE+ckY0w_SxL#Eoo#FYp)yV1ehB
zU&CBz4MVAb;2mLj2jW85N&IofWQwC3M6W;U9DGpR@6X
zwTJ(EY5Xas>sSL?p@t4qrgk08Ef9{XfJc>m@FRFcj?w^}9ekv&)D_zYrJXb5jTaIn
z%??n|4CwfSXU?Rw;rzv&I#Xw5jK7+X(jgph?s&qzADKaB;0WKL(TuJ`Ilw(^=TXyB
zNoUfX^G7cB;1dsVZa}Va{!G27IcW!Kphg7H9Aj#$)QS|cge*bVZOC^B
zZHf0yayRjEk3QhI8e>?C5<3HrjBmZ;(hhJQLelcT6a*%8z^T>kV
zUH^aE|MwE0Qql!apti-`m#BZr^lsv4trxBbtwGyNY6j1+O)kb+Q!%z7!>~nOfo=Z)
z)R!&Tc5J~mWfy7!u7{DqxT2v;+u?Xfsd+dqe}Qu;U1&n0Nir-Tr*LGDhN=bpRKTO1
zWDU+jxElevTYo45I^l@b7Ad>Ia_pnjC3DLGB6TykJ}tSk?rJnu5G3Ol}Huu;2Cud2^WF99A~xt`QvX12cV~$QMTY
z!bD$~>I(~eVN44c+k(4WaCQq=hz7h{uqDiF35#1okso)@puF*h!P%`~V(W&x1*f%!
zxvgPiYnbE@)BRzAKj8I(a|2+R@_NC!fv`3Z6oG)349;%@?)!XTI#46}k^
zw(`Qki@`7{1QvwAyiiyj29w&tytc5oEv&-&jaYfr;HY-6pdB1+2U8=sYX?_HfFc5p
zM8JU#aIyn;=imXnc`ypfqTpc^D5AM52(QM%p*T1l2l9A08V_gV;a)tHC&0yI*xni5
zbcTwqa5n`ur^16&s7QzEEO^|Dhzp46Fk&%++(Mx%3*^AF6Q6Eey7A<8mwTp<^eYZm
z7(PAzRR7uWDvjs*uWr5adTsgk&bzyK_1`nR@{fJ5_FnhH|6=bwz^f{{z42+gos*o<
zI~aNs$T{hNKpMSCFDir(Y9N@%4+Fs>&}>ltM&FtNyUj=#_o^dyYx
z3HApwn8kvu9zP26ATX4t4C2L!iZF&(3+97bi!7LViGxw5rlt+kc9qQLFk>f;*j2(2
z`kGcE4Ayz(>Z;l`>{`k&U3HkGYv{Cs0lLaCJy$bOE07py6lB`WT%BMOn3?MpS0S!C
zjLX%8c{yoZu0dRST&H*kCgtjAgK`bxo5#0~A0Da`s;5lJHG(0zW})_>P6@SPG_Eep
z#+{Sk8IEgQp@uRN*8=9@I>I1aQz+cFtdv-(X{BbBT31S{lw7HM<+#cXVDPPZ<(8FO
zRcQ$|T4~fRqe@$tbdv_%T2yW68gr|fRyDn9$EuyHHLupHTI+HK-P%@bU%htqrqx?i
z4=Yn{<7(800k_sQl53>YNQ3#d_BHZqbgMC;W?ap4YbMo9i<)igR5Q0`Ud?Vb`_#Os
zRx%8>rNdZTR;>$RoUN@k&z1xA*}U4FYmcqds7`vFOc-eE1oLd!b#m%-uX91&w&)
zWK(wCoO-S5Wxz07wld1r1M09X&q+Tg^PINI09)6@)`=YwJ0@o1&{&s5*92S7#PbvT
zCk{v)k~k`HV*L*FJJrvw-=ls{7+~vHzduxB2i6}{e@y*x4SFggY<(K^Yj9!1?1p*D
z_}cj}zc#qxutvS4>9xk~8V_hZu<@YAgPU|~GO)?uCc~TNG#%P>c+(M0Cp61y)}z@V
zm|MH3S$?x=&3iQO(|l0#!Oe%j?AnOt`OOPkv~4k=WxJNcV03L%%Ly$fwJd=uYR_}e
zSH{=Iv>MfFOslc2#+vweHW3P^Q(MnzGo;N0ZAP>i)uyn`
z_%;*UOiLQCjImvuRHDqWO;QHgE`b@g!pMY3Nu(6U*ybh=OP-KilsqkYX3CJ15h>$R
zrlw4XVYXSRV^YV$G~3M7S*f$3Dmo3u*+!;MPM-x8(YYC=8PhW^%^a0Ex9z3v=Cq%B
z-t_Zkb(+{|PS=aON)xddx&A9pdf){723S7%4+6gqR%`x6{`@=Qc)$*m1%BYuVQP$l}jl{C`NRq(rr(HQ9g
zh^qqYIt%`zFbI}0R)RVkL;`d}+1Ie>5d9ucLS2TD1`3A5TFo@PlQ667AU9FBvq1pA
z8;*M`Zrc`X3MYhOOM_dUz-0v;iY__Jv1k4Xnw58v4Z8#e$vj{*b%h6`oe
z;WyMU4ZZ{$Ab%&*B?5Y5e|IVE47&{VNNw7dG^QUBp&?HC>`8p%>=4g#$pTRyX>zf*
z>Vdu(Qg%YdodGO15cgl?MBi0Kn&x~n>g0!A*8){Bx_ag97=f
zc4FjKf#j7P}25q!y#CnlIa_vkN*{%kFxpFz{=D-4VLfOi~H~Q`;oxu
z-(h!>0BF&G^m#?tU6Nsd$RMrG3Ij3!(o4Go`TET?4?{Mv%FqibP1M$UuqeGu?H`{U34eA@gcI%0m?>4NMt@dxG`
z_-6xg&S~%DT;v-&XMMO1i{QQuzb&6+<)8`&ysm(g>5KXRWkdmkm!47
zmK~GnU>h#|Y#?!8;+X6!Syx!i3y3+Gmt=qT121z7+VEP~ZR-MydG~{!=m4DjPr_Xo
zzyCV_N&HQ$F&bdusWb{p@Vtslm*ZW-)mniCTT*Z?+EK%J>dT*fx(&~BlYo(RC1#1(3!qPzbreX;1v2Wom7{=)}UMx
z91}EAHJoT6UZsg>j#6%6?R7?nB&Xxa$LRDsV&6d!=k;+0XD>Xul$!3*315
zE((*tO)UVF0{Q|f0peUJdjkHsfQkT_22ge!ehYw17Xq}Wl`)TpNKH3fc8vZ8PXBMn
ztE_CjA83QJ9W7OhVj(5AR+LB*B*
z48H)9VEJB_=@|ItY4|3>WxvxbQUjVe4e+kIK$z%b5LTJ#5`5!KHKOHYemtixSEn_o$q
zvRlX`1#({Vp8u2nb)@m>-=QaoDFOSIvEDQ9OybT8OWb$#C&V?JrbH@PLS(RPgrFfO@`5#ki`Jl6QEH>12)4lW-@5@
z|0MiMGR~TR60Aq+Z}SxJTQsl|l+6!s!2+?Qd1c%@%zIPd_e8!DW|W91w)
zfV(f#v{CP$#BcoY3M?4wFs}~Y1VDu!MgHJ%h)ra+*nr>2bZy}Oa~S`3e}j1?9gu+Z
zZRyCe?^u%Wd)J{35^93)0-*1cR8|@9C0vbo06l_s)X%5;^h;6+(1KZIzo>UBk$zX%
zVTA*GP*;fyF0}MLyK(n|wylPCk?#k9uCd8%4TIs=1XOmRY!m!sKn=hI7s~#C9|p*D
zRRKAW`jyZISPN9R>?Clo1ajYJLsLOIYQ18m%#G3^j#?S
zJzeJp%2ep`t4mF@aB0lE=Wu?}a@w}C5Lz>hle-PB1>(Bo>XeIpud<2|6
zkCqF|IaIHu<^8gs%ZH&$b;fj9gZ*=#obSAOtSf1z=CN{fmp6}sm^O-t@sU4Os4XWfIEvZkKGIz))45eKxRQ-CJUe)
zJ_7SwAMz;HK=`nvZPRgO-;&4h{3^!Z99`HRR
zQOai^4_Xw3JiLF<1rC$$d@J5%0HiD+3-QkZc0#UmF7mnocK`tR<=~wZg0Hb1{MuBq
zNaO+r;x~~hq!#q8(T;hKx^8BEJFPnf_G6H*18$^(2H=RLqFaE
zbX)?d#QQ`3fp4=n@cs|CyzCRCc^>c*X~uE4IPZq<;Vwh54d3Yp*nt})yfPMn9+I$}
z)aOs5%C*1)fXdP|uR@?Q*Y$LP>ETOl?9;^YI1HYJ@&jYB(5RxaVKyI)f@BzLNDSMs^
z&}0WdyFW{6@Y%R80(~X>Ow|u{R6OtqZk6!yoTI$YHkuzA!Ws^pXwdYbDF1N|@_LEP
zKv`z+;lvTE&_B1KFTl&?4Z%;9XlE};C9kWjY#m!sb_l$dX{bXtJfFh)XR(>U{kiydRZ(eFA7zx~T!DJ5M%q`9
zCjg2-(^Y#kK-^UDK<|OS7LZNSu-BNT+81psd8(@YB>!?C-sv`!yu@f5%C_Y!~ZaM{JU2!;ymVFYzAjsOmUNrJXWfjOQ(XUi_}u{)
z07e4_19||40lai0@qE^F(1(*coWr!=9DXA}5+DW83eXtP8t}K$k-N(V@snhjhGyDt
z?(>uIEc5+a`Td`s4)Y9=fHo#X-i&oAU^GDf$#?jptJgkKSUZ*o3)8uaugt@!d|zt)#yhyltspfcc4skk=gKC3RiefnJOtJOQu*aWb!dq@IcI@^caQ8elhM
zL-PGjG6-}=J23{&a-M?xUG?`HWVGyWmV~kG!hGMe7k9d!hcps;;QIyeBm4%)2}YN_
zFXuklPM`%ANZCHh+XLS#MIA;!&KnVzLgqgN`-LGmvoHiVx(vasTtjeE*ATJ+0W!a-fI9$N0FP;3rb9VYIc0gg
zHublsth<-rnf%ksAj4k!%Kq`%_w@S8@CN|d|GG_8dp0;r8$!1_+I})$`TLmw*Sk_b4#VfbhPV%=>aaVqSlZF@JKc_)H4|nrWZIh315O4+JBwh^!9&f>U
ztxE9M0LlRG0agK4>#%&5@74kK0%W{|Hvn=x$@EX-i#g;Ok`3B5OU|3L7;{xIX(Q(<
zyvOfoOJF&)u`%aKy#eUdNSOfkEerIV(?HHYQa&f=4Mp2X{T<2Q0goGNLI&u$DoWo#
z?$u=)%%?OU=YIHcWR98>cJ4WVw=S4fQpD;MHeIo0f}^7
zPCvN&dt?oR+pAB{L^`u~)}Tb%wRg{4(6+t%_evyR_3P6M@dIS~{R8^sCXuHH^y`7=
zLEQ!s8s#;E#RS*Mpu~4Gwqy{t$IT9B7sJL?7g$3ul5hq
zSN(_SEC0jvmHuJ+ivKWu!aqzO_Yc!MXHHLh5+l1yzeI8{yMNb2@>ovSfr;euUOjRX
zNx%O6vJ=rqXX~LVXU_4g=|lf8ef&R6AN+^u17}I!mQacNa?L&qZdN$UFJ*enV;GU;
zasSMi-!MPFXexc8AW~XDA1=r*Eu`xT3MNgVD@GTMA4`{wo?JYME*?{oUqI(0BA?DK
znmlb1omx~}P(&vycbsxZDfa^94pMGk<#tzYu5vplH$%A*<({kDCdy4zZY^YALaP+Z
zuY`(AMo*^Z6!}bG!E`b?Svr357;?OHQo$5*q_i|COb(S!8--J*rPHRAlJ}<~C3#EL
zJw>^g)6ou1)J)b6kCFnS*at|rDO~wS)%wk_;)PWxRk_WTE9Z5Jxk9?NmD^akptulI
zQ@J&i>&`aS)pH}|HdJmsg#2Ot=(CRfL9A
zW!;|{>MhnP^sEESXrHz}ZE0HHv|4E-^&MEuUXePr#je_+n%iqGt+Btxuo|^$467ch
z_G`8FRS#6%RdsXKRaHk;jo@gEsB)yr#wxR`6jiyX@{!8BDsQN~vhu>pQ!0!s)fLqe9hV_j_uyb+^PI6xh8xq&iWjNz`1J0W-r#ImS
z^_%G}^j6rNxt*@W3C%m{U9duM53GRP3u{$tU<2hox(=tK*W-lpgRt85Fnxq>fK7G-_OuZuz~O#PDj2#x8TNum*~rME8T`u{X6JR`U>5}I>2hgt2jlv
z2Pcj9(br*z=1uw*EYG|{-=+I;Kf?R;1NtHTh#sIH(@*H9^dS9=evVrcpjk)1qF>W*
z=(qGR{f>T5f1pR`kMt+{Gd)U=(c?IJ^(+02{;m#S{XtLBG91yPj4{pxGnk3PST=K5
zfCX_*I-Z4KA*2G%TvuY1Srt~5Rl}_eHDEES7OTzb;DmBLb`CDxs}Fla4Ot`Bm^Hz<
z?Pjbwtg^I(4Ukr>HERRgQem8OO=c-9m8IcScLvT2wq@;Dd;Thajql-m`9A(Se}lh?
z+rHoC@9=l|e*PYRpMStV!|F5)PbI5miMsQC-v!HPzv>I-;(qC(aRxqP}P#8saYd#-fR6Dw>JrqJ?NF&K0e2
zK&_2P5@8V$$s$FhiZqcfGDN0mi~A|si}OSW(NS~~St48Hh+L5;I^))guA-ahE_#Tb
zqL=6``iQ=wzZf6}86O!3jE{{^j8Bb%IRo#uvsR<4fZ!<7?v^<6Gmf@tyI#@q=;1
z_|f>u_}MsW95ap^zZkz7zZt(9CybNEAI2%8%!K-s$xLnv(=bib!m&BW446SP4#($0
zW`bG4tcYWDmCY(ee?~@MrLEPiP_X_W;Qol
zm@Un7%~ob>vyGW#hRukXY^Ip0W}2Cf+ch%Hwq`rCy?LJ5!R%;uGPBHVGY5BWSA@Zx>?<=9#&7Q7j6>iWA(MpxB6NAtpV0RYmhbA8e$E_{UXDy
z3#<#Ri>wjWNGsp^$@tIP(Q)n+!gg>BfTZP~W%
z;69R|9fu>2Av?jY;5+yj#@!^A)5vM+Gz$z448fc`9dn+X?Q4-n@H4?XXb2ubXVRE-
z#lE{K$;W?3@ZiRhPGlmP2EN-2><{~ptH@&Tqn5zNz#v$^xD%;eQ;gH9SSelV|Zi
z0lTnm_{|Pj|C);X)OX`sC-Fa%RtK+X7VJail2x#l)sL*j&F~}0!!)0cCr{I2Sl@XO
zcf3p`Tj_LYfNf*BI1{m*T?h&90oZUDM-H*Y>>Bbl?u}nfzQx_v_fgL7XAfZTKExiP
z7H*S&3{7&3a~j|VH*iaNF3+X4_&7eD*2Ycpuug@$h|RyYk(9H|;LY7yW1t
zF;EPoy~G8gl=c?W#C$qNtP=Oq60t^Xrc=cW;sv@yyeM9#*NSao8(k(|5xeR2Vvl%(
zE*I~L{q$DxrTB*4E)I(y=w0GRah%>Oeigsb`^5=yl0G2HL>Ya^z!XX!#&OjI`iN1{
zs6ih$>KJwDCL_^Eq|X@*jTZEI1J_~D?M7=OiS97+jeNSxm}jh`yN&h6L-d&OxUq@;
zX1rj$#hCG~@gA#Td|-UYYMT$553#zqO?xvt$J}P_WQn**dk<@5zHYwGnwjsI@37|P
ze)9v?0(WU2Vy$rx_hFW7{%HQlQY@G(VW~JYo50fKp;?xWo2Bcq^Kg%JW7ZKjM>l2J
zxGTC9%fao~ZCD=ehmNq$xQlxf>w=rOC$p}&hkGjPY0a=^u)fwDYYsafcjU}x{csca
z5;oAf*}9nx!!6fOvf;SZ`UQ3Y?ycU+M&Xv~-E1`OrGAZ##ZA<2uyMG1`)xMf+HdV=
z6Kq_K!X`SxF<6n4=p?eqPGhGDE5?1k-Ppx}{(=6i1iK-*cau=dUBkiiF-1SZ*fDWF
z+`WjU>``C3CcynVpf{LIX+A`l5obP#wf{?`6p+O+$OJ)c((2+B_?j{R9X1yBP$tpI
zcCwvfr`l3rjS9cYKTjb*r_ntf@XXLqnW+MVnyJKN5&bL~94Gj28NXZN=U*aPiB
z_F#L6J=7j%Z^j)*FW~m)m+h_gZu<>&JM@S4NA>~xWBU{PQ~P`S2m6TqqfwHDZal
zRxB0QiDlw?af7%~EEhM472;-bi?~(XCT_Po7H@=%1fv4xv`RRNU&W|uR5Pj@HH?}@Eu*%a#!zFJ
zG2FPoxX`!=w||Yqd^*Y~Fh(1N#u#I)G0qroOu(IBMaCp!vQcbIF)lVrj8bE&G0m86
z%rIsevy9oeF>H=;sWBI`@O
z9x@&_9x*l;j~b6*hJONglWjDfGM+Y`F`hLx8JmsgjOQ`uZ^4aaFBvZzTa9hTc4LRJ
z(|E<$W$ZRyHC{9J7<-L<#_Pr##+$}l#@liQGTsrtqtD(o_8adR@1t!#FgD0_!mekZ
zW4~&@X7920+WYKZ?ceO*?GyG%`w#n+UFN|4g2No{7*4}L!$6}z<3N)@(?GL83(UC#
zaFf{}%$-$OM;?#uUIO1u_NoxB`GNBxD~`^|ybitQ-yGY2HL}k>uH~qf-O)P~<5!N}RKv8n4k&3Tp1ZVSLuaILQL_lB1-;Pl6VI3>ME!
zSo^YRB4xAzok(kg;x2*hF;Lueyrj741iQLjgHBYVcaj>tlhx=gQKNUR8ol$>=$)@d
z?`3NAUam&(6>9V@P^0%MHF~dBqj#Yiy^GZ7T^t>~6kIGxgE7!f?Fq5F*nJW9#r4EIYNI0);Z$y}4f8u?KL5d>G
z4d$Z~5Gy4Tud-ZT8zqpOsYWOjN8IOtO8SdQcxL2Pq>*oS{pk&5xrp;h+ySQp-MpIU
zyei>sYn@kXRqEmPXoO{Mb$q$G?+We7DlN5(eYu)t4qEb(W@?mbSdmC*i>RLXBO_vMB*
zrPHytqD`?+^(1d@Z>?9UcLP_wTGT^ntEllK*yq^6e1Q~#EJW<>G6(2Oz7F3_%^)j^
z!^odPFUIIErBmfznD5{_`72!FavXTWBe1(aOumE7xQp0oc7V6#?V$DGiIq!7Jxc;`h8{vDLJKRdD53gQty?+tf(857<@#tpuz^OUXI15#U$VY6Ne%
zdOCzScU;S~%y};mf{I8x>~qubrUF1pOBlFQ>Hov~Y`63&(bCION=b
zVs5tbSqHnCT@xc%)>5YPRvekG5?W^og#Am=@(y;;H;_2s{&EtJ7QBUou#>)nRKz}d
zHK{6h(4@9pr%7G8k0$l7lYWFGV$I%2>dSpJX)1Tpq&ZgZ7f4IFpC;#GNBt&g9cY7{
zbon-`0e#PXd<%aO_bR{44)Lw#CR?t74%^G#V+YtL>>&GseQiEvH&uNVAV9j
zFY(16@Wl^{#hXw0;jw1Jad|ZUYf8l
z;qrtz3DXm%Buq#cop2HEcFB{YEXxhe^v1UrF+PKJ($j)cAm
zeI7ax+8=r&^lE5(XiMnX&=aADL+e7TLMuZnLd!ynLsy38hGvFJLPeo5p^>3sp#h=Z
zp{}897_&C2#NSp@xR9Z6n{AWQ2ZzH@5jFtzbAfY{7dnh<2S}{
zh+iMSI{wc1TjFnsUlM;+{QUUY@l)d`$B&C289yw3Kz#4`uJPIN?c>wplj2*%H;S(p
zUn9O!d|bR4PvU-$I~wW?V^JQQVlgk#WP~2E_G_>l&9G*FG*SE-9`>T%)*pFxgirE-ucDBf;N;M}yx7
zzX~16laAR;oaD8xf@Xp{Z!5e~0f>#CS2WJPT1}6u{1xE!h2o4JN
z4R#Oa20H{Zf|204!6v~(+}m9x7z)}!7C0F=9yk*CCU7wDVc?y>zQC@)*1+?Drvr}#
z9t^Av+#R?ruspCdurP3WU`}9qU`k*@V07T3z>q*c(8Rfc4uOn7BycWv)QK=USS1hw
zpN@ftcO1OAZ@}w2;OqxC>s8>&7Ux+|*AF}Ez!h7GF}@5Ov@4yt&U9yrGr<|{T;vRK
z`Z+zF&Q2$%t&`%kcA9~gSjVXb{#yXbo2Rg^|H(cKUgIa=J-%h{iF*s&$d|yy+h}jF
z*W0V@JM9(rGJ7%ZFQ04Av`g$FdyG92e7*s8Z@Vjaf$hQNOtM?pjj$i7VON4&!L$iv
z5J#==L5m#(o%W8k&)Q{ewVt=0wjQ${wANa8Ten%uaXb1#>vHgcr-Lq=02=Kg$Ts>x
z?$H@Ck+z`p8iC6!%%kS#=3C}g^9e{&mP7Kg5K@^rkl0LtG-osvBCkRU0-B1$wkziBe*3=
zN=Mc!>BwVBIH$WA34c|}P_b}8w|K_wmeMoCA$Q__(ilyt;W(h*xpM}kT^
z5(l2|b2J3L?`t#xGtFLF0Wh69S)q4qCuiH)7CU1o#w
z#27|CcCq~m;r4Dw5q2Q7&)yDqkG&0UXY8FB`1S4J=GtxH=Gd8Vv+WGHS#~t+a5b;2I<96xNU7n1R>2B3^&6De-F})fpF980dQ08{%})lP{inu
z^ND3&ZZE+MGT9z&_r-qOvM;l*vG2Dh*#&kVI}hRcm{rzcJ{g6XBp2a%_9FW}d!n6h
z_p);ko@+0(*V+>>+w`=v5x&&E+FoOiw@27L>@0-m*jHhG8VCK1?sg}HFR>Tc_u6Ca
z3+--pM}%i%&RT`p>H^GD9T1*nUt!;47uv(YM}P#!`qoCjSl`&7_^@~U1MWfV1l&)o
z-{F32p^vb`L~CQW`7_)M3$2FzXIHo>Ru0@`3vFsXBv60zL4o=k8$@5Y`$ZqP@8YaF
zGu{-v;JzVx!hK!zfV)q0hr3sFgS$r{H{&(Y1@5b&Gu+)G5AH6U4P?eEIIYKwogy3V
z4v__SyXXXW8?0t9V=L?dGUH`|x)?7B^s(`xKzWQU0)1?}AW&LklRzIE&kFRh@r*zp
z8&3=LvGJ5Z9~&D5`q+39=Zl!}gb2fZTqI!^v)kAJcbBmaF-t@nxYvl*a2JbKa2LTY
z5Hl8vmT<2YE#O`yn!{Znn!&wNG=+PGXaY{kWaDzt7@^BVBe?T%HjWwdL<6{UVb_uI
zQO0yU4-<)ae#JN+?oLCtUmaLFV@54e4{l9S7j6wv2X1vy8*VjG3vN|W6K)kz18!xU
z%4J3+Q4MZIQ59|loDXD1f~X8Pg!8M+h!+*%#)%4$;+=y1XvTMls#H
zWdz)(1c$p(Ft|^`<~f7Z2G}MZ=VfpogUtgb9>r-*CN|)l4ik@X;GcMy1OLQBIOWR3
zgB(~W9^k-2v7V#6;(mS%?mB)H?tL71Dc16z;I836!o8OtfxC+T0CzslU@$R{e+PFi
zKMZ#c$1Ec*;orcW&A)~_i+=@oCYNn6gC9bjwu$Nd3xuZe&*7Hx&)}BugK#hApTeEO
zKY?4!KZZLQCxDrl#6N;t#6N^Pk$(Vp0)HRwc>W&TaeP1AvHV@QWB5C83;Ek{NAtJf
z7VtOWj^b~?&F8Pf9m)5>9f7l?Ok9MMrc7MOUnAVyATHpqq6a@@64O6m64T$qsVFc(nZs&OT(=U^_t*(Xlx
z7?~)mY&GUnV5>2Y9zly#RI@-n1
zWY7)S3HM#P1MZu2JKQ(uHn^|Tt#J3@yeSiV=}U0;K+m6vS79Z9LA&GyNg2@R@w|&Z
z2lo}a8SXZ^3GU1E8MrUer{TUxpMv`WeHOKu0&SIz2yMb$4Vbs+6L6oQkHdYMJ_h$G
z`Y7CubOYQc=_7ETpbx`+9FjH6Tl7J=kJ1O=ZlLSoK0@z@`!HPx_aU50!@Nb;!hL|Q
zfx8~(z%Xyod*QC5tKi;8?}59P-VJvRy$kNW^iH^|=pE{LrFy;{m@q>u!1H{18{By~
zuZEe7-U9bhdNbTPbOqc?=uL2E;}j|8GkPOj+
zYvE3zOW+pMYv4}C`BThfbP?Plx)AO}dNte$^eVXHsVv1fdL`Vk^a{9R=;d$=>1A+7
z)A?`<=sdWia0d%!GI}Z8kvRW{nT%cn_aZtQ?uB%gJCo6wiU*)Ld1i0k2-*afiOZGN
zz+X!i|14Ept>pe&w51zn71|hHi~jq17+%|M)vbFbEsDR^
zp*ZxH`V*&XPn=zMqW0g`jrgxcC2^7YSkP6EDDC@*?avM`BMp3j5a4N*`t~IAmwm*7NDeDBTzfytam}K5bNg
z&(q%f7@B*o-rixQvFGaRx!QVvXiYt-r)NfW^qL0Z|D>VU0@91Yp2m&R*nJvjG~_9b
z#!AlHf@I(%SUX7ht3b-13#nZf{MRKT@eiy1I0JePv~nlloQAwVuMzl83-HTp@E;*J
z;~y91KrWR+?uYd2Jn|$?f_KF!$!Bn%-6pabJp1kV?@e~%zYlp0ca!zSy<#W8q5cC}
z1eZdKAOwz81zL?PrS)ljaue-DaS0CYe(OSRrrl_F+y&I14kRn-NIH_-g*z=LlDi>q
zEWw%1jx2}V%PwFS;4Eh$tZUrQ#9aiVe`
zdz@`1Z?fmvtK=iLhwUMU**^9W`Hp?e4v`b=D|VD}4i$b{0oTOD(~8hcss;VuIy{p$
z=Iwb7&Ea``1nt4|`B*xJ&*0b7N&H5BD_zKM=PT)Td@Wx`ujkM6t#mo0p}U~TD>Z`e
zQX0W`D~;f%l}7MZr4hVcX#^j@p7CY+vC;@Ws5F8{rx5j;R?1W!;J!IP9maIw+|z8G@%msyFq9eTl~N-uc2(g>an
zjo|m$B}yZBuF?p;LTLnFX&yI^vjs{o_$s9re6`XGUa0hfmnyyBWlAsjMx__LTdNwnJ*9v7Jhr_!aPoCbL~qzlFU8{gzGaZTmUV
z?FXlAH+v8It#7gS?GNow*+mHfTZO8x;lulejp
zr@$#-KRJa?A^X`G>x^Ybp#i&)9Ru%vG5ZbruS?kPQUjKqkPW~ZbUEGvT+
z>>Zp+O<2yr^Iy#c^kDDfmXzReTT1YFKx)JCAhcnhyV)O)d>B&F}`00)h};ye`}mL
z!>=2VkpA_^=M;Q|8H09}IgSmC
z3ycp;3`~yZT|JgJD`5BIRMI8lPH3N=z?m5NjTTNz=Um8sBKm9C(#yZHm6+wv@E4ed
z$VRvWoKa2%HK+;If1B)}4(?G7(l{EAd3_XQ6BTGhT8TVFE7K~pDy@c_cnfF^S`*e8
z9;UT%gKQmGmuO7u;hwid%>NB&L)r*B34hSWun#brHla;vGu$iL0;lbp(sOAm+)&wu
zCebkN4o{{jxK}lerqc|XNxsHfR*1V9+tK#)JhBrvzjwq+l7*W>b8t#z7uJ)`WH;?1
zZvmy(iho_yRq
zUqD*Y(a>`nL&wr_&~(FEM3pW-Ialhz;MO~6!r%tdQnCkUPkyJ<$X-ZTX82D6!ZONS
zc@_{Bd@l2!1|)6%>O3Gh2n#?fyfcBYW_SCUPX&@O*jY!g$KL0j4aEJd55`Uh;^e_&
z?)gCSCQb-GrOpRFd*%~@xb1d3dBi;>NH)OM(k^*U5Sl!%!4A&Cj{
zrr4gW7jBV&N=D0c;>{0v*hTu%T=i8xD%)Lg+({U?W*R8->w08q~`eHkOS8
z{W5_~WJPQeo6L&Y6m~HyVWn&;o5rTI8Eht-#b&ch*c^5#o6F|0`Rp=wIlF>g$riAy
z*wt(yTcmW4mOyg1lwHS`vFq6l>_)bn-NaU~o7pYwR(2b^ovmbdushjZ>~3}sTgC2$
zW)^5A$obYm%D0|90BY$W&`OW64N}qvdg%%FB-_ZIVo$SY*t2XC+YH&?^Xvt-g}umL
zVlT6;Y#ZCocCel76}F4*X0JjjxCb)9ee8Ai278me#olJ`uy@&hXnDNPK42fRk02}j
zn0>-Ng~rEc>~m;+9D>~NEA}<}hJDKpv+vmV><4y){m6b|KeMCIlRD0RVZXB9*zfEF
zJBiEuPO&nM<%2U&tmC<)*bLBX7Pq-WCh`Ce@;Dw34XgxG#4GTMyb`ZWCh#h}DzC
z^BTM+napcJGFb;UJL;0Vc|BOz%j1c>K5xJq@rVkkS;ulhk1ljp3GBtDo^9-JcDOS87Fj7x{@iN6wl)wct=vgJMk=@&2u36%;TL&
zDeuC&l8bpa-kta0J$WzQoA=>;`T4vb@6QMDfqW1j%!lxyd>H8lYl7YR1^hzt8^4H;
zfYdafkKzS<@^eMCF#W%@T>UMd?8=N7n9!n8oq>I%a`)&_%ePy
z^!56HzFp35;w$*g{1$#IWVN7lA*;QU-^K6d_u#(ZzI+wGm#^k)_*&RsypOMg40k<$
zfIr9|;t%sj_y+zce~irJkCT367Jq_2$v2Wq_*498{tSPXZ{nND9R3_=<`?)D*g$+y
z>IdAmwW;F#>v>Z
zUf72`0@=vmv!CsS^^Cdh`Cc+#p714?`Oo;`u9|;&%9jkqC6nr$FBx|FNnhC8YYNHO
z1>`WKWY3=I#4ouJ(zq}G?Nh(dLR2Sz2Z}*H4%q+C&ohxNAM}RaFyDlp*xTS(ybFHCd*=JlBKpw$$UIc&?Ni9JY;@per0}beq(+MUdDIk_vR1g5%4p9GJl4y*)i}meldSFe=~nK
zPnajoKg?5R88nfo#Vl?K%dkw#vTVz-0#?w9!zIEYb&YUETqIl>+>feOHLJQ+16K;y
zvT9p(Bqzi=$4a#7TMfVuX=F9Fnt&tHjNC!)w3=Hjtd^29VzmZmB*_YcGvc0ba8E;I
zo@OT?3zhA
z8du=NSeHRt?+Sfh;%ew$ErRwH_%YVC(B!+$T4r5u-C*4a-pozb3h-ubv2KNy-|gVf
z++p2m-36V$d#qK~z1C`L4Y)P;S?jF(t@YLe&m|w6v9?*;tsT}*@OE}tyRBEj-PvR9g^uCt;PAX@y#)@>
zJJ!44@Vxi;&WXrVC)N+v5$ng(>?r&OEyff7mK}v^lCxyj1ZSzXT?d>c$xluMZ>fRZ
z5PFi0?Iw0pyP4e_T9Ym9bM01kYr73}D8qIHnp1y1H-4s**Il5~)D3!1J)j%a3;I)i
zpksBW)7WR?VHZLtYAp1o#zVJiBJ{5&K}W0Do?>4N?aoqrsy)q~ZqI>qu
zOQDH1587InL8I#m=u|C$-qqF6%~}Ngt!tp;b*;VBz79H~*V{Lc+wB`+G3O@ejNWYD
zV&7`tX5VhFwC{ix>0S2S(7sv)4XxGC;#vz$uXW1GPgR`ns16;=nm8L%o791Z*n0Z`
z`$795`(gVL=%7AoKW0B}KVd%!e%w>`)Alp=v*5{X21m|4XZ|9zRpnW8|4I7YicjyJ
zTYX)hL4VtR$9~t|FVEP6bA1%&>_3Dx!sEV^>Hc%~U)f*V-`L+mGxj_0#Jc3{dFS!Z
zdKwmX2$T&C+i{>@8+78Fcqil}NKT+riEyW~x>&rLQ{AcI)Wr4TwVgURWs(4nd_D32
zIAZt0?$;{vGPxR-kW6TbcXaAH^_+9SL#(f539xS9z&?l59Oo4tBageh9g^*|0)M9s
zPJzVXPOFiy6Whs2a>C&FBtz>rm28ErjVBcU{weVC*W;wf3y=#0oHQpLJfTeR*4jDk
zo%5UyPDf}8XF1tUj+5);k+skq?&5THx;fpQ9?&E1<@9#?IDMf7>yU-eZ@q>rCQHZ_
z&iPJ1oCo^K=}#^vFF6C8fzBXjFm#WHI>Vgd&IQhe&_o_Vu5?C1-_-&abQJjoT+q?r
zfsO$ObeuCD+RDnp0a*YW2gS}5vckF8DRD}jso*;PK#oA_kVvkBoZ=jE6HW}=2&qIq
zSxvH>X*lt+68g?FV6E|1vc{PSOsQJ+KZZC)O+b0}ny}`VnVCIV%KD
zDLVwuDoX^ICWr>IKe$CVKrqgK{Umo8zo^OK7RL
z3dr*yNr5nQ){_G%fz&`+ARQX)nSr*DPPGr52YvRAflh%evJ@via>%vhW3oSx9mpY{
z26ABy^ds^fd7m60p9Jy(odaD0T_ry{&;$JFUV+}=NB0Fcx?fbrH5gj*Lj%JC!vhxt
zE(E7^L||kfUvYa!gHJj}b4MqDKPow=E|2tL#Rr}mmGXpuJi>Kxn6ckRLDw88S?`P?5jgzz8Y&xs#(PAlPZb81Rh-&Dt
zu5dVl=#t`ml?w`|Dgj@$XHq!B3%l(W&d79g&G2$pg+uPCW}fOsGcWoPw6gAnu!OC;{KFZY-QQ=s%^J?r4dIm|tizeQnLDSLT~rGMyTm%n
z%_0&BbSYPxq;RI&X^|9-0})-yJlz1{9MN@Deu?}&@JLtL{UpK}!LH@MfjC`_h;GS<
z$|x({jYqXr9$D!bxvX3F3f&Z%j_BT6T0w-pQ?pxiD56WjV{!+$O(2YUuxj4i$#$X{i$TH8Qf2VlXb0<-E`qh
zFP*MkicX)CZuX3gyhyT|Bv9#Gvu6}5!+FUXx0AC)PxOadtmr3H))>WJmfojStr4#q
zHd(iZ`{{6Aii*d34YFBG=o
zy&E5iB=Nk-W94r#$RcJRU$^CIM9fs(7tYI76@jlSlB+9_t3R3Relns*e8j^tx4V-f
zZeO6g^}xu6N{jMK$3;6CO`^Y;;x>FFqQj}WeyKVyccnlFc|$JC
z?B{k&zi7uKg>~wPH$A56R!i0OOm#~V340~hUv*1?+*8c{zQU#HLZqby`=#KX!oUEDO?aNhFhVW+#yqM==6
ziKL{M1N}Ip+9;ftu5kmCsYJDKu9^f9uWFC5UJY{fWSXnd*`2=7`)S6&7_Q{$ignf)
z>Gm#C=^o3=iy!!BTnVRH1O2#?o@EX6PczwJW1w7-&4Ip2CS89jT^Br4_d~iKo$iE#
zisL%@$jAx~
zjb);Ls=gb}!|E_J`qQMayJjO=x3f3DW$Cbs(|Dg@4)bAEW>R2SxrHR0=Mf2RMUk`W
z3C#1^acYvtOl>Xg?8*QVr$qxv;m%1akf6yMcPYpkl%QA7Xjsqf(Xc{@ysXp0Inl80
zBrhDqeC0m(?^QwlHanui(wugJipU772w2lLvsz0#yTL3~Y5lD5Q$4%2$jb8tveW#5
zB!3{{52Qo`m{fCBph8xxx1w)BQO1%=^3wmt|E;VH{~Nd5Zj&dur3httSQJet$lC0`6Ax6Er=@dffqPpcy_8MP}
zr)Vn7ZJkvB)U6w-soZD^N$UCnox{FBPOLS7a{gpFsVbT2W*T%UXB8E6DN6mUX1`dD
zpe>_;a9-H$p9*zd
z*qeu%&GdUUn{=~Wf*yMi9
z?4}Y}-MTA3=n}2^IaZDe-OkYW7#wa7gu0dMEw{Q6x4H@4qLZnwC^>ojAP^f3N#SzScv|c?
zcoPdqsz~K#4pd%nU~Cmqg#xvtU&OG_Ep4ug%M}Km0Tm@R6)hyFKR1uiz(3)oB(tIk
zC9M?=NP^2Bh&4Cf`1?zboZ!IIaW~H`LO@Yv(X2p%#kvvHMy#3f#^0EEvBtz3x5+A%
zquHW)qK3M)QxTyk
z1?S5wBi0R)meaYEZz)ODsTbx@_x;cq4pi__cj{$m=%4x!8OIPxl6^Xt@?VhzpnBns
zvd*!BVcX^F_DD*(%-kZI!`wVw!cafQreZhCOt&i&V&tOldzrCMfF^W{SmiV_P$jS8
ztvHHJkTuASJdGf9BfT#5r>uH9xu=ry0VBp$J)Hre-l)AsL~mho)7`yAM3eH740rdC
zo1SOptMTVj*jakJ>+)&9C(;}hkHmHfV$6h^63^0Gl`M~usJAvQKL~V~{%n%oPUmWF
zNW@F0Qm!nZbhC1QjTVu70v5v$Az|;S9Bh!Zy|2
zLq(Ev%+b*;DCj6%@vxVxW>F-$EQ?60+fcbKV+^I%4e0I1-R%-q5V!Q2Au_-5l2OIl4P?bZK&QX>xR1CZz@n%heBDgX=-*(5b(Y~&
zt1#Ac=oX#cV*$9VfuxAryjYm^@3M7K!*2R;uGb*$W;x<+)zGbOgM_{Egmt*HE_zzB
zIaakqaBQr%)Yu3|k^^JQ)ha2X`Bf3U0gPnoTwJ~s2o2Rh_^OT%=ZbML&Z4fGTLdJ|
z42~=RO~mQyMRW^CR7T(|s(2JY?~XI|-Zd@N93LH@Sf4bfB1yM?q_Z>L-T(FL;f`RB
z$CaboDJk0;ulr@ZzaP@{`?L&myl=}N$z|gwR2Z+u&4>x^Rq#GqAY!>-OaHd9u
zOqZV(Ny{;dqDYP`-C~B5b3_rk)oqUG_f*!H9dvoz=E0A2pQR}u6N~nf^$77;%37Qd
zNq2uAN$YG*Rz(X=&Yx0TI<=&D%D6&vvadKPy0jikJj$f>TG4Hhh{pwTIfG#I>Zvs)
zlNWl-$@EmS*pCGs^HCKBOiA5txf-cF29nEY0(q@FFrq6P(VgUW4mM`$J^ao_ag5RA
zvZFwuc)99S?i`NzaD4Hf8BLg=iv9C|I}c*OsIr18)YZ?^&6B6gmYNbQ{u5JDe=$Xu
zH=@&egC|wt3G&u?>eVPWU8hUQHgWrr7BOLLrI;nr4g!U)Xx-%4V)wyVH
zSHzp5qbTmZ&oxVqBdm+z&Wpf}bYof!lk#-Sxf
zaR84~ukX>Ym%pZ7UAAOicJ#gc9wx0=*zHv>toWLd3^%>xYnu6rpbh4$7SPWMY1Ok!
zqi6X!FxmdCpWcVM$;xdNvSYhFNz$s^D&)ty(4T!QDX3bP<*7gH|5jFPXDNx_Xa<;r
z-Q92~-$Sw3yKru-?4Z@k<>&rNehE$H27>wJ_dobhZ2yA~>42u2-OqSk<}te@1+Ct=
zWVCurh*8whvVq`?l|a(g>P;{|#*F}x?WWemcJ!wxudi4jPIc*YLPj7M|Ws+2!y-ce5s%eZLR;5g@Ef;f*n`13^f~cJq>I_GOUmN6)bTqp5Du
z%rU;yVYi{oA{7^O39jgS&?CMK!WwH7K7#(zKPlf$k`nX%KG{v>NSZ7fjWqreC&&6n
zl4#Ln7?rU%l30tqiKMxKV3DF4)C;TFMW}#UL{*gOe$$Z)s)`7@t7LOmx7_&79$u&|R3+a|Pe(q#{DmCCXQt
z41Z}dH2S$KRy37dwxR)4K(jw)skq>**wk9Vw}z>gp;_gS-mRwQd%J&HeiU$*U`)vc@)4{{Ah&u<
z0>>u$m;pYNmjJ6(fxyC8;CRa-p7f&Vrpc2_qJESMqW1_4_a4y+-XmH;J-Q2FL8#m^
zs1s#*iQFa7i;d+imp?ByRs*?&6vX)!KK&uN?75F>(er-jmCs%9P%Ax;dhfkLyGxzU
zAXWV;y5R~*T+@?ycZ!lM`s$8p(L`VH1r
zufOo9iZfa%!bRUFd5C~k!Q7|{hWdLo1v5UDK~fAOQZe1SX~P-v+p<2A%@uu=G(>?}
zICUI6Av?v1_KD*W5s35JM*Ut95V~n3`A`rlM?B~^l63GA#SmJO4LVj54c?jpdLUZ8=3Q
z=zJAEx$Pn82A!Ft8oYd?Ie_gJEsi7}bPkf|?LJ~!k3OpUh%q`0bdawEWK}w;Tqbk|
za?LGp#(MLW(v}uz
zY5U`orX)}xG!z0fSflrQ&b`kzlI`?;-#^}bBG2=jyPbRPx#ym9?z#7YyUu(h&%1%0
z)ei0AF_c_)Muz5vRtDyRG~yu-Ir6OBCJ9=&8*)04{yFTkIrXgk79km1mEUNH9DFJ-
z`S{FYh#@hsCf#~C4U5R|Ol7FivsW$|{A5szhYqel0DU8N$W>sFI-H8U;{|HC#H?
zn1-c%*lTFS3RlvHjYng_#+cGf^GbK5N=JPr@^DH5>XAAymqw}$Jp%`+{i^ECAwXWU
zQPz7^4UCG{P=JTi4p}W5w8DP0K^r_8!U|f20R`$jO%Zx9?3FG}ezMC=lr-CKrj2XW
zKJ9KBk49%8qm9m>6=V8At1v|oJe*cB%Ih69*d+rVPXN*m6ZEistwUYZm{+<%@uVgJ
zHQ+luWfH)>V04h&qbffh4GQ4VLY{VtWrc8+;xX%R%G`lfZW5rS#h@*;SgR2Vg93Uf
zlZdj;V4tdL0qq(!!S7|m#$Xj>FzQDJsz2A^WmWZHjp1y{*J{>oF60n$26E(dHHu;5
z#(Ff`#Bxm1(<>dYc=Fj?v7BHGkQ5lYQ4ow_APW*1P&`t{(#aYdPCJ5sWU;tKadY`c
z%m6`W94Bv~krNJFDtT1B!zLi4(?~jdr9;vuixUxvL&Q4~q@VB@$2z
z>x99V*mbu?#x8bjc^ShoRPL3|U$YsO#Ybrv!2w<8g*Edxz7GXD3GSGNhfrKi(70`Al{yfGLX_4X5wKH1j!OpaL=x
z$7G#IouhD411(_F|5H{Y+*k)a(bn!+bUyW#NsjSq?KeF4r}Om
zViAcjGDM8DQ&g+ra2WPE+zrE7HfMwCEsv+9u^d3d&A{o>$)K{bU6XdHh`p4xGDa
z`wX>hcpip*4!^^2md)#6v~6^W-057_K4#L}pt6#$fgh!(!NABMm-I3ic`Yb;7>3i}
zUl{fp-UU24r!t!>*>=BzQM7uY_cMw52D`dLmrcm$Zq_>r4hXub&XNA$7JcsMTR>0~Z;isG!
zobEF{8D@4Y`J{96JG>djV~*w6u(Cq^G}D=v*b29$vnkH+Ub7~jX^nG&&os%^t1+pp
zYNT;)zQcYbfx+(qr|08gymEoB5R`&+mS_InR(h
zhfQx5qSzRtQlDwv+mlmS(_&@I*tg~9^}_ycO$|d#*!qBxrFGEEFEHOp~t$6k77}N727_39940jI%iRo=o@Gr#-orn8v?=+OFOduO|u-+iX>Y)>}1fIHm6
zjxd>S+0yELssMmpW)7pzw5K_HCR@_{=p}QSp8`(nS=LLlRT|4OH`%lN@9oB%yebt+TPi|HQ!O*?4ZvyZ#j9U
zv~l^_d(=SLODa3VvXtJ=FFsRw=T|v%*dQ?95eV#%Y0!@y@6^MGPX4BRE7vyRC1c~2NAK2!TQ8$v;gMy4HLB{%nzF~IKur$u1qLEkOe
z$;{5S0jK-z27+0FLRpMj<-oG3U{5!>UQ)Zi&z_$`UF`2r`b|dhnKp!39gzR*Eg1U2En$
zCJ@;x{O%>Ag`a$;<)U7v5q@mLaB`l*kYSMQ8E-Aw-_4#gGzg|$STvz7NF;N6G;
zjd6NQF9+4OL}hFpepSqv3RP_BZKEzzx)B1!<#c(vIjYM5Lj1~hbQvfZ)m0F?t}ac`
z)%jFig)ZwV$XHkBf^~#S6TZ5-3PV>x^E%G%GF*mKqa6;$!>MXjhLa23le+1HHY@n_#UC>p?w63mA&{dGLE^j}G>N4CCc*$eGy1WemaD}gmUDoC8
z2!Jd6WYjszNqXw?OgYjy77xD$o<={6cY_WxWL{TcpSrr*Lsyacy1Y^W^&9mW_^I~f
zRUuJb9`nYps$WIi>gp_nu41iq8P6BhReZ7DE{`?qG9ovs_sHODUEOY?%d_x+%khaD
zbdk5F0Iu4T$Hwul@RR%&)zy6sy1K$dSLgM0c_{|cW%;;4S9z%h;Hnh>31-u4pJ<*fzy
zRpYf#m6s>g0axYK{R6tX{6m)~*rWP@nl}Tgyt=kQA5i56)Hn>te#h0ki>vt-SNt9~
z_*C`zmSQ_>OS9gVLheDcHrl%|Uu>~Um}zzl
z)Hza#4q0JlnJAVM^959}z4X~%pp;nI92nSfGY)l1nFg)PEMq&4h*@E;+8%VL(+;Ou
zrXM>!){7lCQpl_ndpqR%HB;=Ts==!E6nnRA$M%RbZQ1OHG{JjT3K-CO(aFnaGzymE
z7b(BheJr{<6QQen3UnF#8`ag3AzfX9qpRRxU0rXZtHUUIOwE&+l9Tej50sbdnl3M4
ziR$XSh8|P$IHu%)3T)Ta?L)e}atYPbalgvt`1h{@>&ektK_S?FGiPVB%-=J
zB!geMuIh0mr{uLPfGd3E5g)uOIiap&(dC&D;9=CS@KGlzbamZ}E(7(EPss;)3;^$n
zF1nI$>Wq}G0{wM$)JRuHkaTs|iLQ |
Connect with us
-Join the Vite community
---
-
-
- GitHub
-
-
- -
-
-
- Discord
-
-
- -
-
-
- X.com
-
-
- -
-
-
- Bluesky
-
-
-
-