From aeb06a0992df758870229c3f0fe9226726566aa3 Mon Sep 17 00:00:00 2001 From: PhuocNTB Date: Wed, 8 Oct 2025 07:03:34 +0700 Subject: [PATCH] upload --- .gitignore | 24 + README.md | 2 + abc.js | 16 + eslint.config.js | 23 + index.html | 14 + package-lock.json | 4586 +++++++++++++++++ package.json | 36 + public/vite.svg | 1 + src/App.tsx | 53 + src/RouteConfig.tsx | 28 + src/assets/img/banner.png | Bin 0 -> 84832 bytes src/assets/img/logo.png | Bin 0 -> 19332 bytes src/i18n/en.json | 31 + src/i18n/i18n.setup.ts | 26 + src/i18n/ja.json | 27 + src/i18n/vi.json | 29 + src/interfaces/cateogry.interface.ts | 8 + src/interfaces/user.interface.ts | 15 + src/main.scss | 5 + src/main.tsx | 13 + src/pages/admin/Admin.tsx | 34 + src/pages/admin/auth/Auth.tsx | 112 + src/pages/admin/auth/auth.scss | 258 + .../CategoryManagement.tsx | 55 + .../components/FormAdd.tsx | 9 + .../admin/category-management/iconData.ts | 182 + src/pages/admin/components/Header.tsx | 39 + src/pages/admin/components/Slider.tsx | 45 + .../product-management/ProductManagement.tsx | 9 + .../admin/user-management/UserManagement.tsx | 103 + .../user/Collection/CollectionDetail.tsx | 11 + src/pages/user/Home/About/About.tsx | 9 + src/pages/user/Home/Home.tsx | 20 + src/pages/user/Home/components/HomeBanner.tsx | 12 + src/pages/user/Home/components/HomeFooter.tsx | 11 + .../user/Home/components/HomeHeader.scss | 124 + src/pages/user/Home/components/HomeHeader.tsx | 83 + src/pages/user/Home/home.scss | 54 + src/vite-env.d.ts | 1 + tsconfig.app.json | 27 + tsconfig.json | 7 + tsconfig.node.json | 25 + vite.config.ts | 7 + 43 files changed, 6174 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 abc.js create mode 100644 eslint.config.js create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/vite.svg create mode 100644 src/App.tsx create mode 100644 src/RouteConfig.tsx create mode 100644 src/assets/img/banner.png create mode 100644 src/assets/img/logo.png create mode 100644 src/i18n/en.json create mode 100644 src/i18n/i18n.setup.ts create mode 100644 src/i18n/ja.json create mode 100644 src/i18n/vi.json create mode 100644 src/interfaces/cateogry.interface.ts create mode 100644 src/interfaces/user.interface.ts create mode 100644 src/main.scss create mode 100644 src/main.tsx create mode 100644 src/pages/admin/Admin.tsx create mode 100644 src/pages/admin/auth/Auth.tsx create mode 100644 src/pages/admin/auth/auth.scss create mode 100644 src/pages/admin/category-management/CategoryManagement.tsx create mode 100644 src/pages/admin/category-management/components/FormAdd.tsx create mode 100644 src/pages/admin/category-management/iconData.ts create mode 100644 src/pages/admin/components/Header.tsx create mode 100644 src/pages/admin/components/Slider.tsx create mode 100644 src/pages/admin/product-management/ProductManagement.tsx create mode 100644 src/pages/admin/user-management/UserManagement.tsx create mode 100644 src/pages/user/Collection/CollectionDetail.tsx create mode 100644 src/pages/user/Home/About/About.tsx create mode 100644 src/pages/user/Home/Home.tsx create mode 100644 src/pages/user/Home/components/HomeBanner.tsx create mode 100644 src/pages/user/Home/components/HomeFooter.tsx create mode 100644 src/pages/user/Home/components/HomeHeader.scss create mode 100644 src/pages/user/Home/components/HomeHeader.tsx create mode 100644 src/pages/user/Home/home.scss create mode 100644 src/vite-env.d.ts create mode 100644 tsconfig.app.json create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json create mode 100644 vite.config.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/README.md b/README.md new file mode 100644 index 0000000..5514215 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +## Dự Án React (chưa có api, redux) +## Có đa ngôn ngữ \ No newline at end of file diff --git a/abc.js b/abc.js new file mode 100644 index 0000000..07bfc9f --- /dev/null +++ b/abc.js @@ -0,0 +1,16 @@ +let targetEL = document.querySelector(".icon-listing") + +let arrayI = targetEL.querySelectorAll("i") + +let result = [] +for (let i = 0; i < arrayI.length; i++) { + + let item = "" + for (let j = 0; j < arrayI[i].classList.length; j++) { + item += `${arrayI[i].classList[j]} ` + } + + result.push(item) +} + +console.log(result) \ No newline at end of file diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..b19330b --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,23 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' +import tseslint from 'typescript-eslint' +import { defineConfig, globalIgnores } from 'eslint/config' + +export default defineConfig([ + globalIgnores(['dist']), + { + files: ['**/*.{ts,tsx}'], + extends: [ + js.configs.recommended, + tseslint.configs.recommended, + reactHooks.configs['recommended-latest'], + reactRefresh.configs.vite, + ], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + }, + }, +]) diff --git a/index.html b/index.html new file mode 100644 index 0000000..9db3cd6 --- /dev/null +++ b/index.html @@ -0,0 +1,14 @@ + + + + + + + TMDT + + + +
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..7157a38 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4586 @@ +{ + "name": "react_router_dom", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "react_router_dom", + "version": "0.0.0", + "dependencies": { + "@ant-design/icons": "^5.6.1", + "@ant-design/v5-patch-for-react-19": "^1.0.3", + "antd": "^5.27.4", + "i18next": "^25.5.2", + "react": "^19.1.1", + "react-dom": "^19.1.1", + "react-i18next": "^15.7.3", + "react-router": "^7.9.1" + }, + "devDependencies": { + "@eslint/js": "^9.36.0", + "@types/react": "^19.1.13", + "@types/react-dom": "^19.1.9", + "@vitejs/plugin-react-swc": "^4.1.0", + "eslint": "^9.36.0", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.20", + "globals": "^16.4.0", + "sass": "^1.93.1", + "typescript": "~5.8.3", + "typescript-eslint": "^8.44.0", + "vite": "^7.1.7" + } + }, + "node_modules/@ant-design/colors": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.2.1.tgz", + "integrity": "sha512-lCHDcEzieu4GA3n8ELeZ5VQ8pKQAWcGGLRTQ50aQM2iqPpq2evTxER84jfdPvsPAtEcZ7m44NI45edFMo8oOYQ==", + "license": "MIT", + "dependencies": { + "@ant-design/fast-color": "^2.0.6" + } + }, + "node_modules/@ant-design/cssinjs": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.24.0.tgz", + "integrity": "sha512-K4cYrJBsgvL+IoozUXYjbT6LHHNt+19a9zkvpBPxLjFHas1UpPM2A5MlhROb0BT8N8WoavM5VsP9MeSeNK/3mg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "@emotion/hash": "^0.8.0", + "@emotion/unitless": "^0.7.5", + "classnames": "^2.3.1", + "csstype": "^3.1.3", + "rc-util": "^5.35.0", + "stylis": "^4.3.4" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/cssinjs-utils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs-utils/-/cssinjs-utils-1.1.3.tgz", + "integrity": "sha512-nOoQMLW1l+xR1Co8NFVYiP8pZp3VjIIzqV6D6ShYF2ljtdwWJn5WSsH+7kvCktXL/yhEtWURKOfH5Xz/gzlwsg==", + "license": "MIT", + "dependencies": { + "@ant-design/cssinjs": "^1.21.0", + "@babel/runtime": "^7.23.2", + "rc-util": "^5.38.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@ant-design/fast-color": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@ant-design/fast-color/-/fast-color-2.0.6.tgz", + "integrity": "sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7" + }, + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@ant-design/icons": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.6.1.tgz", + "integrity": "sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==", + "license": "MIT", + "dependencies": { + "@ant-design/colors": "^7.0.0", + "@ant-design/icons-svg": "^4.4.0", + "@babel/runtime": "^7.24.8", + "classnames": "^2.2.6", + "rc-util": "^5.31.1" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/icons-svg": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz", + "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==", + "license": "MIT" + }, + "node_modules/@ant-design/react-slick": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.1.2.tgz", + "integrity": "sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.4", + "classnames": "^2.2.5", + "json2mq": "^0.2.0", + "resize-observer-polyfill": "^1.5.1", + "throttle-debounce": "^5.0.0" + }, + "peerDependencies": { + "react": ">=16.9.0" + } + }, + "node_modules/@ant-design/v5-patch-for-react-19": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@ant-design/v5-patch-for-react-19/-/v5-patch-for-react-19-1.0.3.tgz", + "integrity": "sha512-iWfZuSUl5kuhqLUw7jJXUQFMMkM7XpW7apmKzQBQHU0cpifYW4A79xIBt9YVO5IBajKpPG5UKP87Ft7Yrw1p/w==", + "license": "MIT", + "engines": { + "node": ">=12.x" + }, + "peerDependencies": { + "antd": ">=5.22.6", + "react": ">=19.0.0", + "react-dom": ">=19.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", + "license": "MIT" + }, + "node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.10.tgz", + "integrity": "sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.10.tgz", + "integrity": "sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.10.tgz", + "integrity": "sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.10.tgz", + "integrity": "sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.10.tgz", + "integrity": "sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.10.tgz", + "integrity": "sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.10.tgz", + "integrity": "sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.10.tgz", + "integrity": "sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.10.tgz", + "integrity": "sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.10.tgz", + "integrity": "sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.10.tgz", + "integrity": "sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.10.tgz", + "integrity": "sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.10.tgz", + "integrity": "sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.10.tgz", + "integrity": "sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.10.tgz", + "integrity": "sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.10.tgz", + "integrity": "sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.10.tgz", + "integrity": "sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.10.tgz", + "integrity": "sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.10.tgz", + "integrity": "sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.10.tgz", + "integrity": "sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.10.tgz", + "integrity": "sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.10.tgz", + "integrity": "sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.10.tgz", + "integrity": "sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.10.tgz", + "integrity": "sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.10.tgz", + "integrity": "sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.10.tgz", + "integrity": "sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", + "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz", + "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz", + "integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", + "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.36.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.36.0.tgz", + "integrity": "sha512-uhCbYtYynH30iZErszX78U+nR3pJU3RHGQ57NXy5QupD4SBVwDeU8TNBy+MjMngc1UyIW9noKqsRqfjQTBU2dw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", + "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.15.2", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@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==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "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" + } + }, + "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==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "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==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "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==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "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==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "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==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "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==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "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==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "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==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "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==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "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==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "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==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "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==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "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==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@rc-component/async-validator": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@rc-component/async-validator/-/async-validator-5.0.4.tgz", + "integrity": "sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.4" + }, + "engines": { + "node": ">=14.x" + } + }, + "node_modules/@rc-component/color-picker": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-2.0.1.tgz", + "integrity": "sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==", + "license": "MIT", + "dependencies": { + "@ant-design/fast-color": "^2.0.6", + "@babel/runtime": "^7.23.6", + "classnames": "^2.2.6", + "rc-util": "^5.38.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/context": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rc-component/context/-/context-1.4.0.tgz", + "integrity": "sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/mini-decimal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz", + "integrity": "sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0" + }, + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@rc-component/mutate-observer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz", + "integrity": "sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", + "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/qrcode": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rc-component/qrcode/-/qrcode-1.0.1.tgz", + "integrity": "sha512-g8eeeaMyFXVlq8cZUeaxCDhfIYjpao0l9cvm5gFwKXy/Vm1yDWV7h2sjH5jHYzdFedlVKBpATFB1VKMrHzwaWQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7", + "classnames": "^2.3.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/tour": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.15.1.tgz", + "integrity": "sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "@rc-component/portal": "^1.0.0-9", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/trigger": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.3.0.tgz", + "integrity": "sha512-iwaxZyzOuK0D7lS+0AQEtW52zUWxoGqTGkke3dRyb8pYiShmRpCjB/8TzPI4R6YySCH7Vm9BZj/31VPiiQTLBg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@rc-component/portal": "^1.1.0", + "classnames": "^2.3.2", + "rc-motion": "^2.0.0", + "rc-resize-observer": "^1.3.1", + "rc-util": "^5.44.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.35", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.35.tgz", + "integrity": "sha512-slYrCpoxJUqzFDDNlvrOYRazQUNRvWPjXA17dAOISY3rDMxX6k8K4cj2H+hEYMHF81HO3uNd5rHVigAWRM5dSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.52.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.0.tgz", + "integrity": "sha512-VxDYCDqOaR7NXzAtvRx7G1u54d2kEHopb28YH/pKzY6y0qmogP3gG7CSiWsq9WvDFxOQMpNEyjVAHZFXfH3o/A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.52.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.0.tgz", + "integrity": "sha512-pqDirm8koABIKvzL59YI9W9DWbRlTX7RWhN+auR8HXJxo89m4mjqbah7nJZjeKNTNYopqL+yGg+0mhCpf3xZtQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.52.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.0.tgz", + "integrity": "sha512-YCdWlY/8ltN6H78HnMsRHYlPiKvqKagBP1r+D7SSylxX+HnsgXGCmLiV3Y4nSyY9hW8qr8U9LDUx/Lo7M6MfmQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.52.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.0.tgz", + "integrity": "sha512-z4nw6y1j+OOSGzuVbSWdIp1IUks9qNw4dc7z7lWuWDKojY38VMWBlEN7F9jk5UXOkUcp97vA1N213DF+Lz8BRg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.52.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.0.tgz", + "integrity": "sha512-Q/dv9Yvyr5rKlK8WQJZVrp5g2SOYeZUs9u/t2f9cQ2E0gJjYB/BWoedXfUT0EcDJefi2zzVfhcOj8drWCzTviw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.52.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.0.tgz", + "integrity": "sha512-kdBsLs4Uile/fbjZVvCRcKB4q64R+1mUq0Yd7oU1CMm1Av336ajIFqNFovByipciuUQjBCPMxwJhCgfG2re3rg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.52.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.0.tgz", + "integrity": "sha512-aL6hRwu0k7MTUESgkg7QHY6CoqPgr6gdQXRJI1/VbFlUMwsSzPGSR7sG5d+MCbYnJmJwThc2ol3nixj1fvI/zQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.52.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.0.tgz", + "integrity": "sha512-BTs0M5s1EJejgIBJhCeiFo7GZZ2IXWkFGcyZhxX4+8usnIo5Mti57108vjXFIQmmJaRyDwmV59Tw64Ap1dkwMw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.52.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.0.tgz", + "integrity": "sha512-uj672IVOU9m08DBGvoPKPi/J8jlVgjh12C9GmjjBxCTQc3XtVmRkRKyeHSmIKQpvJ7fIm1EJieBUcnGSzDVFyw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.52.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.0.tgz", + "integrity": "sha512-/+IVbeDMDCtB/HP/wiWsSzduD10SEGzIZX2945KSgZRNi4TSkjHqRJtNTVtVb8IRwhJ65ssI56krlLik+zFWkw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.52.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.0.tgz", + "integrity": "sha512-U1vVzvSWtSMWKKrGoROPBXMh3Vwn93TA9V35PldokHGqiUbF6erSzox/5qrSMKp6SzakvyjcPiVF8yB1xKr9Pg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.52.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.0.tgz", + "integrity": "sha512-X/4WfuBAdQRH8cK3DYl8zC00XEE6aM472W+QCycpQJeLWVnHfkv7RyBFVaTqNUMsTgIX8ihMjCvFF9OUgeABzw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.52.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.0.tgz", + "integrity": "sha512-xIRYc58HfWDBZoLmWfWXg2Sq8VCa2iJ32B7mqfWnkx5mekekl0tMe7FHpY8I72RXEcUkaWawRvl3qA55og+cwQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.52.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.0.tgz", + "integrity": "sha512-mbsoUey05WJIOz8U1WzNdf+6UMYGwE3fZZnQqsM22FZ3wh1N887HT6jAOjXs6CNEK3Ntu2OBsyQDXfIjouI4dw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.52.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.0.tgz", + "integrity": "sha512-qP6aP970bucEi5KKKR4AuPFd8aTx9EF6BvutvYxmZuWLJHmnq4LvBfp0U+yFDMGwJ+AIJEH5sIP+SNypauMWzg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.52.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.0.tgz", + "integrity": "sha512-nmSVN+F2i1yKZ7rJNKO3G7ZzmxJgoQBQZ/6c4MuS553Grmr7WqR7LLDcYG53Z2m9409z3JLt4sCOhLdbKQ3HmA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.52.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.0.tgz", + "integrity": "sha512-2d0qRo33G6TfQVjaMR71P+yJVGODrt5V6+T0BDYH4EMfGgdC/2HWDVjSSFw888GSzAZUwuska3+zxNUCDco6rQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.52.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.0.tgz", + "integrity": "sha512-A1JalX4MOaFAAyGgpO7XP5khquv/7xKzLIyLmhNrbiCxWpMlnsTYr8dnsWM7sEeotNmxvSOEL7F65j0HXFcFsw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.52.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.0.tgz", + "integrity": "sha512-YQugafP/rH0eOOHGjmNgDURrpYHrIX0yuojOI8bwCyXwxC9ZdTd3vYkmddPX0oHONLXu9Rb1dDmT0VNpjkzGGw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.52.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.0.tgz", + "integrity": "sha512-zYdUYhi3Qe2fndujBqL5FjAFzvNeLxtIqfzNEVKD1I7C37/chv1VxhscWSQHTNfjPCrBFQMnynwA3kpZpZ8w4A==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.52.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.0.tgz", + "integrity": "sha512-fGk03kQylNaCOQ96HDMeT7E2n91EqvCDd3RwvT5k+xNdFCeMGnj5b5hEgTGrQuyidqSsD3zJDQ21QIaxXqTBJw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.52.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.0.tgz", + "integrity": "sha512-6iKDCVSIUQ8jPMoIV0OytRKniaYyy5EbY/RRydmLW8ZR3cEBhxbWl5ro0rkUNe0ef6sScvhbY79HrjRm8i3vDQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@swc/core": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.13.5.tgz", + "integrity": "sha512-WezcBo8a0Dg2rnR82zhwoR6aRNxeTGfK5QCD6TQ+kg3xx/zNT02s/0o+81h/3zhvFSB24NtqEr8FTw88O5W/JQ==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.24" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.13.5", + "@swc/core-darwin-x64": "1.13.5", + "@swc/core-linux-arm-gnueabihf": "1.13.5", + "@swc/core-linux-arm64-gnu": "1.13.5", + "@swc/core-linux-arm64-musl": "1.13.5", + "@swc/core-linux-x64-gnu": "1.13.5", + "@swc/core-linux-x64-musl": "1.13.5", + "@swc/core-win32-arm64-msvc": "1.13.5", + "@swc/core-win32-ia32-msvc": "1.13.5", + "@swc/core-win32-x64-msvc": "1.13.5" + }, + "peerDependencies": { + "@swc/helpers": ">=0.5.17" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.13.5.tgz", + "integrity": "sha512-lKNv7SujeXvKn16gvQqUQI5DdyY8v7xcoO3k06/FJbHJS90zEwZdQiMNRiqpYw/orU543tPaWgz7cIYWhbopiQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.13.5.tgz", + "integrity": "sha512-ILd38Fg/w23vHb0yVjlWvQBoE37ZJTdlLHa8LRCFDdX4WKfnVBiblsCU9ar4QTMNdeTBEX9iUF4IrbNWhaF1Ng==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.13.5.tgz", + "integrity": "sha512-Q6eS3Pt8GLkXxqz9TAw+AUk9HpVJt8Uzm54MvPsqp2yuGmY0/sNaPPNVqctCX9fu/Nu8eaWUen0si6iEiCsazQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.13.5.tgz", + "integrity": "sha512-aNDfeN+9af+y+M2MYfxCzCy/VDq7Z5YIbMqRI739o8Ganz6ST+27kjQFd8Y/57JN/hcnUEa9xqdS3XY7WaVtSw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.13.5.tgz", + "integrity": "sha512-9+ZxFN5GJag4CnYnq6apKTnnezpfJhCumyz0504/JbHLo+Ue+ZtJnf3RhyA9W9TINtLE0bC4hKpWi8ZKoETyOQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.13.5.tgz", + "integrity": "sha512-WD530qvHrki8Ywt/PloKUjaRKgstQqNGvmZl54g06kA+hqtSE2FTG9gngXr3UJxYu/cNAjJYiBifm7+w4nbHbA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.13.5.tgz", + "integrity": "sha512-Luj8y4OFYx4DHNQTWjdIuKTq2f5k6uSXICqx+FSabnXptaOBAbJHNbHT/06JZh6NRUouaf0mYXN0mcsqvkhd7Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.13.5.tgz", + "integrity": "sha512-cZ6UpumhF9SDJvv4DA2fo9WIzlNFuKSkZpZmPG1c+4PFSEMy5DFOjBSllCvnqihCabzXzpn6ykCwBmHpy31vQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.13.5.tgz", + "integrity": "sha512-C5Yi/xIikrFUzZcyGj9L3RpKljFvKiDMtyDzPKzlsDrKIw2EYY+bF88gB6oGY5RGmv4DAX8dbnpRAqgFD0FMEw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.13.5", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.13.5.tgz", + "integrity": "sha512-YrKdMVxbYmlfybCSbRtrilc6UA8GF5aPmGKBdPvjrarvsmf4i7ZHGCEnLtfOMd3Lwbs2WUZq3WdMbozYeLU93Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@swc/types": { + "version": "0.1.25", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.25.tgz", + "integrity": "sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "19.1.13", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.13.tgz", + "integrity": "sha512-hHkbU/eoO3EG5/MZkuFSKmYqPbSVk5byPFa3e7y/8TybHiLMACgI8seVYlicwk7H5K/rI2px9xrQp/C+AUDTiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.1.9", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.9.tgz", + "integrity": "sha512-qXRuZaOsAdXKFyOhRBg6Lqqc0yay13vN7KrIg4L7N4aaHN68ma9OK3NE1BoDFgFOTfM7zg+3/8+2n8rLUH3OKQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.44.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.44.1.tgz", + "integrity": "sha512-molgphGqOBT7t4YKCSkbasmu1tb1MgrZ2szGzHbclF7PNmOkSTQVHy+2jXOSnxvR3+Xe1yySHFZoqMpz3TfQsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.44.1", + "@typescript-eslint/type-utils": "8.44.1", + "@typescript-eslint/utils": "8.44.1", + "@typescript-eslint/visitor-keys": "8.44.1", + "graphemer": "^1.4.0", + "ignore": "^7.0.0", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.44.1", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.44.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.44.1.tgz", + "integrity": "sha512-EHrrEsyhOhxYt8MTg4zTF+DJMuNBzWwgvvOYNj/zm1vnaD/IC5zCXFehZv94Piqa2cRFfXrTFxIvO95L7Qc/cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.44.1", + "@typescript-eslint/types": "8.44.1", + "@typescript-eslint/typescript-estree": "8.44.1", + "@typescript-eslint/visitor-keys": "8.44.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.44.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.44.1.tgz", + "integrity": "sha512-ycSa60eGg8GWAkVsKV4E6Nz33h+HjTXbsDT4FILyL8Obk5/mx4tbvCNsLf9zret3ipSumAOG89UcCs/KRaKYrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.44.1", + "@typescript-eslint/types": "^8.44.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.44.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.44.1.tgz", + "integrity": "sha512-NdhWHgmynpSvyhchGLXh+w12OMT308Gm25JoRIyTZqEbApiBiQHD/8xgb6LqCWCFcxFtWwaVdFsLPQI3jvhywg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.44.1", + "@typescript-eslint/visitor-keys": "8.44.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.44.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.44.1.tgz", + "integrity": "sha512-B5OyACouEjuIvof3o86lRMvyDsFwZm+4fBOqFHccIctYgBjqR3qT39FBYGN87khcgf0ExpdCBeGKpKRhSFTjKQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.44.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.44.1.tgz", + "integrity": "sha512-KdEerZqHWXsRNKjF9NYswNISnFzXfXNDfPxoTh7tqohU/PRIbwTmsjGK6V9/RTYWau7NZvfo52lgVk+sJh0K3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.44.1", + "@typescript-eslint/typescript-estree": "8.44.1", + "@typescript-eslint/utils": "8.44.1", + "debug": "^4.3.4", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.44.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.44.1.tgz", + "integrity": "sha512-Lk7uj7y9uQUOEguiDIDLYLJOrYHQa7oBiURYVFqIpGxclAFQ78f6VUOM8lI2XEuNOKNB7XuvM2+2cMXAoq4ALQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.44.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.44.1.tgz", + "integrity": "sha512-qnQJ+mVa7szevdEyvfItbO5Vo+GfZ4/GZWWDRRLjrxYPkhM+6zYB2vRYwCsoJLzqFCdZT4mEqyJoyzkunsZ96A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.44.1", + "@typescript-eslint/tsconfig-utils": "8.44.1", + "@typescript-eslint/types": "8.44.1", + "@typescript-eslint/visitor-keys": "8.44.1", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/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/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.44.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.44.1.tgz", + "integrity": "sha512-DpX5Fp6edTlocMCwA+mHY8Mra+pPjRZ0TfHkXI8QFelIKcbADQz1LUPNtzOFUriBB2UYqw4Pi9+xV4w9ZczHFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.44.1", + "@typescript-eslint/types": "8.44.1", + "@typescript-eslint/typescript-estree": "8.44.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.44.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.44.1.tgz", + "integrity": "sha512-576+u0QD+Jp3tZzvfRfxon0EA2lzcDt3lhUbsC6Lgzy9x2VR4E+JUiNyGHi5T8vk0TV+fpJ5GLG1JsJuWCaKhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.44.1", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vitejs/plugin-react-swc": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-4.1.0.tgz", + "integrity": "sha512-Ff690TUck0Anlh7wdIcnsVMhofeEVgm44Y4OYdeeEEPSKyZHzDI9gfVBvySEhDfXtBp8tLCbfsVKPWEMEjq8/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "1.0.0-beta.35", + "@swc/core": "^1.13.5" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^4 || ^5 || ^6 || ^7" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/antd": { + "version": "5.27.4", + "resolved": "https://registry.npmjs.org/antd/-/antd-5.27.4.tgz", + "integrity": "sha512-rhArohoAUCxhkPjGI/BXthOrrjaElL4Fb7d4vEHnIR3DpxFXfegd4rN21IgGdiF+Iz4EFuUZu8MdS8NuJHLSVQ==", + "license": "MIT", + "dependencies": { + "@ant-design/colors": "^7.2.1", + "@ant-design/cssinjs": "^1.23.0", + "@ant-design/cssinjs-utils": "^1.1.3", + "@ant-design/fast-color": "^2.0.6", + "@ant-design/icons": "^5.6.1", + "@ant-design/react-slick": "~1.1.2", + "@babel/runtime": "^7.26.0", + "@rc-component/color-picker": "~2.0.1", + "@rc-component/mutate-observer": "^1.1.0", + "@rc-component/qrcode": "~1.0.0", + "@rc-component/tour": "~1.15.1", + "@rc-component/trigger": "^2.3.0", + "classnames": "^2.5.1", + "copy-to-clipboard": "^3.3.3", + "dayjs": "^1.11.11", + "rc-cascader": "~3.34.0", + "rc-checkbox": "~3.5.0", + "rc-collapse": "~3.9.0", + "rc-dialog": "~9.6.0", + "rc-drawer": "~7.3.0", + "rc-dropdown": "~4.2.1", + "rc-field-form": "~2.7.0", + "rc-image": "~7.12.0", + "rc-input": "~1.8.0", + "rc-input-number": "~9.5.0", + "rc-mentions": "~2.20.0", + "rc-menu": "~9.16.1", + "rc-motion": "^2.9.5", + "rc-notification": "~5.6.4", + "rc-pagination": "~5.1.0", + "rc-picker": "~4.11.3", + "rc-progress": "~4.0.0", + "rc-rate": "~2.13.1", + "rc-resize-observer": "^1.4.3", + "rc-segmented": "~2.7.0", + "rc-select": "~14.16.8", + "rc-slider": "~11.1.9", + "rc-steps": "~6.0.1", + "rc-switch": "~4.1.0", + "rc-table": "~7.53.0", + "rc-tabs": "~15.7.0", + "rc-textarea": "~1.10.2", + "rc-tooltip": "~6.4.0", + "rc-tree": "~5.13.1", + "rc-tree-select": "~5.27.0", + "rc-upload": "~4.9.2", + "rc-util": "^5.44.4", + "scroll-into-view-if-needed": "^3.1.0", + "throttle-debounce": "^5.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ant-design" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/compute-scroll-into-view": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz", + "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/copy-to-clipboard": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", + "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", + "license": "MIT", + "dependencies": { + "toggle-selection": "^1.0.6" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/dayjs": { + "version": "1.11.18", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.18.tgz", + "integrity": "sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/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/esbuild": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.10.tgz", + "integrity": "sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.10", + "@esbuild/android-arm": "0.25.10", + "@esbuild/android-arm64": "0.25.10", + "@esbuild/android-x64": "0.25.10", + "@esbuild/darwin-arm64": "0.25.10", + "@esbuild/darwin-x64": "0.25.10", + "@esbuild/freebsd-arm64": "0.25.10", + "@esbuild/freebsd-x64": "0.25.10", + "@esbuild/linux-arm": "0.25.10", + "@esbuild/linux-arm64": "0.25.10", + "@esbuild/linux-ia32": "0.25.10", + "@esbuild/linux-loong64": "0.25.10", + "@esbuild/linux-mips64el": "0.25.10", + "@esbuild/linux-ppc64": "0.25.10", + "@esbuild/linux-riscv64": "0.25.10", + "@esbuild/linux-s390x": "0.25.10", + "@esbuild/linux-x64": "0.25.10", + "@esbuild/netbsd-arm64": "0.25.10", + "@esbuild/netbsd-x64": "0.25.10", + "@esbuild/openbsd-arm64": "0.25.10", + "@esbuild/openbsd-x64": "0.25.10", + "@esbuild/openharmony-arm64": "0.25.10", + "@esbuild/sunos-x64": "0.25.10", + "@esbuild/win32-arm64": "0.25.10", + "@esbuild/win32-ia32": "0.25.10", + "@esbuild/win32-x64": "0.25.10" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.36.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.36.0.tgz", + "integrity": "sha512-hB4FIzXovouYzwzECDcUkJ4OcfOEkXTv2zRY6B9bkwjx/cprAq0uvm1nl7zvQ0/TsUk0zQiN4uPfJpB9m+rPMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.0", + "@eslint/config-helpers": "^0.3.1", + "@eslint/core": "^0.15.2", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.36.0", + "@eslint/plugin-kit": "^0.3.5", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", + "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.21", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.21.tgz", + "integrity": "sha512-MWDWTtNC4voTcWDxXbdmBNe8b/TxfxRFUL6hXgKWJjN9c1AagYEmpiFWBWzDw+5H3SulWUe1pJKTnoSdmk88UA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=8.40" + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "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/globals": { + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz", + "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/html-parse-stringify": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz", + "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==", + "license": "MIT", + "dependencies": { + "void-elements": "3.1.0" + } + }, + "node_modules/i18next": { + "version": "25.5.2", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-25.5.2.tgz", + "integrity": "sha512-lW8Zeh37i/o0zVr+NoCHfNnfvVw+M6FQbRp36ZZ/NyHDJ3NJVpp2HhAUyU9WafL5AssymNoOjMRB48mmx2P6Hw==", + "funding": [ + { + "type": "individual", + "url": "https://locize.com" + }, + { + "type": "individual", + "url": "https://locize.com/i18next.html" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + } + ], + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.27.6" + }, + "peerDependencies": { + "typescript": "^5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.3.tgz", + "integrity": "sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==", + "dev": true, + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json2mq": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", + "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==", + "license": "MIT", + "dependencies": { + "string-convert": "^0.2.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/rc-cascader": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.34.0.tgz", + "integrity": "sha512-KpXypcvju9ptjW9FaN2NFcA2QH9E9LHKq169Y0eWtH4e/wHQ5Wh5qZakAgvb8EKZ736WZ3B0zLLOBsrsja5Dag==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.25.7", + "classnames": "^2.3.1", + "rc-select": "~14.16.2", + "rc-tree": "~5.13.0", + "rc-util": "^5.43.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-checkbox": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.5.0.tgz", + "integrity": "sha512-aOAQc3E98HteIIsSqm6Xk2FPKIER6+5vyEFMZfo73TqM+VVAIqOkHoPjgKLqSNtVLWScoaM7vY2ZrGEheI79yg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.3.2", + "rc-util": "^5.25.2" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-collapse": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.9.0.tgz", + "integrity": "sha512-swDdz4QZ4dFTo4RAUMLL50qP0EY62N2kvmk2We5xYdRwcRn8WcYtuetCJpwpaCbUfUt5+huLpVxhvmnK+PHrkA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.3.4", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-dialog": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.6.0.tgz", + "integrity": "sha512-ApoVi9Z8PaCQg6FsUzS8yvBEQy0ZL2PkuvAgrmohPkN3okps5WZ5WQWPc1RNuiOKaAYv8B97ACdsFU5LizzCqg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/portal": "^1.0.0-8", + "classnames": "^2.2.6", + "rc-motion": "^2.3.0", + "rc-util": "^5.21.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-drawer": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.3.0.tgz", + "integrity": "sha512-DX6CIgiBWNpJIMGFO8BAISFkxiuKitoizooj4BDyee8/SnBn0zwO2FHrNDpqqepj0E/TFTDpmEBCyFuTgC7MOg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@rc-component/portal": "^1.1.1", + "classnames": "^2.2.6", + "rc-motion": "^2.6.1", + "rc-util": "^5.38.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-dropdown": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.2.1.tgz", + "integrity": "sha512-YDAlXsPv3I1n42dv1JpdM7wJ+gSUBfeyPK59ZpBD9jQhK9jVuxpjj3NmWQHOBceA1zEPVX84T2wbdb2SD0UjmA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.6", + "rc-util": "^5.44.1" + }, + "peerDependencies": { + "react": ">=16.11.0", + "react-dom": ">=16.11.0" + } + }, + "node_modules/rc-field-form": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-2.7.0.tgz", + "integrity": "sha512-hgKsCay2taxzVnBPZl+1n4ZondsV78G++XVsMIJCAoioMjlMQR9YwAp7JZDIECzIu2Z66R+f4SFIRrO2DjDNAA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "@rc-component/async-validator": "^5.0.3", + "rc-util": "^5.32.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-image": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.12.0.tgz", + "integrity": "sha512-cZ3HTyyckPnNnUb9/DRqduqzLfrQRyi+CdHjdqgsyDpI3Ln5UX1kXnAhPBSJj9pVRzwRFgqkN7p9b6HBDjmu/Q==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/portal": "^1.0.2", + "classnames": "^2.2.6", + "rc-dialog": "~9.6.0", + "rc-motion": "^2.6.2", + "rc-util": "^5.34.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-input": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.8.0.tgz", + "integrity": "sha512-KXvaTbX+7ha8a/k+eg6SYRVERK0NddX8QX7a7AnRvUa/rEH0CNMlpcBzBkhI0wp2C8C4HlMoYl8TImSN+fuHKA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.18.1" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/rc-input-number": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-9.5.0.tgz", + "integrity": "sha512-bKaEvB5tHebUURAEXw35LDcnRZLq3x1k7GxfAqBMzmpHkDGzjAtnUL8y4y5N15rIFIg5IJgwr211jInl3cipag==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/mini-decimal": "^1.0.1", + "classnames": "^2.2.5", + "rc-input": "~1.8.0", + "rc-util": "^5.40.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-mentions": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.20.0.tgz", + "integrity": "sha512-w8HCMZEh3f0nR8ZEd466ATqmXFCMGMN5UFCzEUL0bM/nGw/wOS2GgRzKBcm19K++jDyuWCOJOdgcKGXU3fXfbQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.22.5", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.6", + "rc-input": "~1.8.0", + "rc-menu": "~9.16.0", + "rc-textarea": "~1.10.0", + "rc-util": "^5.34.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-menu": { + "version": "9.16.1", + "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.16.1.tgz", + "integrity": "sha512-ghHx6/6Dvp+fw8CJhDUHFHDJ84hJE3BXNCzSgLdmNiFErWSOaZNsihDAsKq9ByTALo/xkNIwtDFGIl6r+RPXBg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.0.0", + "classnames": "2.x", + "rc-motion": "^2.4.3", + "rc-overflow": "^1.3.1", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-motion": { + "version": "2.9.5", + "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.5.tgz", + "integrity": "sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.44.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-notification": { + "version": "5.6.4", + "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.6.4.tgz", + "integrity": "sha512-KcS4O6B4qzM3KH7lkwOB7ooLPZ4b6J+VMmQgT51VZCeEcmghdeR4IrMcFq0LG+RPdnbe/ArT086tGM8Snimgiw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.9.0", + "rc-util": "^5.20.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-overflow": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.4.1.tgz", + "integrity": "sha512-3MoPQQPV1uKyOMVNd6SZfONi+f3st0r8PksexIdBTeIYbMX0Jr+k7pHEDvsXtR4BpCv90/Pv2MovVNhktKrwvw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.37.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-pagination": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-5.1.0.tgz", + "integrity": "sha512-8416Yip/+eclTFdHXLKTxZvn70duYVGTvUUWbckCCZoIl3jagqke3GLsFrMs0bsQBikiYpZLD9206Ej4SOdOXQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.3.2", + "rc-util": "^5.38.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-picker": { + "version": "4.11.3", + "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.11.3.tgz", + "integrity": "sha512-MJ5teb7FlNE0NFHTncxXQ62Y5lytq6sh5nUw0iH8OkHL/TjARSEvSHpr940pWgjGANpjCwyMdvsEV55l5tYNSg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.1", + "rc-overflow": "^1.3.2", + "rc-resize-observer": "^1.4.0", + "rc-util": "^5.43.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "date-fns": ">= 2.x", + "dayjs": ">= 1.x", + "luxon": ">= 3.x", + "moment": ">= 2.x", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + }, + "peerDependenciesMeta": { + "date-fns": { + "optional": true + }, + "dayjs": { + "optional": true + }, + "luxon": { + "optional": true + }, + "moment": { + "optional": true + } + } + }, + "node_modules/rc-progress": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-4.0.0.tgz", + "integrity": "sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.6", + "rc-util": "^5.16.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-rate": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.13.1.tgz", + "integrity": "sha512-QUhQ9ivQ8Gy7mtMZPAjLbxBt5y9GRp65VcUyGUMF3N3fhiftivPHdpuDIaWIMOTEprAjZPC08bls1dQB+I1F2Q==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.5", + "rc-util": "^5.0.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-resize-observer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.4.3.tgz", + "integrity": "sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.7", + "classnames": "^2.2.1", + "rc-util": "^5.44.1", + "resize-observer-polyfill": "^1.5.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-segmented": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.7.0.tgz", + "integrity": "sha512-liijAjXz+KnTRVnxxXG2sYDGd6iLL7VpGGdR8gwoxAXy2KglviKCxLWZdjKYJzYzGSUwKDSTdYk8brj54Bn5BA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-motion": "^2.4.4", + "rc-util": "^5.17.0" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/rc-select": { + "version": "14.16.8", + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.16.8.tgz", + "integrity": "sha512-NOV5BZa1wZrsdkKaiK7LHRuo5ZjZYMDxPP6/1+09+FB4KoNi8jcG1ZqLE3AVCxEsYMBe65OBx71wFoHRTP3LRg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.1.1", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-overflow": "^1.3.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-slider": { + "version": "11.1.9", + "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-11.1.9.tgz", + "integrity": "sha512-h8IknhzSh3FEM9u8ivkskh+Ef4Yo4JRIY2nj7MrH6GQmrwV6mcpJf5/4KgH5JaVI1H3E52yCdpOlVyGZIeph5A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.5", + "rc-util": "^5.36.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-steps": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-6.0.1.tgz", + "integrity": "sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.16.7", + "classnames": "^2.2.3", + "rc-util": "^5.16.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-switch": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-4.1.0.tgz", + "integrity": "sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.21.0", + "classnames": "^2.2.1", + "rc-util": "^5.30.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-table": { + "version": "7.53.1", + "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.53.1.tgz", + "integrity": "sha512-firAd7Z+liqIDS5TubJ1qqcoBd6YcANLKWQDZhFf3rfoOTt/UNPj4n3O+2vhl+z4QMqwPEUVAil661WHA8H8Aw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/context": "^1.4.0", + "classnames": "^2.2.5", + "rc-resize-observer": "^1.1.0", + "rc-util": "^5.44.3", + "rc-virtual-list": "^3.14.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tabs": { + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-15.7.0.tgz", + "integrity": "sha512-ZepiE+6fmozYdWf/9gVp7k56PKHB1YYoDsKeQA1CBlJ/POIhjkcYiv0AGP0w2Jhzftd3AVvZP/K+V+Lpi2ankA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "classnames": "2.x", + "rc-dropdown": "~4.2.0", + "rc-menu": "~9.16.0", + "rc-motion": "^2.6.2", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.34.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-textarea": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.10.2.tgz", + "integrity": "sha512-HfaeXiaSlpiSp0I/pvWpecFEHpVysZ9tpDLNkxQbMvMz6gsr7aVZ7FpWP9kt4t7DB+jJXesYS0us1uPZnlRnwQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.1", + "rc-input": "~1.8.0", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tooltip": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.4.0.tgz", + "integrity": "sha512-kqyivim5cp8I5RkHmpsp1Nn/Wk+1oeloMv9c7LXNgDxUpGm+RbXJGL+OPvDlcRnx9DBeOe4wyOIl4OKUERyH1g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.1", + "rc-util": "^5.44.3" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tree": { + "version": "5.13.1", + "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.13.1.tgz", + "integrity": "sha512-FNhIefhftobCdUJshO7M8uZTA9F4OPGVXqGfZkkD/5soDeOhwO06T/aKTrg0WD8gRg/pyfq+ql3aMymLHCTC4A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.1" + }, + "engines": { + "node": ">=10.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-tree-select": { + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.27.0.tgz", + "integrity": "sha512-2qTBTzwIT7LRI1o7zLyrCzmo5tQanmyGbSaGTIf7sYimCklAToVVfpMC6OAldSKolcnjorBYPNSKQqJmN3TCww==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.25.7", + "classnames": "2.x", + "rc-select": "~14.16.2", + "rc-tree": "~5.13.0", + "rc-util": "^5.43.0" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-upload": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.9.2.tgz", + "integrity": "sha512-nHx+9rbd1FKMiMRYsqQ3NkXUv7COHPBo3X1Obwq9SWS6/diF/A0aJ5OHubvwUAIDs+4RMleljV0pcrNUc823GQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "classnames": "^2.2.5", + "rc-util": "^5.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-util": { + "version": "5.44.4", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.44.4.tgz", + "integrity": "sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "react-is": "^18.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-virtual-list": { + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.19.2.tgz", + "integrity": "sha512-Ys6NcjwGkuwkeaWBDqfI3xWuZ7rDiQXlH1o2zLfFzATfEgXcqpk8CkgMfbJD81McqjcJVez25a3kPxCR807evA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.0", + "classnames": "^2.2.6", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.36.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/react": { + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz", + "integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.1.tgz", + "integrity": "sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.26.0" + }, + "peerDependencies": { + "react": "^19.1.1" + } + }, + "node_modules/react-i18next": { + "version": "15.7.3", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.7.3.tgz", + "integrity": "sha512-AANws4tOE+QSq/IeMF/ncoHlMNZaVLxpa5uUGW1wjike68elVYr0018L9xYoqBr1OFO7G7boDPrbn0HpMCJxTw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.27.6", + "html-parse-stringify": "^3.0.1" + }, + "peerDependencies": { + "i18next": ">= 25.4.1", + "react": ">= 16.8.0", + "typescript": "^5" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/react-router": { + "version": "7.9.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.9.1.tgz", + "integrity": "sha512-pfAByjcTpX55mqSDGwGnY9vDCpxqBLASg0BMNAuMmpSGESo/TaOUG6BllhAtAkCGx8Rnohik/XtaqiYUJtgW2g==", + "license": "MIT", + "dependencies": { + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", + "license": "MIT" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.52.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.0.tgz", + "integrity": "sha512-+IuescNkTJQgX7AkIDtITipZdIGcWF0pnVvZTWStiazUmcGA2ag8dfg0urest2XlXUi9kuhfQ+qmdc5Stc3z7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.52.0", + "@rollup/rollup-android-arm64": "4.52.0", + "@rollup/rollup-darwin-arm64": "4.52.0", + "@rollup/rollup-darwin-x64": "4.52.0", + "@rollup/rollup-freebsd-arm64": "4.52.0", + "@rollup/rollup-freebsd-x64": "4.52.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.52.0", + "@rollup/rollup-linux-arm-musleabihf": "4.52.0", + "@rollup/rollup-linux-arm64-gnu": "4.52.0", + "@rollup/rollup-linux-arm64-musl": "4.52.0", + "@rollup/rollup-linux-loong64-gnu": "4.52.0", + "@rollup/rollup-linux-ppc64-gnu": "4.52.0", + "@rollup/rollup-linux-riscv64-gnu": "4.52.0", + "@rollup/rollup-linux-riscv64-musl": "4.52.0", + "@rollup/rollup-linux-s390x-gnu": "4.52.0", + "@rollup/rollup-linux-x64-gnu": "4.52.0", + "@rollup/rollup-linux-x64-musl": "4.52.0", + "@rollup/rollup-openharmony-arm64": "4.52.0", + "@rollup/rollup-win32-arm64-msvc": "4.52.0", + "@rollup/rollup-win32-ia32-msvc": "4.52.0", + "@rollup/rollup-win32-x64-gnu": "4.52.0", + "@rollup/rollup-win32-x64-msvc": "4.52.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/sass": { + "version": "1.93.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.93.1.tgz", + "integrity": "sha512-wLAeLB7IksO2u+cCfhHqcy7/2ZUMPp/X2oV6+LjmweTqgjhOKrkaE/Q1wljxtco5EcOcupZ4c981X0gpk5Tiag==", + "dev": true, + "license": "MIT", + "dependencies": { + "chokidar": "^4.0.0", + "immutable": "^5.0.2", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" + } + }, + "node_modules/scheduler": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "license": "MIT" + }, + "node_modules/scroll-into-view-if-needed": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", + "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", + "license": "MIT", + "dependencies": { + "compute-scroll-into-view": "^3.0.2" + } + }, + "node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-convert": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", + "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==", + "license": "MIT" + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylis": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", + "license": "MIT" + }, + "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/throttle-debounce": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.2.tgz", + "integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==", + "license": "MIT", + "engines": { + "node": ">=12.22" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==", + "license": "MIT" + }, + "node_modules/ts-api-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.44.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.44.1.tgz", + "integrity": "sha512-0ws8uWGrUVTjEeN2OM4K1pLKHK/4NiNP/vz6ns+LjT/6sqpaYzIVFajZb1fj/IDwpsrrHb3Jy0Qm5u9CPcKaeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.44.1", + "@typescript-eslint/parser": "8.44.1", + "@typescript-eslint/typescript-estree": "8.44.1", + "@typescript-eslint/utils": "8.44.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vite": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.7.tgz", + "integrity": "sha512-VbA8ScMvAISJNJVbRDTJdCwqQoAareR/wutevKanhR2/1EkoXVZVkkORaYm/tNVCjP/UDTKtcw3bAkwOUdedmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..f829e74 --- /dev/null +++ b/package.json @@ -0,0 +1,36 @@ +{ + "name": "react_router_dom", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "@ant-design/icons": "^5.6.1", + "@ant-design/v5-patch-for-react-19": "^1.0.3", + "antd": "^5.27.4", + "i18next": "^25.5.2", + "react": "^19.1.1", + "react-dom": "^19.1.1", + "react-i18next": "^15.7.3", + "react-router": "^7.9.1" + }, + "devDependencies": { + "@eslint/js": "^9.36.0", + "@types/react": "^19.1.13", + "@types/react-dom": "^19.1.9", + "@vitejs/plugin-react-swc": "^4.1.0", + "eslint": "^9.36.0", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.20", + "globals": "^16.4.0", + "sass": "^1.93.1", + "typescript": "~5.8.3", + "typescript-eslint": "^8.44.0", + "vite": "^7.1.7" + } +} diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/App.tsx b/src/App.tsx new file mode 100644 index 0000000..954a5f0 --- /dev/null +++ b/src/App.tsx @@ -0,0 +1,53 @@ +import React from 'react' +import RouteConfig from './RouteConfig' +import { UserRole, type User } from './interfaces/user.interface' +import type { Category } from './interfaces/cateogry.interface' + + +export default function App() { + const mockUserData: User[] = [ + { + id: 1, + fullName: "Lưu Hoàng Xuân Nguyên", + age: 31, + phone: "+84329577177", + userName: "user1", + password: "123", + email: "user@abc.com", + role: UserRole.USER, + isActive: true + }, + + { + id: 2, + fullName: "nguyễn Thanh bình Phước", + age: 30, + phone: "+84329577177", + userName: "admin", + password: "123", + email: "admin@abc.com", + role: UserRole.ADMIN, + isActive: true + } + + ] + + if(!localStorage.getItem("userList")) { + localStorage.setItem("userList", JSON.stringify(mockUserData)) + } + + const mockCategoryData: Category[] = [ + { + id: 1, + title: "Điện thoại", + isActive: true, + icon: "fa-solid fa-circle-user" + } + ] + + if(!localStorage.getItem("categoryList")) { + localStorage.setItem("categoryList", JSON.stringify(mockCategoryData)) + } + + return +} diff --git a/src/RouteConfig.tsx b/src/RouteConfig.tsx new file mode 100644 index 0000000..314e42d --- /dev/null +++ b/src/RouteConfig.tsx @@ -0,0 +1,28 @@ +import React from 'react' +import { Route, Routes } from 'react-router' +import { Admin } from './pages/admin/Admin' +import UserManagement from './pages/admin/user-management/UserManagement' +import ProductManagement from './pages/admin/product-management/ProductManagement' +import CategoryManagement from './pages/admin/category-management/CategoryManagement' +import Home from './pages/user/Home/Home' +import Auth from './pages/admin/auth/Auth' +import About from './pages/user/Home/About/About' +import CollectionDetail from './pages/user/Collection/CollectionDetail' + +export default function RouteConfig() { + return ( + + }> + }> + }> + + + + }> + }> + }> + }> + + + ) +} diff --git a/src/assets/img/banner.png b/src/assets/img/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..07dc07e5c7082e0c7c99856486b86c2707223e3c GIT binary patch literal 84832 zcmV)qK$^daP)ncdmE(kcfl+RB!5!j=QJ2__h@k0WEE-~#-PJJKBo$K8>SAbemM zxH}Ba#x^)$oGn|jY%AE3tgwnJX|WMjBH!~I{D+TQBw>ZYl3S8JXZQ>Hjn=kpRC0kCeC2>6YM#Zi#*b^0-t2hD!JoLv)Y$){lCe)&s;6Qo=pu zrCZNTdrV+%Io)@c$dnVomkinI5!!MnF+lV;S^#931bCblcqXAdowRhHl9n4iW3<%hi3EAd2!KMnEFsdaFj{E@vdZXb zqh}LXZ5$^=Bs^&ZFpCyZp7?k&ixy7wu1pN3#iU0iw6BtuOHWD<$%Pzic|^kOXQkB% z5w?dD#4LE2a*y;t0`T7@-61_J zbC1mJv_`*9V2RPaMy&l8Mz=)OR|G5V#^-NqsJ z8!>T_(H%xVNhJI#Y2kr#vk_h7f7j?cMn5)!^Owe4Ys{AtxXYM(jk(U4+mrU!#z48- zm>(K*lQI8c%+1C;V9cWlJR);_BIIX?l^&MYxOE)zVg z;4TH%DEOg*Yh`YbxmxC5jrpoEcLwI4gW#LSeBGGe81rAoJZ#MM#@u4ew-fwMV}51K z9mafr$OdLHdcQH>O6Wf^=0-Qgl#A$f) zmqtG~g7a7K1m=bWejQ*rOE5nRTzgMo{wpw;dPiV>5t#oB3|)}_2n<62_`QK)z4rwA zX`lz$mq51%Vw)Za^y@%31o~N^dlTgDKzAFV_by{@FwVCa_DhEZKQqBEOmJHe-V{W) z1krV2bbk>2GKhX*qI(qHt?)k-UZ>!{O!zAk{VI%po=V*xh7X6q1A)02+d^|)XjsdC zNd(y4a$)n3oUR80-4W`?fo=+QZ&i3#Q{^w~GWXP`Z>!DTU7h`TMfw*}c)ba(H_?q@ zbZ-#dY=U1Iw^){Zdtg}dj{~zfa0~xI;-Vji=C;sW9~zLwq4`D9T@;%C2n{V}{8woH zGc-R5&DWC_=6?#!4~M4wLug>2`~A@TYck~rq4~Ga{7q=S9GWkN=9{7URv7$c7+f0$ z{}2Y>4TFCSgRh3c!Z7%FLitP>d^!w176u;)gR8^f-@@RZ!r<@2;BUj=Q(^GoWXeaw z;QL|fD^UubZv_U!KAjFemolF;`nu7#Bl9;k6<0Ubex@q>wJ7{rfJVdIPo%Z>ppLcEecd78Z34AjZemNC7 z390ZasqjBi;n!0k=6xa+d_4;PB?`YCh5w!kZ;Zn4N8uNu@GDVxdph-{bm|xB)Xy@} zo9pXdHF4r=CQrUI6Frnp-Ih)*O{e}do%(q?^+>|={dDT5>C~O+)UVR1$I_|C)2ScM zn|IozalMzNK2-Ucul(H=uf6zHC!ciE+v*!`&1RmA!e^rJ!6)xo6mCkVfR*Xgvr)J$3ZIL@HR*6iI^2>DH>bnqbjb8|>2P^ET$>J;ro)HR;eAo+ zu_(19N@HHaC1U9j-_RtD@ks zD0n(;R;JC;bZ~zaItqW2W>$JhL*26@o0c~3h?ud(+|VnP^ESdL+%(2fvJhhoazDQE-oga7h$B8bxD!{{ zwsdrRI=U~NS{$XWj#BqUscWLtZBgo>DE0HCdt;QkH%eWfPCb-PIkt3aQ9AXrr2Y4F z>V|acmUQaB(y7lSKyU(IOsBq_PW@v#1@ial)Z%pN$LZ*s>FBHJ=(`DgFCG0T9ijRs z>FBxy?n$SByV5D()z9i{#)q7AR-ct*i3Q2_Fjba+FQ;(XnbPA`t4pQhZ>ews2%1Cbs)6YA+) z@a&knRWl|n9n-WjSFtimtqRTBFkoAsjlvbFU}Y*?8->rNf;FiSd{ruZCKWDCg-@lz zRhQTvo@MIV~9R^Q@!LkJCE>93zU}+f8LVO|!mIc8R zq2pg_%rYRAdLol~vZ7*HCi6rXJ|39IjCleG%oBm3>)Xcy!w12y1M^4_+>^iq?z1>} zFfb7BPukxEhR@jtjJe+!T0ZgV@>%Zz3UrS@XbcEl03P2$1fhM%P1pTK4<_)C(E|y9 zcz_Npj!g+rK5qwzMS}2l3BS{V(3rsCl9=s2Lk;c|FIHahF0Mb z-+CIO9-%F#)0K|Vcpg8CmM*R5I~wtH+G7quWICfIfCA8^1w3-h7UB_ep~U8f4;_0+dN<$z}0FV;E0L241ba2`dc%p9^0s$DsS`b=-3_28` z$ZxV`B?>$+q$D_jPy+Xmmja2FZZc1d7NoRfqyY)sGtfc-kT58r1^G;*3*IXoloMMa zClDeNfk4VgQ6kOA{e;Qf{-n(%Evjqe)FA|BR70nQ2Lyo~5;&BsL^mZT6C48q33@D( zlBskHF-4hb8RW!raf^k0a#i-bumsy#7sXF{xySXZC5UB$Q}w!>okT&%1$JFL1OTDwMe zi|l0CgR)U#R>9~D3CS&1Q>~pYd!p_+^N6(@kL+z^jXv2x8QrHpZwWjV}FpVmP}d(IXH?4$4GAycBUmv!c3o8>&HiWCkt5-MOw2M_B01 z2o+|)0zs7=bQmHwsIzf@Yy&ADsMp%i+Q8Z#H!B`6anb02#GR9pWtRtxsgtb|0&Tq! zPA)A0y}rxR*m_I?AwpOI+I^Q*uzj%Mb0`d96)_KyE(`I?XK6SDW}t!~Np30@v^%k3 z569MMqY<{%81*H07egL7AX_inF3UtrrQIjD9B^($cwp#|-J9?j*}URD7mp??6c6?d zOvIU=KK}fJhfJ zK%mgF3g5+Gz*A@;!axf@>k4E*JV5tId25*?_v8OEM2D6xEkGBbOZyT4Lx~wSy0kzE z0sj;H$pc4wAUK-ze}!^H#2?XR6;M3*W8hopFCUoBEZQTcKmi!?bZ`$)Ks?d6P(Ww_ z5I^d1x+TQZp_CACKMKVoN3_1{+28@81w5S=fan1_2yHo0g63{d_b2&;6z($wPnBbF&JKm}mLLa@QE6Z#4CF3s0eLwSDNcCl4Fi%%ZlExPgy$qUk-tGY zVALTqL#9V2NPxTtfwJUVqJHkP>Ph@Yu0ypzp(45T8Y8iJveiZ_M4^Qi8+^S@s)X_I zUsy;v@E$Si|UoIoWNteQbG#>Ny{o|CE?YK#Ma|j>}LviO2Q{bC>Q(4 z6maMW!5cW1#X^}ap@lG>EXPI;9Z9T_Vwk8vKF&uwl9|ZnG6jc|tkbf&F!Ky3pIF6i zQj1cwu+fzgZo!6GR#X%`Lm{t4Le2_NOyL2b_3egXi-$L^N~hZn9Nb^1?5Ld7GV1l)cDAl<9EJx@NS@kcB#sXo!J^QGC1}Ap zN_5qncKY!CuF9gFTEF4>RjGV`*Xi?WzxY=(fAZBcKk=0ddR~3n-;A63?_7R3}0032rIutE4A1`a!(VJ=$(1M&gH zVl6@tg|FyFGS#BKwZsY1;6V-u+h1V~9^+{j8f{<>n$Q>?&cx|LK3#~ZPzH>vj!;b% z-EZAm&<-X>g2RnCtjsxuX$*amUsXJv$p}9>F7G>_QDLxu#bdI zBvDVIh%U>ikoL&b#>K9<7zaTORqbGZq##|L8#Zp#39nf&>60Iww{*$*J-u_An`hm7 z>xsAg*NE3$jM6@tlmg1{8mZE{hbHJkBQmiBKeJ>OVr5Yg$W&UxC>I63;zHx>;2->u zPwZhueaTV6Dm=p|fJ0y=jNu_fp+ngtF;t6Ei7rG=VoG9nn9JJHf++3;h^U5GFX25T zK;cfqLYTQ`ImqCFR3$M5d%)R_K?$cJ9K8@(AQa4iIpkNuY^E@Z_Oyi9NTQ1e#>nPm z57;KKWtUFB z?Wgna|HVmLn@{WRIr)htlRx#*`U}soHC0#wKb%a*A&CS<*4cnqM!gDFM;E|I1bQ}z zbRl8`6y*3WqM*=?YN{G8JZI9U7S3O~4Dql{^GjE*I$fSCNc|ufin>t z1b|-NLiYe20H-a1=k(oj+*s#HevjbyoPTQnARcJE?9!RPxNh!)x1X|Y^BKLpbC)d{ z|F;W?!?1=!`3JGcDJAyYpFg(WmlL?<5s&?)E(p_U0Z;c`TDrd#{4CE_j+axQ1D@hr z-$jK-AeIntzz;zLp<4pF5CJG22Pp@JphKbc0Dc6(1BDiV2OKCN;GRwk?&-7u-4giG zQun11=6e2e#7}_^K=-lbTPR$efajrwP8T*m1j41s)d>RKGtl)2Lm&WmJ=Z!s{?_J> zhKDXKfJ{Ck8RCPG&+-bnk0@?xaxZwen)wJsIG^!|iY2BX0Se3jU6^T60r08MEWl4h zCJ0^5D?9+|kOKuF=t3_zx*+n2&PO#L!^puTK8)c(I6`H`i)A{@5c%Ne z(}*QAiUbe@q7EX=AQ%SD5DX|{I*A1d7G3D%1f+d%f}oVSWLKC+_QNQNGHmz(IixS( z48camMqx>prB0!Z5l_ z!5eilQ)E~;wJQSGOCzm#Lq*w;75SWa0ZYb%ugI1tckxEbYM51(1T$S;O_PKXFz96y z5l%%!*?`&DOzleg$aEMm4}X$4l44>ZuN)~#SqrP~P0Cu#gALn2rbw)MdXhgeilYz? z!e-%WaBQY!6=M?~){7i+HRO|(vg84&LZXY2aFPvU1{=pjb_d(Y!*D(f&@rACo1w5x zwjhlh-&*VfmQE65xT3 zuW&MEVABa!v=`(JgGHrR|@TJ*whY9+F+TDc_ zdxD93veWigOzTba9&4aKUEe)8Fh5z^@k92HkO&XNvP^;j)fm%URsF=;=TD{VErh3x z+T6UZGL`MIabI6w|FGKN!ZYg@e{stF5C7e?_q_Jz1+V)2X=mPFUE3;SB-~5Orm$IQ ziACYhjD+P3;ZKA^XOy9ooRjeY&V&Lm5e94km#dV5}EvAY^Ym7~&G8O4C3TMDyb&RR zCEU72YdeevhBtMeFmvm9=RNnPH$VK&cmM42%Lf`8ZDIpvpp;p?QZ89C=A|W;GoV8! zg&l_yNl*YB&Z;vKVVRO}3meTP#-0*piC%GK4NB}aM}|9uu%RVZQOfG$;Smo(ZjD(%E(2+TF(U;F!^T6!uzB}QQAFTFq z*brd@mdw2I=O;dLpGl|ThuJX4$RJV2XeC@qb7adzz|V5SFZ^{w{3gVqze(p$%^$)8 z?Dd?-9z6c0pVz(m)m10XPB%nBI8ZgMY1}72IOAvEJ9X`Y)4u=Dxmo02e*ohM-9LcV z->UMrM(q)y@4Mx*$|;^s3;b5qFqE@-IS@V2Eg$uGsVyO}dGND*do%?)Q=o$Y;IySK zcsVc%lvB!ahDsAXP79QHO1MX8fzl`l)1mm*cWFz&&=EMCB}xf_4LVW9?FJDX#1muz$~(Jgg{}4E+3*y0f8A# z(ialzr=sC7J#OOGbZe%3w7^!sF& z$=)OTh_ueVrxL1pI?G1^3Ch#ST-v9s{J$Kgs(f0)04(8CAFEgh%i)6`90@C|9=3YI zYO~cIs})wutRAyklDunev(9NSBY}kDIEhSdwbd4D4_dp!+GcAztmSPgbP5bIp`wIW zpAZu4E^F6Yd%)UOYnOpYPg(n{wGUbQfVJynSI9ml`?M^@0F?%r3R}=F`>gCX*@t8| z%kGlptsUtLZ}7;9SP1r@iv$IS<7)g51wX^X>ew=}D_#-!eWaGClHl=~6aL3hY#ei8 z;9W5l2zyQDgz*SLGVhZyhBSy|$VzY`79O@ZlE|D;!5YbKDYZWGo$P{@h$VcB z0qDXmmIei

cm*UD&dDQabO_36rigM-!%N{kl<^M$xDnC`sqvwwZYudcuH z=L?X*+AKVtNTT#lW^+5n+)w<{jTW06GIpp+IVC?b~VVgQ_IXW;ImY2yWC@3t5x4Wibf(m1JAs-kG8rx;!K^w~!iz?&- znQW>rm(Jy~s?Ao`=2F!aCNODh>tY45?KGxycvI)B+567F@Yy$C{`dz!_~6I?@`iW6 z=jIE}zhm0;Uo|v5Q=MDa(`&*MYvFtmoUEvrTx(cJB;x^ZBo+d6S#Mrq32BKHF;Q}N z4!D(D6moV-2*F(dCo3cI7!HBBjxb&$Avr59a&cu*#j$Zb`>U0^fe8u1sZy$ti2T?D zohBIWUe236GLcL{#HK-VR;Do!S45wRx!S6!-~E@FH(pbB;aMgX;2#HZUVZyjz#=IK z6&Gvf&pqMh>+>cEjludRYttqu8db?;90V~3LAD^JB&Hoy0%$p3000mGNkl^=d^(m1UqVE~atJTnEi)Jr%dlrSFu;DUPOIMA>WhrW1>{RAae zSy`-Q78JUrHkQBvPlN#r>3TY=cEjjGtK1I^{9zP?HYGO>KY+U+8U$HRf~+$`*4jM# z6vqV{!(TL(DJR}>bIpmfRLm>DD2YfQ9*7F-9tQVhwLHsC&ft&i;89)5WDfizv;_^$7uSAj1h+eeAfhEM@N%Lmi zeiIV`Xb1#6en<|~AyiI7fhr=(w zWZnZeP5RwTm{~OB6L%bC6ARfv!mUEWVkBKuKI#U3T(0U?>CxRRk zN~0brwH_&-;whyTq@=NQ>I;|&ydxTK{oFQg$Ytzz&0s0_+#3!}*(BgKc2L%QIey(OX zJ#afi^esFL@fn5$1j5P38=p5`2o%p5$%%ysLnwJUuz{efDxrWN6JQpcd;owW4dAmM zoV0*X?$y$-C6aOyaXxOb6JRc>HYpBu>=UvbmX9mjFT2)Nh9Z}O=VbyiH(8Mzp=-U> zn&ivF$DB)!!szo>TqJz1`{hvm_8*gbh{!@Ps>+J;0HnnpX(ZZN#WU9899Bm% z*J6{OAvyjpL%XbH7ksz8MMAfn6DYHH%VKT$DErbW+v*rxW>YDRkRaklsu7H2734!rKl#Ggc-49KU5uLFyv%ppOmarBe0PJ@koMppEO4z2JkBRDBFYw zkWczWg_D!WrBIClL1H4iPjQYw)&+$`ik7e;5@?akL>7)=;INU@`XS827)$~|EDTIU z2Y+5LqCq$Y^0>6i$*q3IlRJ1R|fMB@Pr6=-5CMp&d@P8-#^0k?AZ1haedS zW}zBqqJngEFb^W5tQTGA#j05nL4{z9#0k(hNeE{XiGL)J zRWlJf4k5QDgkTO0MToovN?%fZ9@en-P@<)JCy)pLf(Jh%5dY)eNJ1K0gNs%f(;Wo& z<#J!2e*Dj7&$)m6_)V1+Ytzv|o8EcAv~*@#dvk3EtGWtV43lA5tTJi2KU~N|j{6F+ zIesRU9@b(cj)kK_!eh7^3ijYe?A$SI_}Mn-?lyKnrau*gZF{#zvVE39Qm`N(jthN# z+i%auRhM4&s;__k>>s|Z>f(>R`G!|t@YPwfZyGape=3DaR)KRGC2)kZn;^^wa561> zgrWEi9HA`McZpb*51r{a5PxDGI1~(KUyPhTL68tip-f&TB?|VSS3!a}r5PiNj)GA( zu-$Cx;=J3)%FrY&w@sr_h*9*RUy>bWbLo&7^l_(orT2GY0HUrl7YbQHmV2unL4= zz?5u8*$g}t*-S2r{h3jjOno-PMCb>z8D_!OnaxbhI?=GzR=6c&04u7@W}=D;TUn9H zW>~&5=`fo{mok}5MJ5GgGGRK+5@0YD8I#R~*-R>vW{nOqX_LYJ3`4=_(G{njnmhH> z+EY(WO`DE(7-*T|5$l$jp$if1&cclICtZZY14P*jT?~K?9-CMN&XD7&aQt+IRoP6G zO)DJ*>1ZIG9?W2Qw(7Kbb*CP$WYgX5M+6-)nio;w!^5|!%*e~%aN5(qsXgyZ!mnUm z0nG9A5J?;XLkP)zDCFfvp%DLp1f411P$UgI@60ow`AyTyi^KZUX4IT^B5T2iL9zta zLKkq9tlJk507^MPDRGw5OSm6}twbruOT_Z}SD$v8hl=Ub{~$}QIqk%{(_U5_ z4tvWRPF`_;-GVcTrB@6H<5x`A|D+;+4f6`1IOxiEv5S`ZI@ z$m8X0Idh4}6HDC^zo+}IAB}w{xqUz(0_AKFJwRj#oED(#aawS|BedlJ9cE7{;UEA+ z-+BZ#4<#b>5-j54B3Q^?|aF5VJqzfmj0|%iC4uGWO?o%#PPxnYDmv9(~d)7~Z zO>!v+`2h$+0C^sxp#%}6GT}!f_cas{cq)dR2^$)r07w{+ljbja&riz~hC(@$$UmrL zn2so>cm#gfNO?(gctgwcd%ffj=^(ECQJ zNVpNo6o~|JhJ@QOfbAw{#cc9X=2DQ5P4ZrvNPvPI7!XL3ia@%!h17FqQY|z}jItt% zVM!D@$l*Z-^2uV^Yut!TR1 ze&P*d(8aolYD_{qi-L%4xSf(79*^T>R^b6HOd%S55K`wLnITLi4gus~6{8T5%raRT z8lfPNElVW_1l3qlFOjJ;1tM%13?2E@X{6veV;X~?CNTBJj3(7K3fx;bjWXixM_PuB zKs&0Dz%p4o5?BI?pzzcH`z66ci;Ey)8;iw$d`QHYhf5=3?8t?G)T-sCN}iRfS|EL!UK2%y;#d5syvUVtk_m$ zVmZ%T(y7$;y81gNPJCp-aaYecVdJ=QyZiFH+I#nO*{$u-rnYQrce*#98YsB(#??6D z2lMe6AW{7?Le9#;i3|B`L;K#{d&3mk2PA?4t5_flK`GOi%n%zLoP28azP%L(Vs$7r zP@GV=V(-p$;QqC5UOc3Vi;DYgoVSI8h26ifsk;1#QyWg3(s+9DWB>fuU;4?lg|}aR z{l#zm=EavRjnXLUmDna$B#DE-db==9ZlejgAR*G?UVH*VSi;FBg2PV>U>?EAT;$+w zTEwQ3ee6r5!O5EY4L^#EU`AkLN4WVm`ZKhv}s;T3oEKH zM7Xj>#;9m?kcq}*j42p1XiSk)U`(Si%mnWdrJuh*CkqqNKz zBUIpa;;mqUVHck}^QYfWRpXeVd&S4=KACMz zZ(e%-=4Iz^di?C>W#?~x^5V@;zH0N6mu!9#{7svmIA`+{7jAyy)k%Bt=B2OMy!0H$ zzx1rlOV8ZA^uoY2VSj^v|1@zPWkn<;_bkY<9@|6Uy70mwu{w z>0c)B|C*QnL-W$VXkPlx=B0nty!5K(rBJR+5P06xycGCE^U`-WFMa>!r61h9^nII` zzIXG|t2Qrv%jTt5G%tNu^Rf>#FMEFi7d9_@2WB@fdwcV;cQ!A3ZS%6ro0nbOyzHvx zWgpt|)a6@OT(ND{Ted&<`W?@`p=Ir#?^^%9-J9OCd(#_RH@~5E^LzGeyJ&CAWqVuB z-P>|OTg%ydcfD@!uFLlBK4wRiwW=1Kc@mSEn#o%8qaJT-xn_wNMe@7;dV-tDLC-F{jEAi$|@ zTTa{4eCD3!Q};BV(YoQRJsZ#1weIxY>rUUb_SBuvp1E`NsXJCK*s)^4j;BxG@$~GU ze!)HdutWPUqUxYJx4NhxHVOmo&9DoVegY#^T{-V(-yeDLs{$#KIFcT$WF+5$FhmPT zB3yw`O3CpwUi_*#KmR^*koGd;aNbY9aQ616&f5OeIXj*@dkD_j@l-jSS=I&j;2At# z-k!1JsZtmG4-7k3oUv>58M~i5qjjBwJ?qcdyXlO5TO91)b_USiaz@AQ!_c|sj3c0Y z^!LI~*|K)d6OYeXx|DYQvriq?_41`*1)-yolss#tgGXO4GnBfE%B_)Cx+|yxz6FP>` z(uEGf6k3MJGmuZR0v#TNLkA!t1O^h0wA@urE&>9Dxo80={~$|4CKH(+NMv>7f=nS_ z;psk{2m$7Q{_}6S=bn!>H-FJu;IlnFSFKug!Q#caY10@5*19hMBO6pFEL;fB%Y@>b_u^bz8tR)#``s746DtMy{k$q%aVMEs`61vD- zSsmVHqlpkgf=m}SRA2_PC=n5e4X^>Es&Jyq@6JfM9D?A%Jf@@*3t?aiGAS1W37lD! zZ4`m5HLpDKwdP@sb& z8B6G5FgVM>46MRVR);+(MH)o(b{oZkA<^H@i#TJ96`bVvUDjQg5!HirZbuJtu$+k; zE=)xZ4nzfhh94K93mhZaJ``a9{2(Y|6->uA7Ry>-W~KWjEI}OGp#O)Y^6ET^=92Rd~!#Re5GMsoZxhUvT(M#~9OPQnH}v(6AaChNZWX(Cb8 zn8<2`RbSFJSshGDpthv`sWi?fRmSX0zARm1Z5*pJR%i`2V?&RG4ZJ{RQ2>Y=@lT8%-OigUWwz|jZ`fJbu|L?kFKF)#3q>Pb>{3cAgT2^g<+|V?Kr9mr zWnu$jS*s|!sd?+x`g#f>loll(Is}P!oIfZ5Ii4eAD^_e+KQCYCQxLZ+?liNr&0E&i z+v1>#1t*aFI5q~C+rSQV6?fknh84Gu8TI)I{fjd#Kkj?tviH39b3eH9HSaxl_upP| z^_wr>bLnf$@mDm>$ zb{XSY1(aU5)UaPcl~vZd7_Kxb7+WFRWr#`}*3`7mp1tFBuiyBds~-CJC+~RQ!rRZi z_}anM|g#s)~9yolb{g=sarOk0d?>EBt~Kw zOJFxc345T^GF0+2rb4940c0VRwRpZ&u2yP5__u zcc^c_173pzy{+orc^G&`a0HZ({(d+D_pjBy=S17N^{}p&FAXD)28{O$p=D73s{>dj z>jhXifCr$k%M3YU-tGRH|I}08(#G3FNHqUa&39_oa_{&`==3ASq6zW_<4-knpEC#2beoE{eUt|Lg_8Ua((m9Kb#T z>~DEI5Hm+W`RMP5BajIEzZQqnzxM@`;toFK$p6(p#PI*B{8w5y2lZ%`5P_rVoL=B) z`q7l~=}e&uzy?nHyMmuvnnkx<4&Bm_N1(s}_-?6%0{E^+d^_y(pFhLeGp#+frze^= z4I&aen{T0bTL}m86xtFFf>^*4K}rAx+_xn*(g=c&mZ1`G^Lh$wBmv;? z@bOOyLd%&Tr693@jk_2I030@2guvV{L8N6$Nh1`lZ?Y?^)CGQwL(lEs4yD#1Dec%Dlz}o|lOgifxl419$>@L&Vei8Q)V5~w)|n^`8(m`FCvL}XGY<7Be!)9 zcC@)4@kiBlcib4S#FK?8PysQQFXF`Eami6 znO+Ad7k)tg$V_JVvKpk?W?3&ib*S63sJ0Kf)ZiVG0Ij-#D; z2$Sb8L>=xW7%};4sK0Oe>aWF875M*L}eCVl!TS%D6^v#)l;IcP7_2Gqg zE&TXhm%je~X~(Z@Y}^q>gEH5eva8t{^CI5;lW!pB>XBqH&u>NA2^BNK`TE~YCG z3lGHsO~Rvdv#V`d9#x+|4Lba@Z>@GduKxWR=y2bF<-H%7F{Sb!94Ns4_@Qf?{?9?j zX0glEUFR~!cFCJyzA{1C>kh@SsVB^=0d@toUI z7aX8_1P>Iz50xX}$An`}FA=>Q-!i>K2QLx9%jtAIKm;r3=C(3r@>5O4k!<>GDYrLUb|;fRKN91p0v7r3@SC3wR&_{);&U6wK=rE85k*Ncy0CI9F5KAsXwgR&ylTtS?XBDpWSqmpYjqd!l?}Ls^=*;rn9YW+x6E&uOCY)$ln*hs1tbo zc9?Pm&-VN7^J93Jmm#o{L{et3@Tn3tC#y#_yH+Dn2$3?9abgKu&%~!B(nofRy`y?z z7I|k{ViPHKNI)?N241#M286xtr0qux|4b_<>p~n*Vc_Tzv!jC;@A$2BT2t0%si8L3du{tIaY2>>A5|{!Y zlLZp_OhFNVgyWF?GRz&2+C>2@{0S#?JWP?vSz`*? z_e<2(Xh#&I&{-4)RLZ?Hz%W)6$l)x3A@-MvcnN730}%!si+o1Wh*f?ro6Zi>!Vf1C zF`FGhQ6RyFyC^m&cS-*l%}A(YEg-mpdV_}-Ji?fjToK?9DU9K4GMZ`BX7n68B(aLD zM1|8Y+aTL+#N2u#55pv^>XMCQ3BO3DL53};si-`7(y7g7zv|Zc^S@k?yRo}{c`?)4 zH}2`}BRA|Hx%og-Yj;gwF=KeY63XyDB|j8rqCQIs7!VH@XHe*RI(x+^+eHg88H$T> z5XND8dwso0VviPau!4jV+k~T7#p)3wW*2iEK}|Bvec5?<``#Vfip4zJYh(j4AWGn( zwFOfs>@>ks;g0&K@!^Nh&sC4fj>(>Q{h8E8qK`+ZQgp`GO1XoiK52MMb|AuXZbQIV#?4HtXK;8f35xOb|cr z4>hg>dic~~{+E92Fl&q%nTi^oc?JrTaRXL?FqinDEl3zl@L)4t%wy{tlHg&1%pwdR zGO<-|I|&=s!kOZs2_Frth{yy8Iqn2nhIqn)1ZJ^tZZobUv=IC}F-15Z4;2#k13W%5 zIRbd2+Q@xHK;lkAU2H_OceqC;;l9DV4s2BW^RC@^yQ^>GyiA}}r80Gjaw`4sTG+*v z+{?hey@jYuzc6juHCXvnYp(M!PK%AfqMFtFms$Atc8e)PLS z-_zH=7#w_R@nLxSN4-y7`!b>X$!lIFbS?YgOGD?<9~=Q4PyG8!!-2=I_ONg1kHrf{ zUOy55HjZ~Lgr}N6JS% z&dG-X902z%6d-&4`Lzod)-7CEb>)=|K>=VWwID}>XYh1zCeqRc0YK<_1iT!e`z|kg z(d%KyRadn?{y6l}?|298(NLOI8Y)prNNEV9q`EW;1sni@0VpApzWn9N$&)F(P$tibM!017b;f$cIQ%kj5;ABq5(!WFZiFkL2ezoqs;nFE4vx zcnP2eKI2oLVqyu7JB2q@FEQirP{;1weipWQWd7$r|6&?F11+oIEl-bi3#9w<)$!JP zViLE^0uI}eU{C;rcj%DhBaB)9@WU_wb)zUYb;M7$s*0f!l=BSq_8#1@!4L5+m&H;* zQvFiKpo=%Xyo;mY;e7~I7O#TIp)rGvAX$V0KR`Cg2GJ#XC6#0c$v&}zJeM~u$YF@6 zm@SdEQZTc#2s!=6n?}r?`|P#XM!DRS4}FMTrnWgw;=u!m0g5AQ000mGNklNy{49r3jV?;58%fGp zCi0 z02>A%1mT=7>_c6poMEh}N|Z5JA?U0f?YII{ksq?Ok1TBX$inQ~uHcCPOAZ{Pr~$AI zluh5695=R@SvWr<;XTR;5JcfdA_Qp+p_Kh)B0i_^03ik#Vr#Gp$Fk9w%8-$GUq>V$ z7Bd-?A3A03BR0D2KX4k zWi6}0(IC{fMHz@z#wHGcl61LyT&bM!6pM;M;*Ns@>3Jt1CX(1Y+=3@T*hE^)!(*B` zM|*mLxHfMq5mYqF^~brsjhzRoRSZPgO9mVlWDCg57V}SKGTT#yXE(gA*N&Rq)^E4x zABlUO-nsQhKU{Lt1N%RBUHj*Laq#NLYd*82>A6||_^T-&U(|HY_s_bx+n2lz=6KSq@n~HW)K^6v78ou5O`=AMM#aa#&%tF;e8*z>ZaFSa{JgZ&s0|M z#32<$xhh`sR)k>)a|!(17j!9c5B0&4aUAR*>Ed={4)z{AC!f#v_Y*&aD5^n-XPn6d z03FcjA_=RYusTi(QG|yHGY%R!O8_P$_X&pr98Q80QGOOg!l_>3A|eQJ2silc(R!>o6wkAlqX_c)mK&dduTJL{blv)`4S{VrM$ zm2=+xQZV;@mGeL7q3Yxh9}T&aK9oE0s>3kvy}5bstvd02$AEe7sq!%QUDb2m2~^E_ z2T<+Xx$mr={pZ!Q{>;J5E31!!nwf9&P(S+$8(SUR>vsIW#$vG;)QqzY$M4&{qoZY= z3y;d->#uospubKW2Lg`Qm0jD2C0i&Efy8hGaR}&w673)lx0C45L0$TnkRB%uM&Mg3fO&|a`EnN^=poD;X@C+U=Z%gzNlDqQC*>~JA<9pvb z0a(14Vz|VQ*b-Zb=n+pZZ_AlI?nl9yLhHNW0NvEIX*2G=8@(RJEnd9oz3*N7v5z%> z@rw+>1C&ppdrUyo(QHtldteq_TDl+rI6&98sB3@l!3}@=w{(I2-F%eu*WH_Zt~*R3 z>`a1rgt;Ufv=9N<=z@?-(Q@0uOAF2rIJYn<3p`8#>61vgAd(`$0|P*sLYIVt6a+a? zNQmi@j=;&RjGP&a8XZCyf(~=N1c1X2pv40@B?d5&><8_@#b5f;5w$3V+>X_&yV`if zkIuuu%TM@AFk&+4_u#d$nA^pPHu2+(9G*4S|vnNuYP}Y(TvNcp4L=UwJ zI24BPKj|hrMda{NO##CY{FuacKPypFk)AR{!b%MA+K>vFA%L2;LE^;=^)m@522p5r zPn*`geEHp9`AT;u^R#8vs*1#Kc#lXx3t@oXoJ9GAh3H}ybVNbq3T(_Gw8*WQMNkpC@Sq3^Z0s6xGFM#j>f7%)@4Me!@ZIm8b{p8oj9d+z@Yt4Pajv0ok1c$sOEY6)qKVgnINQHo5zMwUb5!-HfDMjZiMFz(3U z0Ze6eo`LCzMLu+-!B0_2kr_}th%;jIGQGxh7!w#*s4b{ZcBRj(C90 z55er6h7Z|v3_yEcqOQOyv?CUcAOMSsBtnH#$1FC24MI+15RMMa9vhFg${AA#f(|1d zD^PD#87Ly#*)wB+A#cffpg~BF)7ad(i${WG# zYUYB9gT>sij&03sha^_Y!tp?gj>Lwtt)1EI%3WKh4%GLUia|Bx74SrioviQLxpz;k zwJBE)#zpI(VB-AxDD_;$_I@pRV9D(1!~46QKG4&=Zo)19b=m40K0W1;3s!vP^k;u^ z{4MVo{_B6r{PLUYZ~V!s``10RW6FJ7k2k!K7G^0UVFo5(cObXENXp9nN~+%=2xJ*cX3G7`9jcx>G_hxhK@Iex=>tU{@gb09&BB~?;=^1urj9F`ur6%mJn5_dkA z2{#P&D(;1!NaHGilbGz5s7T=~N<4gFFC;Mw3B)s@ON4U-xILglsg%&m6@fQcI}9-M zD2@AsA-Vu(VNx9T#qmIFLmLmbJe{%B!yPj0_)eKBnZX_u%Kg+&E!56_;7wnw89z=G z!&PWgHk;M7H)#IC;JAyFKj{AHZ?WHuIw_oZRyg5|aKfp<_){E=nI9Yr!lQ^#jt!&d zg$V>n>+mu2;Y`IPTnF@&X{7bS@AiEl4CnF05#{#yYJ3TnpEiR?M=QgIqJ$QQ)9<=E?U&F zXi;$kwS&9M;CwkyE*XBbmnh%>U0MJHfCr%Kp|D{?%T-rZpLpW9_rD)MZ2OD9fDQwk z9svjZeF~A=6Ce=%C^+Cpp#U(`a@CU4Gvud`X_clh1V1-22n-;kVpVeYIBeuGNMHya zQVQ@;F5>|w-$EJ`02SmSgA)8?E#x=kM&L+85iOh~B}gWH@s^A@|NN9x-yWm^kr;ucg7Y<1%*>~6`N>54@Hk3E@5}P8y@?>Rb%Sv&iuqDIyP@!|GxKr81Ov}g@b;mV8bydUPJ5edhY31^V5(Fr4GUBmXtlJRm$9K~Ga?%I8Lc%Y z3d~*yI@xMstnO@POyh+9?38?FY>=%p74@nZrpgfp$c;2rBTdaXRgYEWNM#$9tx>AN zgpr|~6VAsj>&jg!-ni&WT;X^tS-CeeMgF>?*A2l56y;vn78xyu=?#1L?apMOW+iN9 zm*r-P`H0?Knd{v*P!;F;l^s+~-qsbR{x~%*-15Ye<4r(GWo#UX0=O7g7VI50>HgTP zeD3Y(VovM3b`IJRtq*;;Ztq|J*|d**eEL^EGwOQ_8^3ndXi9Tl*IM zc>QPJ(sM_{%4Y(Zyv#x2EOCYAC7e7Udr+2_x3rP$plpq7!P=s=gVq{rv(~08E42gG zQX4Dj7NkArp4*?!q|<4Z1Cgrr5U@J1gv5|xFJMa8AP+$@oQQRlq=%;|mJ`&eJJ8-f zxuT-$`R6gUQVIab5@CboMnW;A=>e%1jZ!B0Z#Up%l+KU{9vBFxSvnMQof7eumIyWw zp304tAvg(arT~blm)1(7tn;c6c z*6xt4wsBf^m^HCA!;EpqYImmy56j+a=R<2)a^;MvswavS){c$GUZDPV_3lyKB*BwE zsH!pU3(|#t>Z0EQabCv+8|zPSv+4k#o@k(*2J;RmB-Qvh=>B9ms*H)ff54lN1>EgziY3$YW)X3 zKpC9M<)(b=Ta3a9cxI5_1H2F~p@f3~B_gK4|$O#JvuF`^Y(GuT1Wc5oew` z^=n@z01cUq}|BJMHq?kh}xB;?0CRyC%uLl;rM|A1w%t(D$I28CwVzaAwt1y zaEK_vX-L3eB+zBO-4ZPfSdLPNmB~@U9(V*FB~^W7;U&q^ zHr;#g(pR1R+>hL2m(gdQIpu3#M;EKeO3cMD3}y;DE@nyK&{0Ph;CTTHL?CqhfZkDw zC9DzSQOCa2NThYd1|hU65zAVj!^tdg>J7pJY0pSVu9GEZCM%vLi@*-q_SkN)wh_hF zP;ykt=0)Xi`(>v%M7v^bvBgRo*B&@f7Zpq@C0_Gp8%*VJlN)7f$C$eDrg4%PHdP~M z2BT)tnudwWjZn5$QC4Bfpb7cnmx_X=fLO&?M;GuowXPM(E=7(5=y8&07HnKBR@LX@ zBKyJ|=HoXYN_K(nwuuwRtD(oH25olGR^-)KP(?xJjLgcXR@GucYy-s>IkJV-x$Nf3 z_6=L#v9dWguP(oNWp}E$^)(f%Ue);I#8JDlH8rDWR310GXV#4F(@##FF?ZnnlXUr< z-ESGU(c8my0TG*tXMpD{oPud`2b_m)1QlXQ)(HFMQkTT6T4{eGhX~{$OQ*!~ zyhG-&ppIzdu)s+fJUVd;C#Z&XOOfn!_v}CfAz}&s zy|NHt#?=S5?2|3Z;5==<`^i8-^_=5fgdE%}LNQ(KM&m(O>%v1BOa%7rb=Al~r+~q3 z6?ii|pyGh5k$m>-+hZ2V#k>=B%%R_dNG0~W0*eLMgJXgT^jjf_^xuS+Q1KGB9n;{K zAR-EQ35MS~#B-2_>0;mWJW}Q+DJoqZ4nIL1n~0Fwxzh_$>s>@Kapp$5H|>cff~qKi z5ScKfBoJC9M9xtt1w)q%oSvt5Gmj99P8TwN^#sf{a}UR%GJiaA*nf-w{#}C*ezpc+ zoyUZih>+6Ie=`V~UJ`XQ@)EWk)8LmNA_{m3hTl4LbR1?5$6+;bBJI74*AsG=l`Zye z@)^xQZ5@nmid@Xz#iH`hf=?0736_bLYYj zz*z#izaJn0r2q&3;^lyp0189205&YIBGmzPmnl4i8lwQX2XKZ(7jADQQ~11oMZ`PGq8a`$x7r{+}aF*&}9nuJJR4G?SKwWD#Jw&eS7vd1LdQbX7ClY4n& z(z)lBMnN{*daI`&p^>2y@H*P_)K8$WEs<4HihK7+eqTrd!PzqZ=hnGD~t( zIN2Rp*hN1`+h=rL9mEGZzM#Tw9bP*&Ni8{(QGUMkZP0uzR{uB^EP3svcy;3kKX6kj z0G|Du|5qttAwrmfQo;jM!Lt&DF`I=(Vvhx~clfYDZm&TYg_DI)exMXKrc+>0Ma-7V z(y-Qly^mO5r|~=k#reoU%QNKMPCa49oLTeF zJfmsmS(V417mS^&#tF*QxVLarZbqWGrC4(iyN`c-Y*_@3q_u8TATB*s94ju!mBB?7 zi*btcc6V_R9%9IBRZk_ds08^eWx2ia}KtG`x@sM%DCoY(8-C zU}S9|YolU*Z|IsM>mub5?Q3(DJXnZX6Z8b|4wgEC|CLNr(?~~(?O=W|VRa)8ald8!hq~4}#QhEq z4vws@u6yEfB8Py%V5}+_c{3`FsWzq}dAZ8Xfc*psH87FvW4=lP;ofJoQi4wWQ@(N) zAc_Yr@bgqT)s?FM*Y^^M>eF;Tlv~$^d@k5C#b?t1gopfBPp1VY%vQ1T*97-6LvUM7J zwyL=I=R05_0yfFp}NzLG^V)$P^_$j_c;}L)%E>2_lmTn0+ z8ev+;1j@OWNc~F^UIID7jNhY6xb_}==Di>3ShHT(bA&E0@Cf4X)GbNyo}qpD)2YoU zcX|BLvs3;1c?jb6o!w6)1XT_0IUPJwR9~B$G%ml>e@eLF{g1CTa>tgIekcKiA}z-- zkUJwLVc^(8gak<#FSX4}*xJRHf7FI)92o?}eoGyZqm2rJk+Z zh{OJU?JqkH6V)%X@wUNC1bP5}nLv!ayg1~(s+csszvXZoc0A65!I!D#zsnZz+wB+{jAd>6aj$4KcPO7cNY3MRP%mr|Fur zsrjtfo)g>D!iD59q#(#41wm#;!m${McC>K6li^_uMuLz4MG`P&x^>Wj7ZXl4#wakktN^AO-+TR`_t+y|{0;E9i!Nd! za0JixMT;N;)IzM6%#X5@6w@2V?vT5&JL@HUw^G_9@$wdTu{&{>U7u|hNe!=;SvVByoa~3ZAKx~1(if!$*X%i(x5jngk{P3pcD`Wf5vHfst-xAwd z3m2lAf(kPl7B2kD*uFWomn1{OuUU*JrcmGRm_F_O#rVo%{F-9?SH<}9yY43UWg>Pm z5u1s$lRvuf@?!j+V*I{h+&6t%jYM`!F#sEt+nA3oe0?!~cQO96V%$4@8j@>2y6|nq z_)W!__5;QE?Zx<#r2Cd)ykO%ds_0Q4T?i447Z>A8i!obF?N=e4wPNLk#rU#fJo=*x z(Mx<1&w>(e=(k{GLMmwnF@8h4}0Zo6h{a(A_tPo$3@UWqX!tyhIbvIfd z&iLUq_zmMLB@QZM&&x z46EzX4fVOk+A-tnXH2R&XLik-Ps%QOPvbT3AHL`VQ$F&>`DeZQb=7lT9gLr&idv(f zHP4Jmjp?Zh`_t*cbat?^s!&%GH#EdeL1)*&-rlseK~aEyRgvFOnOpJno0T3ueoxoh ztvzGyGjD5rbo{ussQ#dddhEf6Qc)(#jtgp|^yFbddbctCsfzB^Vb%DZE$9VULpw{6 zA_=$Se>N+SXra(8$mP~}KH+j~RT6;BuyKTIr0k?gOKPgZRLYk9$Wy%Hi~s--07*na zRO9$4L5wj`I^yTRfp)6jVxf?bT{Fbu@Hme76DN~n{AcO9PH%6|8#+3@(^3+8u^cnF z4X}`)N=rlt0W(V4AT>(RSsF{=x@V=hmuF;z91qA?8d1TK=Y20v&6p1VObN;~sa0aV z2qa2b9WRH8B2OGA^+?Pm??XEt;GV}GbOD@1_7syCg~&OD$gYR7^@?GxmGYc5tL`Oh z;zCipm_=7*wqouKxj{y1XI=sAN2l*Lv`UF{3+SO>fa1aPc-*&0BZ2n#(e0rHzU;O9FYu>u^`r@ft`6a-W6FmPywLcT zTkkkb@YO}Bg}DR>JmlL!;Rg?%@?tGp)3;x}tva~Jz20Zz5K;oPdYpJ5DtNMxbgSo` zpvo+RD(1OY_B^)QABVt^LZ|i-B{%S8q0rMq z4ncxn;BoidGw~CjsF_2u3QerB>8)>_eB(_>D@ZB1+;rUC_lzs!NjEi(dh1&!+;|fV zT;Fb5@*BuyU0mYM&kN44ObqC6YwKUMs3OTH;0G|31ezJx15Ta+KY0v8q%X9{1g0)r z2v0feT(k&!3F?P--1GFbw3LQwMvd}B-;e?NED z=Rcp$VT+%qT}zhu?Ksqz+E=XboMcOZoO9^Dm^y}lF=elmku%ua+xx%+(19a_hdLyX zAz<8$1Gsm!w*CBP&;xY6c0VgvGO>r-!jR{Y zK~g}HNc>NoLkT)xA_3)Gksz{n=YIVgSAO?Fl!xSNp)!>gJ9=Dqiq`{%jOZXlfWYtp4ojlg1xE+c2Zh zUrg5==^P@V3p%?{R86dI}vBZj9NGL?4QuGTE| zVJ40rt*Cw^vnOvaeCpA&hNrr_ws!CD*>`2;rpXgJvm*|Km0dy9Z?q@wxynZFjb|anY_a{;I||)ht@qvkP|cX0EnA>G^PUeg+VSjjP&_QV^s#y%?x%GCCLr~SkP|K~q*!Z1ATduxl+qb^kdf#t|!=BBXh`ndt^C6~# zB=8Ewp)HHU>XT+woxmeULaNxirPJmME_hy%Umv}%h^kjs3CH+oh1sDr>*ygUy_+^M zD^<%!61`(U(`#PisU@C+$=h9s;fv22XlXH0?a+TusAv6px=aD6t7!r9QCff@Yye6E zdz+gfG6ZCY?C;&o(_{$Zz3Ze;e8OQb{7vO@Bj58LPb*oAC{HQ1C4nVMIdX(U{B&%C zr=rXf%!63c!srpu-_inwdlNPfgkAXpixQ)ulqnM%N+TC99)9t~%sm3AhtpSF$t-wA zU9*_t{|E-UwR7gAuDBAh;2!#tKTs;T`rrQcq^AQbR`}$D#3hwn`mpga&?9%bgP?_E zdQhUpY(~jifcm7?@vC>4k4WQ3TP$sH6yCmWR?1y6{hBV5Xfmb;29Y zt2%zl$hsOTl2C_ajw>rx2YY+Be(6h?3+ zi3)^mLJ)Z**(9P!n%N^}@g(A;V;zBPE_c!2e2U0}CmuSU?aj>yA*sbbRnlogVSqpn z>@OMc8fk(Q){q{1vTMoFxtK`{sCh=5e!3$K{qA46a#fNX^O|~0lJyb>#UZ8L&CO_} zt_vhq!RioYhemNYFDEfZLzE$@Wq(^*x{tD_`h*$GVs*JDa%>%JYa>J{5qVNT7!XJ( zH4;jL1q&v9_H*alb@$XEM|Ex6#zKq)8*XGGhH(TMUKk8z7C7|4rcId_H*)-?uc0vD zaMcX)bTv2QhpbdJL~&AH_}jO$g{^Ej`4msyzhS*M30Kz-MbVDu*V&}9s+NglI%S5* z)XOx;)loQsUE_qJt5RZ7xC19sE#L|&6JE#humi(zNLr#$K_kTDM1a}jWJ9ScP;5-6 zHFefD1!ik#+5$CLJx(1e5fUSiE1fD)hny(eXzggLNmiq6oNa4us5Y7EbX8r&@WxC{ zPW83Lv9+eQ(u9GPWQ>Zj?aSMdHG0QM>F>OE&Y7=!Lpb9MQ&B4_Rfffndrj$55XJ5d zu;O&eG}Tqlm@xX{b55Q%dUzC?Vln^Nv+K4$zse2{z*!7a8)J)f)}E8H$#+|D1+eG1 zNj6{Io=$gGqoy!{ z?(CltJaOshhZ-lEbWOp8{nmEIwzF7lEp+^d+BV2cF!hbW?5RO!u(vp2z*3kgEz%j` z^WMZ)xHpstC$@%7QSt*1c3O!@4kY#$et<4Rbh~P6Z#5_9J;U=I(%2#hKj zA_TwT!)l4Jfq`yka_z&$3RoJ~0`$nmfVf7U#yklkLu(}@?3Q>0#u;QeOy`JkxM&GQ z?lI;9#1U5k475B@Lt~dzBN4jjC8TSm5i(<~S#Qk@nI4((?*Em{U|79ekTlu2&c+pr z)3#8I3%ehA-W8V8#B*oV&Y7fmkmr0dp*0!#BI+et9s1e6arL!-e`b3dciSO~;^K-& zZol?(r}cEULmC|D1HbmOrvP^@{xrnv{^d>J4n8yg+Rw~i@$hXB@4N0_z_0!E+=p-d z9;7TEwV#}H^VhE2^vwODqD$b;MIXKS zt5^8$_I1mz{lvuke)2iwc<_{mZ~Xd-`+t7j-=8B%A8l{lN|%-{oOdo-NEcZ1 z_?=LGZ`ksmKY#i)Zv|Rz`(?7{+V{jVkONOV>10ZKA9}QB^Omk#?_|k!Gp3!s!TrP9 z^9~RZ1Ufe>WNrK6zZQ1wrlr$%$6d6$zWsfKIB&QbDX$_|OY9cT(*X}SZFJcQ~9`$ST1h{@59IOgzXC8*XAeSTlEO(|L1b0+jB4a7_whC0Zi|a!4q7 z;IMdvQSiXoEhBg2(F{UbwfDg_$e}xY!5k#(_liTN6NEQ^Zz0im=Z`+u)75_6zr5K6 z-sev9EirlBzg$kR!3jKk+ttM3_6@5_ad`8$Kd^nnN`_WEd^>UI;o)1pLp%_K+t)qC z5I$e?#ILUV$BPIgBCrH^F8b)wJOBNPe)tHpG)ujAw=N5 zpL`BFu}2*GQK#Y)6KUxZa?oMB`KwoY3N77Z2B!~WMm=~Qgd72@|KI0Vz4hJ8&V6mq z7Ook$4gxQlGI8Id)WC6m(-y+A^`76j0cq?TEo)h`X4mfK zzxf<&dmmoXvvph7Eq5e}c!59Yf{=(Ja$M{UMV-UrLp%f_@ZXL@TNa1a^QJZ~nC;_m zA5ny5uM`l;uav4k0zEsfx@w6rz}k;}tYi*d56>snMX6HVb<<6c8w0dI{C3GCyepHTmYp^$qc=vDRl99$LE-GS6+!U5B(3g?<8=K!09O^fxYY3LxB!d z4b@ZwLq)}ep^Ub3_39_5PX|EY2Qs6m8u+Wjq7qS#H1zBLp)y96JA|$W9D+%8ryR;n zu>>2K3Nd$-B_%E1151qo@WV1=@IWYcT`KtjN6ryqeIS-E5S}qZF68KB9RL6j07*na zRN8y*y~~YReZd91E>2{K>Bzy7a-PQn^YjH56naTW99QEhr+BfhBW035h$RbQDCwzh z$r4f!u65F&ez~+Pl*o97N%aXwB=<=`c0yiKBay3ls2i6&I!$DeKke0O)- z>eVIaTer?L3_I#8$E6|UM=Z&zJ5<4T74n^_{@!d{gOZAp)a^cC93kH-R3f zt*os*nx|vPIV6juVEAyN#M>3pLEf&^$?Y8#CmyeoMkg66bPAX`(pi6f=mAjc>ebgA zKmC^Dr{i-J0pm_M0e)b@Pz>*0zrNAsmy|Ig2c5oP0c__un^H%1LC*EP-g@18U5W(tU~2aS{t>I&nx4jvN~8TECu1BV@-9 zQ8wOm({*70{3Z-;Nd67*k`I1>y{LVmJ?ypnO#A4eZz3FQZ6&agj2V$cxbmccE-?3t zUz+j7FODgDmPELcrehDIxVJh9a@@ZCgCG1w7~UQRkAD2)r3L;h3?4`)l^8R5bAG$HxHmt`Ivi}lg+s!xqC>7k13T{sY|B(v*D-~?| z;0Jo7+|czHc6E)Bu&3#5SCkCsdGJB11?1pZ_60f%$8u^Xjw<)5laPF&lp(4Jb{0S5 z2Qv34sbLTpN-U6i7zBR&$sTp_scX$XQCEl?fEzQmsxe`06b(y-Z8B9>Y+Nc44q~jf zS>=niSd4+78284u*xD8iZp~Cz)#Or{w5_U+N7MwhIg`zp*xKISJOyoFtdR|j;V@6F z*EilWdo6WZExANuU%Bs z?j=t_g+ifN3`dMSXpt?V0M`*>p!`y1O#lS5q-qRZ*y_%~uaQ zY5L$}%WJ|Yb8R;LT(%?L{qC(Rszz4zwQT549o+QRn%l>pc|qm)IZ?wTMcKHpx0v5s zEVRbOUHSIKvfYY?S;FhA(cAKMQCBD4Ch+hxYp6*A2@1xr46N!;4n-yj3{E2Zg`XJ; zr2z?qS;P#Bf98Vo)9DN@h~wDCacr$~am-)WOa4&s#>F`9?d|RE?#ky2aqP&}!eHG` z(u=8hEtHrZV69~etubcTuAL`r-hz2RS|UO?dLRdkvxF{m48|C&!ZzN=a?fBh&zl+I z!r@ZFZ0PX7uu+0@wM3*r2j}Ww)x;;r#6-mgiAY0BN-hFB;Fq>JZY@`a}3&U*BQ&p3(+*DU+> z(p&y&?9A89f6YG)pK#L7jZY=%b==;%t*!a4&emnETh}ENysqu5e@Zo?#Lo3gZ*vkz z!2w(mJBDX|_32H|JdiNBuHr)Lmgnxf=B?Svy7{m9GO%m?(jHgC6n~31ka-kPZ0!2Z z59i)+?S#+#wF_7rWs3)%e2Q-SZNDsZbw-mX?)uIT_CEY*#o4Dh`PgaMBY5+&cI7#* zU3ta@bR^sG#@9^vtoyX;TeZ67mfKRJM!=wA-dXPTy1B9If&lCzz#Dad7rgyR#S4Wg z&I^c)g*|YVz{`2@HmIx-VTBMA=4MQ*pE&{ph@ZAwA0_ILN(-<64mB}BGy))j1ce9( zVDoKCf^O(bt+yVE!`j)Ss%A_pY585_@PQk@oT;pzf8pN^96a#g&EK4N{)fS{xiRBs zya}XnB&RCT$HD<(AnDP}Jm)Woz1m@u?)%C6TDNoT;%wD8LJ=4<`9v6iM{oLEPbbF+ z6fk3^o-+S6|I{@3(%O-yf=rtC>RD%9#=u~I?*sq!cbQxR#DU&@4_@~VepBxI$>-KQ z_|Fi5{@(rD)=+uk73)W3lkl^JHILu1^yZI`op~v2wZkV7imhAMh)t2(GH@t9IA<>S zyUi=^?jbliT(kdteiE)#H9YAmI)0`MLCY_A_!7_j(RT>Eo=wdn#^OTTO~0V)o~PI% zak%%s2f$q%#sy~*JWL0d9%`7p>0KXG;xXcI^1uFlG-cwhZ!g;W;KLQ?obGfL|B!K5 zGi#)e!#%e?f|Fh`AbMXhU4KN1s!lv~9tPUlN@j89!E=)*(*pfFcF+PHOPA7?Lpje8 zvj%qTfa1YVG0C4y@|Fg)C;7HB#EPLW`1vnILt(T8B^6#EbQp3|rhouF>(}+^+#@W3vz(1t9-wn|a-Sxb z1U+|MGK8FxRV*-)`!I)CS+>C1g$u)6&drf_{>5J~tMK3h{w*}b!Hy1Mx14ADU;c%Y z^WX!e*YbTG9Z+EQP>{X)k+5>x@4RbB)J9WHx9igeCn_N+HBYmZrIQ|bObtg?qn;8 zocf^{-k%(5HkSt+6Be9bpUmAcRKlU5eg8hrKX0Mg{hFa!&;e3dT8up5h2MY9_xAR$ z-#`jWY*2TR#j*sTG<{E^luupG0xyC{c}cq)hJ<(S*nwoCu6BshzGFv5f`+i za-y^}1v7w#dGorY(evhk13k-^qn%lUG6!YyGJP_`Wim2#FWh3se8UZR2I24*B@Cd& zLUe`6JGzqCgKfMD6SQn4mL0wxk%JATh4k*&(U)viiLz(M4&*}w zFd&oU^z3zRD3;fV_FaS+6^L7Z7U z(&-e5fZJ}`0Srg}6@>*r9l+Gv>DF~c&SpgVgL{08y5;erfpZt`fAppL1DRAX;$h@MQfVZ57r#NE1PP|WOigT`zo^?xr(0Zs)5?7 ze05!AW8L1JeaqwY7czTmyN}=g%qdk>(ZLN}yZZ;vOWk_j^yVOVGF@d-RmX*ulT$Sp zDX5O~?ZteTDeNqC{;YREQRVmz-TAo(I&cV^!o}Dx1ri7?##G9!2GiN%T8ZdYvI~Yk z5_ux$iKbX{+IE`Q<6uDAZ0ufR#a~#LVuni8N5Y!|B9K5)$|_hUVb4}U;e(l~IFjh%4MK&(OT4j3Svj9fkkI9WaJ+=@P{Lg> zU=Jz~*dbeE)MeDJpw~r)bF7iL@peiXMgbeAWv#Kf&aRfH_wj}&)w{u%*d@M{LncsE z;R1$eIU01-k7W^rp3j>d-nwH`XWI&@j?K?L=(q_vY4nu&C%)o>jcFZ0b?Q@P6ObI$;_{nh8jyq8xRmQl9_&J5gW=RJHopu~IC zGmlSIS1~f-GoRe_-j9uW@1M!SUlcZY!-|9MOXHLx6sQ!vyhJVbJ84i73Cwj+;`cl2 zNH6^L^kcR}1+kH+GeI2mZcwp*-|{^NJ9{uUlyE4K2F^jI3(y4!OYSB{0TA@jdLpC1 zU}w+%<$IDi+=ygnHd@ey#$#Fn5h+K2Ee`ay4JV?`zVwoJe)0A1`zIG>uX07{u+c8e z#!s0=n7&{Vb|n32^A`|@7ybFCYe$^)?4!3NG!bCHl(}d5E)jUo;!g|?@UZ~FPMLcq zqcx4=GnEY>Gf#Wvdc$;?b+DecIQ3YzVkzz0N(f5GUBl7wz~++(I0<*`!DXw@7>q%>T~7dimRY- z2$9a)_xzM=za;`mA`UUL`rNaDZGZXcBo1Ra`{P5q_6Lf?_9yogI(x9~6$66&71Q-c zq$pKWyb)2kmVwQii7L8 zY}-~j^pJuF1o;gcm<2;_DE}Tf&>l&-d50ckbgy0=Y}mln97!df=s-J?(O80%T<$XJ zgCFvg{f|9XEth-@NMt``LfnhA;2?ZbVO2U|%_lh=(f}wx-H;{8xY!YhKqS$=1k?`g zyPvpk_39U6F7y`;4!F-f&oHWNyYs!hyT9}$=ve6G_%=19on(tq;IO)c;|O(=KmYm4 zCNi{Sj10A{t$XN2E_06%9_sMY#$0&ep*hK)*0S$ER}7t(WJH8bxtxX*PC)VzJl#u{ zKm^DjDO%tkDN+4WRU(9dW`o#VhzF8SXihJ=BQ9&zriA7#ap@+Bw`{>GO71oZ%UPG1e%PdgTedK_ zwv5uZWlKix>L8YI1;-eZY8EUwyb8G=9KvXJ=ql^jwhiYvPH6zVKtsQjL}~&Mx76Fe z8a3+PFns>nYuz-dEeSbtZeIp)vRD+J#|#)Cvdq$j(AV0E%~%3YTxMjjc?-c-B~=Y= z_kq=`v8TPv+jjF7_rYF9$tSbI#5@ifwz1L^K62e(W+2uHvA9YC zx%_WOrmA{HX{Ay! zMn+^d{K~Qkps~wKVp^a`{U>k-MHT7B+jsBl7&(fqsg@!MKd}7WVc1?t3)9>QJNziC%3xelUb~qs=ihtT-PRxg&DB~GtszS;&{SCq9&_s$}SpS5bpx*+X6YX5(#N{(AG@eSwi-XPz8Qo-pimuAJCayoG*Onb1-( z#)EQ@PejG|%>i=&H<}l%lT5!1pp-+|$kFJb*gze@QmC*41I^#R)5t}#Nw|qmA_<_& z)~2OE?q~$bD1ikL9$G@tNdA)u{^mt44h#RiI2=3uf;CI7zIoAKY+L`dTP*7Z64i$r ze+RncD52qA{vK+J!^h3-+~)$Xzh}p_pPmb>c<5Hf0Yas7&+>0h+Si-HL7Mwe88n;KD1S63|w%u|8sT(l@$aQHuQOssQ9JLaJR=HQYgj$Onm|!UR!tH)Q)(DG0_`hTkc^(@gAGB_ z6N?t%BDNbX(}tF?;)g#-23>;zOd)P3o{{2N%dOZ@xkjxHC zkftGfx`*ruYidwhHFTBrY}yDj@rnJsCc+ym6HihHLd0D>dT{H(nY(w>#hy?u?++x{ zaBo^d0>nD0bRq0pz8q%EcIT_i$URptGD*c%b3E07_-Ws;zCxN>#0JJ%Rz|D7iFP1zlQ78sY(` zk$@BY*v!$!KX`+Q)Eg{{B{WJr9UxBHT;65_V@Q<3*i>3qPSjdE#;A}@*Vfe9+PWEa zHDl93E>>-M}RWFwPJ+jQEb zQj)QQ#bUl_2jh4kjtjB{8|Q7@9~Z+Q-dZe7fA60+UGhd#H_SwlLcAsUhxc-sipzaT zJ}hZa>~IYsZ*2JKoH;$Yk*TQ47#0u~Oqh!E z8wR^>D)ugm;{$ubh69hcSGH|f|8W17o$1tp{W#wkrH!hL+*h%M-NOHt-mjhZ5$V4s^6HuMH+DW4k`b&?x&1k!96!fY+cv=CUUHG zD0E{?rjV~%yQU$wgVt^|hEfv)h?A@_oa^VU)>;fUQ0Vr{6ph(!%r0XZjA==b1IFw% zW~MPc#&j7|VazDweuf(p8grI0RfLl<6O0*Y%z!Z~joF$Y-NsB#`0I`7NSFg-@Pi}@ zXxB3AKIgVad$7-fux8G}-8iC6}AwOCbJ4Ol%NXlG#4v8~*)bN7;6#b}fZ z5~9U~vVp6qNN0a5$p6Id4|9j0dFAbsW}i2H%FNo~bGNN~QUtHG^v=&;`}b$IZGB+g zx$h7OF(B(6$`GX>K%Cc*1kn{@?WX0|T>E#kDJN#W>JwGfb&elpah#6Q^Dp@VP&?uj zm|M53qc|Bgapr{MPXXD!?kUfC!f9`yqS&5iWOAX7j5uCcGbX#NkriYSot_N<=s zFP|BC-WezS?Lt~cp=TTGpyU73Zoa1O_({NNH~-+IUo4(`{WT}uc^wr?wz1}{$M4KG z)WG2E#ADPOv<_lNDOrf!xYPraH%UjH1Prt9c$L3`lW!_a1m0()HoWs=h4=l zZM#!OgZ>B`)QIbJ0PjjEX;88WBqI(73FQ(b=x_&e+sqm7-?n?tBfAQzkw|t%IxWFV zSyCRH2m);J+}FSN^w<7ikJ zoUIx=|J9!b8b?iVQ>07Y`_!zV4h z^%F~fb#1buAuU5Zo|vr~PmBRmPWfOW)3e2H)N?wMFmH$s6BIvGY9*o+Apqy%@Z1tZ zTqM%w{`~6Gesklnljodv%e4Rj2`8~fyb+CrpKnK=cLsD?rVwW5wXS3r#=h=?Isg2r zxz~M%I6Uov+vfc1r$;V0=2a3aDYGm6ZyZg58#y77d5W26V zx<9-wlbBFDR5lbk`MgU=NmDiS*0KDn(TBh8`|PuD9nF(F)-10Gevnj+|F9D;oc)zS zdsuAprD!-yaI^}BvXds!dZ69_sU7;RsjtkT0J$Nye*c#EShm4-1iY9-s$V#rwJ@>V zlHTjDhj@esSRH`{Fa&^b^dU0Ww>3wJg)K8=IczMDDIgw3E?#VmjJTzgk^^#CE?ll@ z&p{dXT0>I6`0qcHaKP{7zz-WZMv^yoNKjw^ z$gL}+v_#qs3@fXtm;&Gj=)f7PRviuFKmU1#JX8+-b4O+YQ7+doXU-9jsj2bIRYMw` zgt8ZsJ!{r@1|*aN&hhjTa)i23=br1$JEyt%l<$2H?WO6v?!9;Km%iku`}T;rC7HG7 zpI=k9S#4$Ce`aF&EUGmq1IZ&EuZTT@QqIGhLnr{Ar+|Th6cC^1B)a7H)Mg~g>>XQx z4QvXpV%Rkf)v&T704KE*Q=a?QH=q9a$L{?2$6D{Z4{34fYXWU;R7cd7=o-G@{Dx!+ z&5u7`90S=~C*q2N6Zx5W^E|0%=u0BC5|5oGfA({pUQE7W0e)b|j(&*b!Xj0ljT)bRkk`VIeq~_n3L}7y=HqwNdOG)1=1xnGG*A%4cXJ#Ne~8dDbdJz^OXExHY?3YDfp*MNoeYP_E{X88>(hmh-auB zqV%-2v1?Aa)GJ{sFS1x&?uFMQM;K2w4vF2fVkHJNCNI`dgbLh6s037Zk~f0|vLcLO zl>LPt55Pc|mOW+f(1>az!$}Q14a<#!IEJ&@n1jY-t=(aCAT;|j!C-YoZ9{c!P31rk zGK<0zw(+vV6wEY19ER1YpgR>*q=Ma1*pf-r#C;XnLVZQCiqbb!CIwjP7wWgc*i!MD zKw%U_45We}o7y{A_|9|NA8PL&Oqr=~eM8g5ueZ56lZphN_#u0<627r6n|Ik#l1>$i zDi$0i_N^@x?Ve%7*f`9K5|`qT-U-L;JWw1ksR0}J7Yl7+ur`}sS($yRGP_dv2DbnJ z5CBO;K~y1=*;dUv;ih?~Ro(yZ_0R6EYdR%1oA!6Mww|21{hYZw>c$4yDih#J97lWv zGDblvE7MUNTtBaWWi+tyRejYHr)=7|QrX=*u@a4gl9jEK#m{VOMnV7%2dorGY#EU+ ziOuDtuzj>}!T|GwC!G|g!Z^0nzd-UQc0blN6t@6$I*w3GN?SUyr!fd5{TLB3KfZ6R z1qWnpXIIxrK~TAG|72rES#hOc5=WBA#~2RgWQnI#ga@x=dGv;zSt*woA0^*s##$CN zH#wNBh0hh{j+S@;SuOF|3>#JUmM*;GWOCFu1M*BY;j zQHOBiwjyy6FPS;ZJuW{Ve>W#fyW!=ta>Tw|M@!8m^}NAiz14M zB?^X@01f^4B7}&7Ky)SDP0udv@7=ZZmtVN{3+Hz3UDdq$USB_qKj96hzwQg~|H8vl zW}c){HKLeod+g*>+P2)^-nyMsTQ=Uleno#zOXCP0SK6lIE~E%~=ifha`o(|7tdZj< zXRF3-dG1lzPCWNbz(8;7@Ub(uu33T!zqkhDeA}`+|CthZ z>b&IZozN|jMbP0ncC!NlSqx5@0wy_@g z9j40IB6yJ zo<=E&iHvUe;(wW8(;Nx;CUAG!(FT-L9BcABw4&`BR?a-}tcxyRIDY!;npfT7e9pq1 zMX_I3rgGT6T^l?;c(9{p*i`xGB_vQ97x!*oSvzckz^zVv)nx$Bahx0}oes~x@^jg$ zu}P>T@q<4R&Rmc(*uMT5g6ElY1^x#wI4p5@Wz|vpD^%#b$@X zTM6gpmA@t+g%$>r;A~m{xF0&)N~5Qoj1b^3F_~W8tr|Z%Rq?xoF|NbgJ_u=Tv1;6i zs-m}Dg zoE$BRp(Eg!4nZSqnHM^QwLm<=528Ip`@nQS82Cj1clj7b|48&fcb%oqgdH0~#ofV!aq-plUUycr@;bN>1DbLJck zaeF(X9;%bN%TIimLFCQ+ zIYeP;gEG}JR;Es7c%qcmHBO`S5I?)0TF#DRYC-a1A$Hw=KVAGlu`wvc5*Ff5+UmqJ zR3k(MIDTebxRi^x`eVBxj&p@VTU;1P#!ws>5$B64X7}#3EsxdaQt6b!&>Ey0 zT3*zuU}L&bI;^aWQc=)ri;Hf&`>(!vP0RLegB|T1od*WOc;uxQR-by7&E#B85TKBC zTYi&t#JY;tlB2{9K_u^fEqIaC;b1=2*s*vlZ`5lP8Fi)8D_eIAM3ZbhSPUGiEfxo? zeLfXFnn^#L$v&0IJYSI>cWyHouC7kdO zqFi4bNzU)XGTn-Is#sKEw?(XZR^}N6c?InzSfgNq2`1YhYl8|Cj0}Q&CYv77NO>t@ z!-OWnkl5jLj|R!5ye_DUhY@MRsz+BWxqHpi5AWQ(x@r75^B4RTF!PM7I`^(_-Nu7E zjh-}j=1H$QJOv3}RGgoA%7WVAb04_jpH@74+lmKoe)N`qY?^rf_$jlnp{8NXiD$p| zQ2iO_(@|>P1s~b8{F;Yv`Syy3ZocoQ|AdTLXS}9m{Ua0`^Dq7f0Hpbuo1lA`e(G!c zdv;7Y4?e=Eivocy;Ut zf9JMvuy6IJ|M{Vj^MEC1UDk5PuS+5}Ui}k@9$Id{OWX-Sv47vPr=I!Hryd%8DzN(R z{-tNjR!*xME#?*HabSO2tCKnEBp8;x=z;+BJg3QKkjW~Xe6;+Iakzcc>id5FiTiH)HgVY5 zzO892&smDjGbo@QE9P;<a5q{r~-|ge4bKmBs31`4R ze%d_3^5N@0y5gZ*fjfWrH*1#t8v4;N@4~-u;eG4(U_(gTmS4|3@6StYr(E&@D9{;Q zdiQ@IrziREa_!o<911Wv&{twENBZ}*yO>GhaM|TowLa)Fe9!QE$D!iEjaUE2LrEMG zio~Atb`l%=o_yw+kA9vY1Xh3Un>|~SXIpGR{67G5gNMY|6^9r`XE2!&_ zMODQKCzMR-zW(|W4w4zgy8-@+H=<`+d+Pf2{{Lc!>UYhh?x`eWC7#aZ%jt3jlqfZG z<}m9FYiWUKTJj`JsvLStQ|RpE?qF8w`^<&jL;p|05KEAKp&5um=IFP+)iVt2<|Eso zhfC<8cgWeHFMl%J|G)#ZCEL8UP>zOdnL~K>iiLn@D^2$f!4ja{5;%#WlEHZ3bZfEJ zx84IV00@K`04Wy>=c&n*aE_B{-!+|oM zsR@r~;5tSr{BU~cCasZbPCxVyIQy0?AFKD~3{yw8X)5kvcf`J$5^sQV8GmuKufebtQ>=N&Omb~eZ z#uCvZDN4toDa?AA>e}wTch?6$06(Cz>0V~3EeUU0u%JXFfZMO z9$3B{BdHB4hbWD6=Df8Szr7gK0yWd!9fH`#A$z(uZR|?E1>ZY?o|@Y<1a%u;qpuI1~uM zEhQs|&zbY)Lh&_g*G^9U%hJ5(U-r7!6|5qw63?FH%kx&DReIE+OSNgvoDUX?uP+oY zEfg;+6nm#l<8Z}NZQ1oWDBbeSA=5T!3bista5tBm48oXT!m^W64qMJ!igvhaPW)ZS=BjN`4fG5K^+abEdi zFgVy5n`No&T{iU#8$D577mXa$HOqeR*w*%)%TLx%=1l3%)kW!SU;^2|pkIDgkQ@W&j)n0utv-A||1vLNdJT#VxaNCI(@Ud&IaN8dq0Pl)tl*uW39a3=u80fPy2c6QEbXvjYGbivwc z8Q$U7%V0yFk*jG5c-biNccbi1*+JQj$w2^FCp$7ZEW2fEWqBW4knNVm{k0UNKd&T^bQ;Lb;oGeJ&48axj2L9jOns)jeXII%^U0KJEBy2k`+ zup^;>+_UKOP|<>d4IZee*b}K6UEUsZ*y;)jj9d>t@PfXI%KUk6GWdM)EC^OTlI#pPhH~ zX^SuTx7Nmo);#o?zK(6DUi#6t9UDkl=bwDhqEp`h%s=H4GTwo1HofROZT9@C3CGNw zccPsaBMQF+6jsBMtF6kaQ!f2yW&yEb>Y-;}_ruh1&zgrmO)9eZ;xEoRYBBV`4%WZ# zE^&JonarO0~BOQ}`LClN;=R?jQcO`^Uec6&P8*cJnnKXnX8Q`I*-HAKvz^PiJ?8 z6PNbi`pfkn{)$t3{U^S;=LYp*_k;r-vVbUQ@W@xMX| z7k=Ux;^S*Lhaqa^l%n%JEpA_MPNKC!I5E;gxG1{VFi;#2Xf!c#d#O zY2)(m;&^?XJI=o9KN==aQ;^1 z%7y;PaQW1bN1CAo_E^&AOdusIO8x`SCk4f!UjQp z-tlMQa;=RI!q(Th{p{<0hyz=mu(jAZH~#5sQ|6pdURh0x8;&l6y|_x=@)yL0$aC-b z=Yk)OJoU`xx4f(O`RD%@Ka`*4?aZEk3q1!7q;3EBiKg%TRDPy+I}KL-Ncsqhqo1(CXDtfReFmz@hEisTO)Ur1Gev9CFYy6@H<# z`du&l<(Q#|A2uOta_mk$GDM9Ru$e(rPL9Gediyh2IJM)q6Y{`O*?!#?-9 zs06&lnCkO%*O9pqs%g;Ki@HKmgJx@LfX8{hdKxWr2n*81#I16w9&+v2W z-~q~HxUa+7EQ;&EiO52bJ+hQDB}b?FJRzpExM&NMKKw9?b=cCS^Or6?e(BPqmo7E) z<{^Zq_>{5T)YsC&S`SF|V}Jj-tGPL{b!&Y=Gufv;BUVUN;Ytm(w@1dlUcs&G;*WhS z9`5CyvE9_y-p+M&uf!9Kw6jF=B($A8HfT#r3px<%&zE4^CY4GBl?GZ`m?Ir)$M{wB z8ES8D-LjR)lv}BqP#+ri+I}5H%ac?A}(g+dE zOza1vvO`1JE%yITR3{xjL34!H9IV$!dwX>2Rt!}&c8QG~UI!Qn@D3T(wr~4(QeV`=hLa^Gf`&0E zf(@mFR3-aC4nMrGS}7Znu%=xSM!*_4jFFffuO3*Yq|_|Y8kND@3H}CBxt@GJVpJ6| ziPExsU46Q=G?f||8XhSPgjjNwe4z2ht1ywhUZmcOWW9)qM7)Sc&KxydCg+bVjpqm2 zefh=+h(>}$JSa;<%98PtWUMD|ezLvyrVoE^`J_6+T79p1Yq zlO8BL^+Yp%ieho&MT9nnIZ5mX3kW78$`OCqFnTlx_Klx!?;99NCNUA#_N8634~s?o zlE@HwlY*>2JQ!pKMaI%Gp!OcWtAAH#>Z$gT9}NZFP47=V@r~S_AIaVIzN6|g6%{4P zM2#0M4@`tXiMYfojl2x+rBFaJNCycNH~AHf8&VMsmhrYE;fko)ndE zBywPou#?@qG!06)CF`gV8JIb9MLwU)+mAo?$@{(qXt^Aj?I_Ti&x7Y_rHSf`5eT%0 zB`j6~I1u=Le}Dh!J9n`M6QN6(AVAe|61xMhKp*x3I1FqDUSXo=1gS})Wb5Jl%;j)t zh6E2)BjIwnP#U{~>F@;E9=5`Oop3_t&ieo$poe}u!uUI*KmiXona;(E0WT` z1g6bAZ0W!J+QHQ~-v-QEaDws~3%S(Q@4oHqOKzZb-a?2eV(tQ5{hseETKqbZHsn&} zr6p&->77eI`g`E?^RE_OmrGrE&A*=hhPRGp7cR%hTM6@yKI!TY{AB4TAG_=yzdG%Z zIkS#93cO*`RL9vcaq`knEt|LKWXjr_8fAwsyXhO#X3hb*@VZZ)e!=yNPCEDM5B?$^ zF-!k#`Lsh0AMG`1+S1Ris;!@ZKGSB+yKw1esRG#?jTY zCzl*QS0tUUV%^R7xvD-?Jx$ub#*cV7JP?y`T?GP1INKJt#MM37?F<5iCfuG90P%RT zNHhToadGw){BY7=?1z{L$6IpK4}r5Uxv{*gRG|~%kc*B#!>uyq>F2*?>A&6!EI#8x zTyffrL%}V4U;fh=uGB&q&K~^eIa}wG24>@|(*`lPryc#b;f%^wUoQ_+f2Lt@A_p0sOGwjkw&^ zAHEykyX@xMa7BENlIlyHbJ3|6#6vfxuLH!ov5L#i6{|*;uffRp;jvHrJT`MOc+Z;W z{uV#9egE?}$a#?uf9^Y}w!ORVxCeU43GxM6wW#Mk5v~=fCI;#mIBdIePgKhtq3##}3K@WcKfOt(5U%bg96bZ5gUwJ4PEO2!#SRVmgCMnw`$3i z^ooTO1OX1WJw-{t+Ian_CfS zw?y_s$hcYBC-Ej6XCSj;(OaZ>5-URZNCHz*^vk`xYDq4+(g}2BPirfoXY_S1{1r6Q z)Px-JpToz#|J?fc%{MWzw|KPg=>5f50;_t0c#Dj1Ez+y;H8I?aq!bZ=YQSFrbesE zvE#AtnbrFxI7w7kcPzB@R%uq%6%n#_4=L_JT;?##gu`qk>zdP!~62f6+E2r?{5npUYGjicl$p5 zY460SckImQ@h550oc2`Cj6_T(FF#@OW%45m$asw%nbbcogCX*gErVRn?B7-8x9wFv zpfN2&3s#DX%-#ZqV#xvtIw>CrlZXqEDv@YnnQ&1SZpExwDY9JOe#WxeQJlGvyE-B` zh%0?C-xmC|6mZ+a{j)Snbg6JiqdLB{w0gzztOCs1U`*VY8e^J_@npz9d6zk4$STFz z%|30D$|X02G`0_`Y!=P|lF|uMjYiX8Tp}lfJ3)y{4Mt3g+2LbUXUoc&At7JVbmL!IyG^t43It+gDsv(ma?(W$4XL{wcIw%x!NRUDrnHkVa!6g`l(lHcwDKsIf z00kmQK4lXXSLTKf93s^#V5Cd00K6t}fVmuubO=aw2}mO$M8H#BQEzzqXKy0y9ND$A z>6RA9Cm)rpN{l}nr%-NxXKr{XyAuc0_%n`!aHg8<@kaa3Yrz{8rp&G(q*Pgp?xoPdPUyZKm-{yyd z?ae@@Z?AR2m+`~$iKX}XYEM79d{S-wfV>EN_xfRGKL??e z{969QV_(bRUc0f_lWs8MeiW5uV_zm53a?FQaXckOU;KN@7+}}f|2QOCR#twtJ>ZJ7 z*}*%1$&pY}^sU$Bp0~m?%Z-H%3+$UhBo{JOci{{L-O9swk)d;a*3TeC!{-Ne9Gzf#<#Y>rKYY+LxxU;Y%WBR{-7tc@0>Gs$pA zaU{6uc#+8dz($sYcSLpEdrXrEA6X7?;zEcdEnL)aW|xbdr@|H(X=`Jd+Sjgm_U3n| z$6l8t*R93t;&Wfnw)@Us!ba41=vbb%_vb&amRj|~XNpAD6q!Z%YKeWTS0lt?664Ma zzyG{z<;qEg6tS_94UCc;-e_o}6)Atj3rXF;op){sV_f9mR7A0d7PYRt^G=8ZMU=ZD z-nS#({SoiC5%1|m3voh1>PchzjO^Q2D)o#VT$93YAfsNYaT75*UP@SupMyXIVRlRz z#~wHK*TTBDY+*z^oNPQM0dzqtrocc{VJ@FNI{lHxMw}la58KkB!{mWTj>YKw}@@rZ?okV>iGAt$lrc9aE+- zDM0afs$t?6zw))Ya}Temto77eTh@NmQO!pl-ZE$UzKJt@&6*yaRO25xwfcmH*gs?v zA2{`xrDypUUOtowcJ1%-`-U_^n4VYGGgEEAQPCDR#BYM)Fh#HYzj3K^!#&J=(1WT%Obr6dv;j)+=W-(&8(Bz%lP z;}UKuo>LP1B~nu2MIHweP$SKe%EMlqBseX2m8`=f>Ue3KMDmRMgcOz7nI5u2!|D_%OGXC(cnCr3^L6}sGCM2XH={^BW z!~rS6P@4)cut&w<=mA3a++oSmAYF(1vNaZXTMC6SQNvMX8|g$~53SW;Ock{w_KDOOWvnW1oJ zOIK3U94iT?Xi3bz&S3cziUk2|OV||Tqb2dMrbr@s_;)|t{fmd!UGl+@68zca2=EP9 zv2EaUjCrYyXY4x{HYS6i0SLgRhs#58S-*`@k&LVp7Fwx#k_(>{ezKV?GR2ILFWIrs z{4as-j=k->SJrZk|B_xC*FFLK*$KjM$1OJ@2jrlzYx~C4f4nm@-1j0UWFfLcoZ;*K z^rOMw|QYbS6RQ=z>*<^JYehARi^n<%cR`Ie! z6*DLPO@7Gjdbn!VhjS@j{f0FOKV$`^XgNnp78}MY35!_H(7Qq=>!SaCe#rd%6lZfN z`ZX-P*Kn-=nW5Oyg@M_w;9Mk90)uPUQaYfiI8&txy|pNx zfSX#eD2NUi#W908O0hv4(UryB=>n0mKqPfR6DSp9x)m~fj!uq90Qq>B>j(~jAHdH+ z4it!p9of1S3X+Le=-zkdoh@UbHWKPz|9YYUVhDHa5>F5T9Ke%&{p$(2U@is%h}tlL z!G^t`{j6i4J10Jyo6U!AJkuDO#~0&5cf?8#1c|lgmJ%o#%SIG_P}pDbqFd0yiihpW z@7_%>2Z;$TMRF|)`uiRIfHE7XGo5k7x(|LR5`OL0^+|8p;^?k)#6lS{#?f8*a>Jo; z+Z9)2+uI8rLA)3DMFPZPh!~TYJ*Vo#6AQ$F<;!6!hVuFLO`&5Ldj9!BlcT(}Op*3P zqOc9i5S6kASH@7_g7(9&Pcqs7-0@=c^66E^&oEy`0 z$Z4m=L*ZM$_r1dJwKlc1R7eB|xGP!>OXR+j7A}Mz=xJ`=DIG20u}Eeh^ekPtkS3s` zxfyTRE=^sykSfsC+>9#{E+dV#;r5&4oLLtxoHMPhZ< z8MIOYsVN*d{ry}S(TbD9<^c7OiRG~~Lsy6PVTAs5>x@Kqx>PS*2nE2B@DuBIzT+KK z9WW51Cl)Sr)&Az@Dv8w`w{W4O(2FH=%0OX`j7Wx%oXq?nDBIR%!qk+duNl)e-Mj;p zklZb~2_k`wkCkdA&-Rm>$V3VM!D1jujk*w*X{fIBZL69_> z?yKHcQbBrnB)Vr$8{@XM=Tn&uql~fADgq4z>h=9t-ZwcvpUwAY{75=TXMAO{ek#2v zQQEip$@*>yOx6|L7rR?nk4~7PVl31jEvSJBEBF2l@kkc4DQQ~8xWd|#& zB2pAcr4D;;ZDb_1WXVzY6xzMq)fi*-%K~}k3NorrhL?YD& z&kv%3A4M;rB|Qut#bV)LKtwPI?PKA}dJ+^?0mp#t2Q#ME*4FufU-;znc@kYp2hc%s z`8*K*%ZHy_KF0!tXgJ&^>K<>!(6F}8dFhv2#fP&{0^oeV(U`PSg4h1+2Gs5zC8e5>-*i~Q%#NyTr z%4FjbZ)eytl@fS`#0gd^LodUrC2OA@(x5a|!YtSu-ySEi#n=l;iIWiTMQwQSaIP1z zBzURBX;3cf7PJ59`g}TN9fO2WQmkCoLvWQ>3!9$3r=p699?0L_v2WRfKYumSVB5I% zsRKBn051|k`bVG-6z=G4X3;HMj(eVo)0xc?Xbe*0J7x^mh5cmL!w zgZ*7LE%dW@eCPe$9eW+_%9W4bvvJLz9=!YOK!(I-EVV#_7zijD%ch+#t%gItkes}@ znyidW|K!^yzyESfn{Cy~*_!|lW+zC&k380lG5L%%FAP?X3z0`2~Z+`Tim4Cb! z3azjq1l+Ygx9WH8t*hF0H$D8D@6d{~wY6*px&P;1Uh~9#^j-1r!1mA7o$uo7zR1SD?;o2kM8;M&oB|*SbyZ?zsV0t z%Mk?NnQR$c7aYLB?4cs&C~&}4ZOJ0TLDSel5!PU981qA1@h|nmd@42VgVqn7u-B}_ zjbF2|Uh9F(iwAVoiYs6Eo@6S#-++rH1#*`QHcv#Pr9e%iL zwY}^)WuIqI=uRn_!u{%CW23?kVxwUsO|AFVTj6v-6?oAQ)I%ubRKsJxGh8+nBj)=0 zT=$xyUx^%i_+k1Li(-PXL398P1^fVmIHD_y4N~AQXfn8cJ47TDvrz@0b4r3ZIfW8? z0R^pwo0|@UCJx@MKD@}yaJgHDAB^#(Ahd_;9o&+!j zS{csBR=r5XCTh`0V%jvM6(GH%+0ltU91@>Mm|bXBo*a)1kB+lu#m3%HxaREIwXVz7 zp`pk6`nL7;HTCsv@9SGRG*p>Px~B4?gp*!Fci-*kl;xLP0;L$pQK36Xy!>#EA=^%J z@j`E=?C6E^g|-k&{q#R;uDdQoM~jh_D+Y;C83uK3e#%8P_p{GLz+Cc&AXmijT+E_Lr)KX zQ)~J1vaMSuj{RP1q^XJg93EVSke47BU#c4G&Y;{~Z_3V=o}!1dujyjHk1y34<_~!qn(R7l+q)(#B zgb4|+IkJrItJ;_ep63T9@2k&KNj8^k@2cL@UfVOmwPsx)#eMzXbCJ+Z;I1yicZlhHeO4}Nq2*FY%0<&OK;ZrHbLYxlmEp`Nzk{_c^O z7hQ5$+56u!;hsC|zxvtOWfz$fj?L9nWqSv*gM<05o}hmq7#s?Edrf7fDXUN{u80v& z88lY-2?F8{LJfiB^Wr6akPjm9-CgbbJufGbFD-ob={cYN=(0a98$WUKu3bC7``z2- z%s%9dGtT(_4}NyR1sBhncU-V%Z*omr_O7bMAA0@5->$FTxHVo9AF7xf@pIWS_4oT; zDiE@AfiQhm!hEcE*4S!Z3FAMyy7chQ-T7!NZ6YCKVElYcHcFBL{Hj9oB)2G74<27i zXf&!uNme1VaN&mG!Ehers(v90CUYfm&F6AZbGe+w!+$wHp9??vTt571f8=v{KOX|z z4#|g~uo~p^y}f;NYHC_HY`~CxM*EG7QHfF31SKXo#&~Jt`7%V@c@xA;kTF4v2|7%` zLX(2>`ibqs+mpD|D{)oJUS>vYG<-P15f_?=M0BtC1Tz)vHNl_>c9{SVA2I4O!qa$* zx7V1IF~bsPF4M;d0961p)7gYgjL5ddSFs^Z3n#;&3>4fOOV&y3BdR=O(2ey$nW{+> zrrvO+Z%r<4sI0VPg-t@p#9kfjYTlF@?r2>5(6R@AVZ-#>-qYQ=Z?M1n?jL>XH$Q$~ zW@G^R#&u881l$p}QUcH&8~C>8?_K%GH}C(&S9Wb%f5)vi1Kn*q3G4UnSi5!opEASU z5C8gBy03ifR~y&<>5lLG)5G`Oo*C)8{Jm(n5*&$YspB8!> zcjEiK8=7r}f9!*ReX5?PH!D^Oq5s*9lp;wcu_4poT94y{-P*V_H#|b$fi1Wgdis{f zvTC5Ig>-AMr8V2affqI*Hf-u`Y(~l64Ll6PI`mh!#Po7tl00E#zwC_w6Px;uwm>j+{&~a zo9MXl*}KvsJeoAnM^c@~0xtsk7eU)o>$iRAI}q?gyb+`Te~ll8j*5iQzR%mlhpNbg zdALYD%h%zDK>wOXOSjI(`djqB-4F4c#ANG-R{Cr8&-*(J^uI+UdlFUfYXF2QQ2ck2 zM;^0(C)u@9CL4IBz^GI!k0Fb=uRU8#>b>nYaHym_(N{)$z zpXWENl(C7#x1d67)yXGMUb=Mp(xuhM9hWzTz5uqe%@UFkQhV~rGsbubxsXg^P~efo z86THDufZJ@zW?0y)Kf%s@KYj zha)s3`s{q&nXxjK&PwUr(adsBjT_rI^rQ=F)Qn1O~~ zY|N1@Td)Xtk-BNsvGGc$nRak%s9%)RF;jmlPnDPCV zmbk=P7sU29H&X=&@i7#^EL|e3atJ7o&Ugzc1dmOIlZ5|NOVfz%B%(L;#0d07TTTgl ziMg~&5NRc^$janAlaJUeXfGL`r;Hy2!?}S$zdxgayo|4IDIO>y6OsKODlHBr6Bt>L za(U6eB9*Sq4&Aw}{awqp{q(6d+cvBn*}F5{zB}KuKN#!_vgvGZ*YJ*}f%d&U`&xRV zzJJ`@{Fz7RPhF6G!{YqZT7Ob?P?a=sV@hKA+=v<1pz?CYH1U|Q7iqBXi+IKNnKh4| zsHd{HR}uHhBKbB&eUHmxF}rf9vZwpP-`_KP_F*L@4zR-{i=VzN)(`>Wm;o?H7%G?$WUiixrjF5tJAl%jaaZ^24`3St&2!tHAHa zkN3TZpU?Szp41hqhd=z$PY^)%U;Kd~4|hnkT|g`e8q^RA3p$2B$&T|wg9B%5ZNf8A z1Iw^Oqv33zY?08Ay~&Zmvxiv%Br*8XkrEfJI4AaG_3>5q1@CFF0h%)xIBA6kI+J47 z^`SK8i#I~YEfW&{#t=CCE{Rc~u##}XhA*+R@KrWAS|I`9Y)Lie-WG)9S&ueDvEp?s{a~Ki>*oa@?Hq$#wQc*sEJ*%ZXP+;@C<u7-Enlns7qElRdO)!lkFZ^J=6;8>R>k{Hy$M*LG|b z9I@am>k`uHKmEF|r*-;_Ig_Rx{`9gt*De1gPDt6lhj&(-CYfZSgsgJe@BV$`Grv@B z1UFdr+aEr?>=%;a9@+_?eCVEUx9@$vyd(*}><|C-@O}TD9_gv7<>{*ao?Q>!|Kpw8 zH+6UIPnOiS@7uI%`xBKl)94Pw;}|MX5HzlT99WEV20=W*sSuzZ{P0*y@&j*?YHMmN z5j^lGO`ZMp6L+s$dADT9R*_L*o{+q z_il)V8zGvwL#DK1=gk8F`k#9a9*}}4bb|qa=t>X(ykyKE{p;;L5)^TqHY&4oXQ8QNY>o#s4f;NV z68$h705Ug`aJ?#TzS%2-;CcwW_HAz~Kt=d_>7#Ao57*0;FE^ZwaSVx>Gs8}!g>S#A zZ71kjDMuT|e#B?aEGwGb@QM}i0R7o4C2+uqx#ypU=)jB#Ip8O0k7MZeeU_|WBF`bx zVIi(VLBE&AnN-FhqceuUkV#kvC1_$0*y^t>Z$Npq!|eRcC`?hnPn7$qo&rw`|2G>?1}m zKzH~jRgeSlnt&njWNZZk-6?ApE~ErT+S?t4z#4`sf=vm<*ae71y$Y#vY-hEvUymG; zPdMpYF{Whax^*Z}DJ2&!gbuK|*pk+CV?5k5)0Zh!j#1dQtRuQ1jV74UwsP!c1VZ|{ zd!|S<)h`+q+uzg_kzygx7of`OFnTo|Bz6r5M3RAoL=$enhGja0FwCgNn4~eK;pN-* zI3JGy01yC4L_t)Dv7a7es*IUqOr0?inaM`uWb*R%%CJ%xB$@ZqzG2JfJ-c4uwK80P z`iAB8V)A%7l{Ar3ZVru?^1KSq#5_Z`ShH`>6Dyv&{qd)FuU$2`ZG+#w+i%~c?zW(} zJs9c>db`x$9dxwi_qAr5nzGH?Q;nN)jhlm=JG6CM(Ag36TJUoNeyZEg_2&KFpsG|e zrv&3_qthlQCytNT)m2xP)>W3&mPe=5CF;sdStMI((q52@C*qwXlM+W6)5l^{_U_qt z^=0kt`|IlJKl!PD^E}hvKk)3c&wTmIU;64-zIemZYufg=P8dJ#qo4e@V^27F(%}n^ zIAj&XObI^^SbUiKf$PP*^;liNG1gOOM)laFM4!8g&~*j1oq@Ms-G9DMMjioJeKTWErN63)M@M*o?Kn zEP12p#`-F)mBy49Q)>(d9j@Lhfv_pyr~~dKXl0j%BQj;kszNF7mR5HD~MIfhSdI_Ei>tnjnCeB#DX(PZWRQL>;3@DJmiSF z+L}#k?tAj#A5WWka{HcjjcXr3L;0C_)Kfmaz46gy4}D94UsqedY25=)K7Qw}9rpXr z$wb-W)86*h$9lpNEkCo|gN6^_}sP7Jx7N!(C55`I}5?gy_Go zd;6~DC#~?nPrCa_2_%!rtXuV)Od2y7+lnblu&71jC6)ZB9X~ZuQf+VlOjKShSyDfK z@-d6g{0Et+WnhcjEgPe06zBuIvRVABiXd5CGX3K=F7N-tnmu3p6}?N2J+$GJdC_F_ zuuor4HM^^;<=<>t5}Q75-sj(^c*V>s&Z)i9{_(}`Uq0IXU(4W`aKrgi&N(jE-UFWP zAF5wCd-^A?0Y~QkA6Tnao^$lrf4ua{Pc$@4T5|2@&OUz$zIX8zA1W`eIQtE6nZNLqYi|7N`Io%s%yX}q zJ$vruZ~Z8(i%&Xh)~q8SUVOy|m%Qx@C!c-^<)v5sTf@XDC!T&GYD}52;LP){pMCg( z6VJGqa`q8NpYr;*o`2cDELr-E*>jJ(^qMctTX+g(yrk;lt3C$@ zCc4N(k|lLjwX-U!>Q6lVqS=QZ#Sru6A47TmrSCiQytmCh>_`=_RFM@H3MG!kxu*Y&L3Y8~U#f2AKrOA?3u+fu|K7HJ^XsXk@hZ04IztG(hhC^#?x68i8l zcDTQTALh~}@-z5Pq_Ui`UNgXfU$e3PR}55j+;L8ip)I@ucBtLz2mK~+w9+23Fs0hs z6sY`)(Z3CADVsJ~%8S2H4c&n|DZr!S36J?{p(4zCtKapmNn^cwpL&YpgEm*vt9+~p z;z(m76q<^&XzqJyDu#xyeib&vx&)7=-jypUi$$dx8<7J*2SDgT30^RWyIU^Mi@T@8 z?l2c?k_qo;4zQaitYYoygi``IS)nW|n&41lBS$AtEH>TT3^QW^rL$&5=FB0po$`%u zPzCZsLp`_NN}PvGssKC{bLJ%G%qj5XhKBlXy)`bY1`&_KPjdYDNLd+ZXZZbR1|`&B zARsEMGgamulUzrR_)>`uAdXU&Ng z?%RhHQ*rB8n=d#=*ZEdttVVa1- zo?aM&u#m9}eYK8wMEn2u&s{O~C=8mn}(DJ9y2WDOqFdRT%bcP*OnIMXR;4>h2 z2s6SC5s8UIC!u9TxMM8gxQr5lMC{bI(PdUp7wV(25l|D{+6JpE$G>={@$Rc z6VU#BK(Kq4zq`e6+7j$&4z_Ricee)n_Nu!}-8~u@Fg<-58u9vi%lrGPhx+Tf+NX^4 z*AMp8^mmTaNYcy4ynMt2*=#QGZSF^MlTN30?cTLx+H{Oi67CV^i%pK)x#NVpf0-yL ztE{ZP>86`YOL-4q5{bmf$VfV!UbgIyx8C}#_uTx>Z{POKwzk$>&i}|qK7P_kXC8O- z+>I^q?>|y;oK}Khf;<^p>Qz(7n4Y0b#VB&gr`BorJ=AKSgl<8dVO6@O|?y9eG*msGjFegnGui=KRKxRd@dh; zz-bt*gcQ2v{jk}$*{-Ge$g)3O6IdplUfk7#^RPX!2^)k3-7eu~6%y`&dVzxd3ZSDi zdSW;BJAm4F6snSQ)=5Z!hqxHzEfg|DhY?i!I&(4p~El|-X~)p z5T?(GK}oen;;dtN%AdH)lCP~Z%tD+?8Q7W|agtJeHlqQuO z?pnDa)s?n4PQ$!KR1hZt&f9A6GG#uc5aK3B!Z7dfxu>6TzWnr*sfV9=_L6CnCpC<# zzxcBEoq6_^C!TWd!ecL}s&2S+$wyB-)bb9Yg3V9&bVmF`^u|oFMi8M zF1`A*OO}3(6k_(g6G$FhUI8-gkhzy%|M~gHy#Cxv-g)U;zW_8$oN77W`h|vxlb5{x z- zSzmnn3E%rbG#OLi*DpBal&8Kv{gZE-{^=X0f94-fe&{>p(nDU3U1lZh{{; z@`vv~;-(AbXAk?-+opf~>O-zM8?|R%dh)UNe}*bB>q|Er{iSzAlTql&nz9qV|IbjM zPyfUR@?&7!O8c1v3v^d6E?ow62F8VBjdi zX!{B<{td_DPQ_5O;1K3j|2O!d?YsON(?5Q-gOl(5T>0c$CITGwuU8#@%eyW86W1L1 z;}0G2?l(Ez>i_%wFw^^#^TU$5b53=myf$UQrC*!j{^v(YHt^7~YUKKPy=##m-1g;T zVP9@&$bB`Mwz9FWboPaRXsVdUeOtIdf%)i1A3Z4u9Gn;gvmSg9qWk|IfdEsNE~WK| zTW*Q68zruwJ3sRocXqfEO$q{0!wo^l!i^Jn@2$5|4u-$t3j!SS{`WInLF`a-bK3_# z0Q~?_3;{rA6o*iP7rrB!@8@MS?W1r&cc?Izjop1wB@snJfep&SM;|>Qv;gJeAei~! zgSZzw4meMdP&#I3Qd$48$2ddbsVovZKz`do-hn(N#*bgTdGo@}o5!DfuB}ULzx<_( zqOxN=WVVYoZwBg%c#z4U1Y{L2zT`y6@KaBr2C+_s1RDwfAOQR@xG)98$Yxw|i4nu^ zKigccUOLnG*l&2!B^Vyg ze*gQ9vo<;QYGCY}x{krKUx6MK=L@4EAs#F4dQ&XyS(+WPoo z$T{*t`$Cs)TYmm?!qfSZWgGkAv?OBCvN50OY;5GPAYg^=V8`Q+<1Nz)c4%!y2r)69 zgHsVw6Uf#T{h{w`A9?hhdH?3T|E|3M{=9$QzklVZvDWm^Q10=^d7V3MjKUD`FU|Yc z?$En7B9xGqM3xd2-pwZHI>p3qC+mk7a$#o5oEgacO|#-*}l z-xvN-YbXH5gc&D~gk88qr571*<=6@7_xHQ0u@JFikG1_}{|5;@k3U``5nmMkl>PqI ztCLbq5l_eCkF#)fV-)(H{KzAx<@2ZH^KZ)M-;mFr{JY;XT6 zx&KlC01yC4L_t(UjK)GEfiuo?=FM6L8sU zj0ueKjmHp}E-5o$f~0~(5DeqDzR4StlbO12Uvk&;LFXQI?Nx7wy4%&;t)5PGcc^_| z(B2m8ZB^^8pk+s}t0ma6BiOgc?Ax1Y?~M2KRCIJq80eoc*gw6md-BjgWq)63UvDfm zl1rtP&E$h1?+4_rz8`RLDyhDH{DcV&hs>OH+G%GVIq%41G=>wheE4BbV%_1H+O(zm zw*TOPHnCyKo8NpzJdt1`(P$J25zmXq<0R61_wBvwt~-DF(;uIA?&-^xJ<`+DdEv#E z-Sm(DaQ^w{BmOt5{O>(J{>?u)_Y04n_=8oaJ-=ttj`q4^x;m7}n!FzgfFvcn3w6zFI|iC9L#k{pkSWjM+S7n~(OPm<8~$cny}UIJnbF|16y zT<#Jnm!fs_&pV}i?f;@C)on|z0UhL1wbhm4YBv@+@#J%kKIWv_ni?WtpuDUUoO1T; zBWQAXJQe{t|H6Mb<@7f#I{E}UmX{`=z!r}u$}6g5yxO|)WE6_T;-!^-y%gSnNs^d|cJd~Fu$tx(445gu=fwDIIgesMR zTBN+vmSr}(a2W-qOC&(h1i*}c9*ifz@nOk>LHVTGnHQe~OnLnxYi)Sw60eBXO`Cc3 zr8AeDKl5_ZTHZ(bN_COQ!P9W!5%2@`N6n-PfROi=Pp-3T6!;)ifhlJn?I?v33iO$m zoS3XGkz2&Dj3zvY7A`%Rx&JkgCNjE_yw4#M3(euzYxDksl`h0zVY*Ab~J%uN`y31EyJCR*DA} z6B{NpSY|o`VPBNAYswk{kr;l62aZClR6sN-2VP7j@&eEuAq5EX<#=P%j4B2lh68}X z3KZ~{hX&H-x^XYtj;erb#=%|;$?7tE=>WjTM3=wK52MMLb+$`SrYv}%LmEz+3lV>- zKWc_T4|L_0af6*Z1R8E`0wJ&_Z7)rFNiV_&w z&O2g$iY;CELsQf_5f0!froeCjq*_~%0CCstFZzGLKmkZow_bj^W1w1q;vtX^z>}Cx zfM;3K?d?#&vRk(jwtyS}Fl@Q;Mn{ajct&(|;94DSg^%4)V-T94Qv$`BP<4Wz@_ayt z3MnReAsF}~k*F6!Z7sE8h!}6QDP$;pafa+a@kF6DKK2FO(eACSu4!CpS$%0)U1?cW zX<2z#I(q3l-)TxwYLxxe{BRvz`EtXJwif-lW+dl!?sW8#Y|bIkm&`PI;)!rN$dLAj z^X*HetCJ<8U1kulxpw7t>=-46Y*=!%q3B1xx!LjbW^>p-BC#k~o@)^JZ4f81h!DB` zV2y|@SvwZM#;lJ&w&||BiiC}#{mspfzx{fyO%ReFb2jcylb)Gz<&|ZjxA!zR_b+=q z>zR~iVx%r(Y=|Izich6CsP?qjzd*upwi5np{`t=d?vrCFV*k2zrAFBhW*Bj=NNhS% zBrWXpLec)r>Vp4wY~MaCF{A#M=l5D$F~ayUebnEN9Xy#%nd}huu#$({+tXW`piGp> zlbFeHsnxHbLjg#Yf*u9qk2=b-O5H6j&_@&ugmvQYn5>_3_VHLoB3Xem5$%1(O!Z4-axY_BJ=Kzw%1P zMIRJEJ(zh}z-Hk34#^PNq?3%9Weh_zk&^IIjwz79WR1xg`@siD65Kh1ko{poLI#2| zz+Si@BT?Ucg`Ic zJc^7V5~+wpGo*I8TsE5ti~-H(bJbNfU_B>3%q6~*yfYrpLZfH+J6P$#qk)k1FrIFIopZocEBEi%c)VCR{ z|Dq2UyEdDJmiGfHd5fWO$jQ%9peI;Z!ayT6Si>^!2SHz7|1lMnLoK@!frf%$PytV) zVF@cWNIQ++Z~PJk%`#;&=xT2v)gttLo(o7 zjP@7>Mr}rkkaLU74vR2r!>hX8QXr9p_jlpB9jcGGx(3l}( zQpWUKS2Wv=@p#OF>@!Eed=S zOW340)oV)nAo$K18uH z#Vah3Q~=S0O*UN0VLSowJ3z4@U&~`9M6900h~p`gG&y`s0XwwAp*!SnDcyV#1voj* zCR7XH=m(UvMw2QXr;>4svYxW`glO6FHuXg^)t3V|%HL8t$#%HWrFp?Jf0ig2(oxt3 z_hA2l^({kP|l)mxz0^zKXj>B@TIzSV&y-`k}lySG9ksA6oVBv6lj3ivb2#Jz#XI&?)~$ zU}^xO04K`%2Gs&M`T-@a|8Mp~75m|HJBK!n`eF6y$9su5lY4EzIq+*U*8lt{g+CID zDgzHcOj&@!H-U%7z8cNukA@dY@Z|bReg47ymqfO1th<)zVQ`2LA z*{kxngM8WBF>{uIAgZe94@WzLFlz?~bcY!@KodBt$3{Wm0e}VQ;(#WY8Mjz0CoJbI z^wOdUQibjLH@ua((o`lTBp50r!eWki0%eqenbu+14`B*<7flQVuumcp4%|-u8-uVvb zKy>Pq^6!7o8%HWJ+MM6HGvLlJ>=--d=uzs}k6_Ijdc6X~U;J(Afy*!Nn?1W2hCck^ zF=3-W3)24VaM4L5Q=`535$xaZ`sVz+LtZ*lQyM<+;pXYcU1B(|j^QE4A3yu`VasUY zZ`o;A-Rmib3S7%E=x z(jDNUI40GP-IwlM{uIuDv(W@}HaDjqf1K4FKlXdAjg6ZS!nHpBL!>)h!cPtx8YibtQ%|X-Li$`mQZ-c807$Fsy*x05qXRs(`VhfbqvH!5lWKM!vKu5*>5$MhL_|7 z*$5<>r;0P1(2^61e$Uq1W`C;|f5wLN#rd%VMxaW13FWY{uUmunJo+fxfmUGhn36qP zwvbkF8j?a6j>lMEAHn^kF`n)%TQC}$yu#s-TDy)eDA4$hcWnFm*LZEgh`?ZT^R^$} zzUqPt(p$Hn5;H}^gaqIrOmMPP8F~U&(Ckoh+K5D!1sk4&KxRj;DH4XlTs0C)!$e?a zzcVOJSRRCnWt@s!aKyKXPBod5k>_DH6UgSYIhnLQC+t5XavVYN+sd|XN$%gzVhjCqa`rjrpL*))HMRADpWnN852@+u z)ywIX$z;ZlA6MSnd(K_ID9dG;Anuowm^Bt~NK`s!^@{v&?>XhPQ;(Q?)b-ad&1N&6 z=Vj9ANF)-C!DzG0Y%Yg1`F=@BNj95}MZA?OmoHoP*mc(}`N0ovd+xb4N6cIJzW2WG zm}5_V{pqJvM2#2mQl7DNk4)UT6Rq}0ye~tg zSrSf*!?5~H8$EHbI&P#TTm`R~DDmox#pSe#C_rIO9-IpO(Hv$h%%q@arB#ys1qKOe zPlkA>ghxffiDMA%jh~VI(3e3Gg_k1AlK_}^gq)ZN0|H3KQIWvHQAH(qIDZheRYGBW zm06$_|^h{ObV zlu4WExhywPB@mbBMiZ97c*UKpCMW|qD#+gg0LOHIKP9I=e&m6Q&zXHBGY zRio@*v=^H57Qb%6TpSyRgdK1$hqtr91{R4XT#hCH1foOWsXTg~7mp(cisuJitMFMm zWd6?&?fVgof6$eJ=$rwh0FF{zV$)*y|C}H8u51im@WV*?!nwuM{k!7$_TN?hYa!h2 z!&ex|F;Mp0dh1ih0E7?ZpHS#U32a!fz|nVHaRpUJhs{CT2R;B19;&eIyy6NNfQ<_l zKmk@5Qz#wMcdPxbGDicj{{tU*?$ATw0oEUS==11j2)a!VvImIr(H$ zZG-dx01yC4L_t(200=ye6ME|nHy{=|U7T1Z1>G@h8q*C?5b0Qe!m9V)daLV>gnX!y z>kFrw8gw#ks!qbzlTU^MG@g7i6dtOuQC(&1^j8`K0zd(<0H-8!p3lWZoF}==OJXZ=RM_ld(JGX66N7RWr00_u>06GCcS`wTr`~EKqlja zyi_=B4uauf|3^P^Y%G>TqGR9Gbv)X;*U?>R!dFP6O@$w=t*$kZV?D)HNtCCvM1+U2 z$|cr_ppz9Lc8rI44(p2}O_a@oV$zNqZ&)_#(7QZyzh@p?xS;KyKR~!SSvKru?ba?_ zaF1tbZCP>!59B>pF8NZ_`$E)fx^f9wBCi|?UX8Tn9XH+=^}ZVM?yjsLsC{hF!cRxM z??$|a#~){`jqkYerxEXq5$`9nXE8cTe#P^C>3O$!UdiK+qhvaap{ql+8U6c<7Jew= zeLmu0pl?RJZ$!NBM7(cDye~yO;^6NrTKM6J_p^xi^DCDeCE;n0ELwO+#JerxeJrGZ zE8=~fu|n8++pQC%-z-}Ai-`A`h}V7Ft!RrK@c$#z)-7yFk`v-JbmQ(0PS%1|Lv7}Wa1eCE6fkg0Pv$@uco>=qk{-a!WVswBt3hR^ zTqPOV4_2jPoe7KyJOybJpnp~-8s5Lfj7iIs$mC^E4}r13Bmzui<6K{UspLyBvHc8V z?!-W@Jbm`0)vnEfT+~3!?VZ-{TpI-6w)5}+^cyi;$=i2t~ z&1TbmeZ5By0t7Xf&BDNhC`kN2BpbG)iR5HFPu*?eFh@@~J=l z{HH&@`CT_`+rF8sY+OrE{~@zjf*3Bh)ieOlFJhr$a%L5x1{#i99B)V5bR&jo^IFsK;o?C~L$`Z>JHQ z;Nun4D(F|h><~e|8c2OcSc6^|1g|5h9yVs8OutOhm`r$oyC*y@a2WiPj2A~@pW@ye zM>ss9VAvKq7&wcFCu3NI_e+SSmF4D5P)veYd0hAx<#mx7RIzwrLc*_j7^lU{KK6n< z*%G4d7`j~OUbaRPxRIh#_3z+>Q*2Z4cIdQhGM9Rz@AL@Pl6{4VT3COpuS5=0JedI9i2M;haTGZr0TfQU5s0VL20 zorsMt(90!a3z%V}FATI2WW&~%&H8!Y;|yB=e9%GMqT&y?zL9zJiZ4iM&2QZ3|M(|# zaS%Q7NQlKimxF>gemq@bZ-0BS!2DBBK|B!bq>DwWz;M8DC{t*12tyb53^s0Z^r2MR zA>K=b7x?`R8yrv9&~RNm;qXY|o4Sr~*KS82Ee|TKrNy;kURI$_VqLI5i3&DnO~HBe zlCI2=U;trV2wqti24QIc==I@)nS_daW8zMhj}ROnkwy+7BUd_yO3l(-X`X}-JZhRm zN0KYzOMG>l5s~X*vWnsfq_VgZn$Tn<0!h?ELa9VYB%nj1v|b{$W-O9hx^RjkvsP9z zLldW>?XFNJqacUNsQIC`j5aQuAc-I2;={zvFe5W6c@kBL|4f! z3esGd4g)$P5aY13m^f8tiUdj{F?Wx*KOCFVtyDPT8@%*3%anxGp_0!~K3xL5#$A<%~*5Xhhy z8EHmJ$bO(eX9^Js1>i(14M;1I%`0+7X`_g-t?)>SD8MW)S|lB$ckHsHmx_ojLQ6v(7r_b+3E<1#i5BT=e+kPguBc zQ9K^owQJY5ZClo?dHTsGmu=pZz|wCgK$p zWoy^0yW;HEpRj2I4v%i760=}ZAXGu{JrqMpCOG{+zP$T~-#zuT(~mpu3rTdo)?S7lZiw!nY0|qWL;fd>+W6q_U--V ze|&ktlWThy9D@U}TFA#C0qlSR7z9(Z5R|M76cCn!a^&QbcMT8L#FG<@SDwp9vsshR zq|)hO1|A+HYt3Xb*=#nS&-r;ixqL1kFny{%X2|;iAFvSeHe=3*AL@DA9#W|IzUP^< zo3;(g{+>3wfW3(eZC6mKfNg?@u!V66+=(jAhL>VP{1BtD*YGaXrWby~D&rC`U{ZXB zz6+#7BwU4Lg7XwozhD@oMn3vd(GdaWu-NH&We2uVWUewh@u`4DOL+ zxUnR;1u_Gwnql)daN~)jh(tG0tz@lA#|b==6io_0e%?l+uTYYOItZ+9+tL3U5tMfj zphnit#Z^bkFq7n>_0K|f$X-AG*)r3AAX_da06Gd_nPjy!7o#6AqN7;(!-CnufHeiC z{_7w+Y{zBjVzBauM(KS$#yP7obeiN%Xm`5CE@qB5Gz&A zo5L0c@IU~BqYw9E3vhtI4B#ISDFa#eg91=3n}0Z^oxU{w(lcot*_X0w7y6<8&ktFP zSBA|0PyH~}##yLwm!4()C-lRzBRLCg?KSx4y!SO2=lBxs8Kv|%J08n6XB~^eb zZ~&!12Pp=}2?Ydjy^0aeH~@+RI00}YP`DpV4F0!^er z!Toq$$-50ar#$?&En=Aqk^ur-JTNXXC_s#Wv_=U)H*_W}u92NMvm>Y_CMMsb7lALM zldEHm%@VyNA(q$mXihIe7z8pR3NRx25PTCH(;a_?SS#VQAmc+fPK5CaMqp5;%uE@P zDL`iyl-L&Q!N3wA1Ph}fqr*%|D;9`LFvlb;50UP5vJ@jlL-`C!6PYTC(F6~Yr{8eH z+;4qr-nYJ0b=Fx-4V8Ewf!LS?8vrK@#OREO(b$-82TU#O#lS-wGOle7JEEXg8OeCJ5gZEgMH#V1E&vGdM9H~0JBoqW&T$A0hIhvjn26a`GU(99R(fU_b@mRaKl zXb8`^TfW|Y*Dn_=T#!s8Baztg$Dee`rAt2g(a-+Nzkcey@B7f}Uw{7LhtDHR&y#Ql zyoB@^-IvfL7L6s7iMqOa68Ky$x1)LcXFmP0!+-riaKg!nK)JxKqbIRsIItw_jK`u0 z-B}3dZ27XXALlZM9d`Jk4Gr^aYfq}EI<>0$^%Yg;R#cu=QhIh-#R>7m49~0eylgI? z&SW#Wd}<7aQ>o!}W@vZ>7#SHE9v&LulN!lp(zz_GWbC;hpCgG+r_-5CrZSn#4G-n! z&g+^rYjDE&?nzT3HPy-T@}792&8S^LtMT?5FKV>jC@`uq-k>~|-jgYpsR$ilv4YtE zXndCd01yC4L_t&vDiq9BFhRjM1(QQcU>7~$ec2?VIwNvvyenqRJYyOZ;E-%{p z!;OvzEKijY*T{G^2TPqXQ;dlk!|LF!(QxCC6|?cFdd%iP4@_P}@k&KYZL4Ja zlFA0YMP7YLM+X5pYM7C_q>B{sfGD4^KHWQ-AA+R11dMbDAPsXsjsy(s763B1SFZp= z`)w;7hdWdZP!0fwCn2^Sct=s12gXkxBw?2C!0lc$^xW%HPS8EfZ_cXp(Bb> z0+^AKYB50hvw*ahPTUD`^#0uf`dS2lK%^B-(tUEexfB`&0K2StyR58r-ZuKt>g z^Vbf-_H$heh^xBtphTM7HU@zK8~_I#0uj6zpa8D5nErCOq62r5(h5L(_yd$ySpTKzHDsaJ=I$l)*jsx+W~| z5XwU90f>Ls-LwJ&LqnDE7>I?UUw%emOOXb%8HZ3FC}h(nh(O;kOC(Y|B0P9VZ%8}I z@#fH7Vn>m$vV7wu5+{O4y3CZggh5r-g|r6`AzOwH4>=M-ST$CVR%}I1MLtQ^IwU&^ zC1EII#U%Q|K+MW0NJGwS2~Hl}#GO>}0bC2+NEdMfl25uL79w4s)17M>lEb5 zhzJ<@M8*ukEUF~*p=3B@q8L2P1$Tv?l86?8+$J$QGEW9#T>3I=tbr4vFjFH+etyiu z;in0G&=v^{jkn{*M8;T?9l=1@fsh(tMDTJmjOcgp+ro)JpW5=W4*N5pC5ouic(h+0w;s9%- zHp1a&6o82%ic@u5C>#Z13@mkomSjdz*_0b1zJVNuLln#ynI_f+Gn$ZxiO?N8!wiBx z2#1I~EMNjbWa-f#B3)3MGA9EYc*dScK|%p(&xpvCf@p|m6d*7wF*yY}o`vwq{+4I5W1|I^;RyLar^md|I>=@C-R($dmc zJRXfkBaw(7_@vE=WSk7Syu6&!^E|RpE;|$P__S#=k2-2$Wo6~LXP&X=y*Iya$F^e! z`=@hB%1oq87^gA?Y{-lNmNFu-QrH{~u>cEN`sL4dE_?KdxpMTwNUpLy7Kr_TK0p@%(q;;Fws_V}Nk zan`S1f6fEvzwxOzU$ORzE1NF6a^%fdY`geP@ynL%e&a=vH(fsQjTelZeeTFvXV)!0 zY1VPaH_V+^Gk2a2owZ={l>E5y<0>i>C8d}YPvh{xIhiRX-X51Qa+$P02rxTUUffJo zkW_$UM~%Trn0`cx80#(IEC)``305O}GT@UC8?d0nLjpRk1+bK`u?twcg%YEa+Hy8x zQjRP(uP0SZ1C^rCxZh12``C{MhU9lOsi#Tp&)ML6?zK96iE21qB=S{?RA1gt@yB3t&ovNX3gFS{=k{14;lSJ}v+f z69S-QQsAI;Y5mmlJnP7fTEOmRqo0%8H47ei1pH>f?* zPmJ@uQU`%o3V>6-0B)wysvur#AyFRy$qB*KbArR)8XR^N;Lp0;uU%lFX1;G>A!WYu z@O=4fz%QTepcr?Q7s|3j{DVUIp?>KMzhtT(8|O!AeXrV&*7=cY->dY4WZqB6{!M_; zr2=0SQ#JEE&AQaSJJ`QQ{Vn;9JHgeR4E(NKOnKG6osXl5kgr zA1Kg6)aJ%8I~@Mx^zgy!{IDc({F8U&2ldK+s8pZtCw!IqV}9scCoDn#7XV7=fw-at zKjM!;VExbpeh5J{P~rtJB|)V8MZhw}Y640CBwil?iSYqYGBI#aIwb(grUgI&0e?9t zpBVrLv_d&3I47hW^F!y2FO=n>R~MI|9|nnWFSuOjhX+<)g&zj9F7s;^Sg4-w12qe6 zS$X&iZZ_tMFH1S76GD7NKV*IXtRH3vgJYNfqSy~deaZRO-?{Yu&hq~P@#bK>h5c4Q zin$=ti?Wzlz+Dq101p5{YXJdw00qRgg1j;~=3<`m!$z;{Q{gX&7UVcist)J^;)o6} zu0o;70XP6oS%5;-A@p@kAdcdyu5=WdT$K_E;1EiHDgXi-0O9}~Iwe(Ca=?L8QU$;r z10{F?sNzpBPy+CCbQXx<5UIk?(MdoMmpw+Q(j_Nxyut$=1PYuGp@48m0}!DQWI)Nv zp3C5ff+sDdBzUO8<4G{X2E9yznO2}e_CqAW5Uy850*IdB0SL!Yn<^;{F$FxxL>fGq zk&&)WqI4@E|IKe@mRy;;;|_n*CXzi!K}!ob6iff`zd`|sXX8;c0+kv2OV_sYivNPv zJ>J{irc&aoQ9ggg3Ws&{qnCmR>V$+UVx$mxNpZk%!A8=w7np+H-WMt%=3R1e_|w|T zAum_@Pd`m=PwP-Ry)Tz5iLs2*#EGUj0p3B%35$A1Qkgtfw77;be29ca(AF0I)IcW9 zy1>+9OnJDDWHkhuECee!TVf&DV5~I=6xNr(nhXbqDydF3<|b!zYl>-%M99d(kuMQJ zvYPk+Lrjrqr7xa9U&dM>&6i*(k%$m6F89FTgGMA#0J$8)vFe1Os0$BHLIh0UOYn-G zjE+{wB%y_k;1zQ)7pfUq_eMAiX(SYY4TbSZX2IM+pkOJ6fEksz8Aes)FdPWpNO$n4 z#EA4FO6Ju7H$N!JT;L?@Lv1=D1cpkhCdi0}!y(`vSb3Y)irK;7$-r!z#6*I)j7Rz#1W9r08)QX3Z0Cq3 zFe3+PMtW{S!}v!Y_oqzpbD5p{yPjUXvSoi~IKh{gjh--T3y` zweG?(@F>Pb4UE8~P#$Gi?!4^jM-$70S+KAtyNFQAe1H5uzbCb8$MhL^v1b{Bz!=ZZ z2VRtGn^QW2l`De6ZLb6h)G6FRcT3Gb!Ef& z`Y979OrF>rb6MG+}yg&4ljK z>OG}Z+ae`f5@qWXWzSdCY>by~DlPwGHuY>tVns>m)0LI0Cr^2B`pjn+EPUX|`A?s) z_|ezBZv8putvdUh#`#ChFs3&ApCnB)re5L*Vn^UqfrR75jOjC`+L)=__e$esA~I|` zwkoHYN9HN9Rq=L~X}rWC;~N>HS|eVdOf#b6M5B@rXsR;e2;w~&rwZ#hQR4imlt6f` zhJ|Al<*_7-uhHvVsdRkZ5%0RrJLcV5@D4Q`s|iOdUPfjtbQ$5e5+9T8k4%^onQ{!^ zO*R20vz!sQw(!2GY5rvOUwZ<|0?r};LX3vTX2neF%&2u2L&_tax>>buL!6D zP$(@Ne#xl9a5|WGrEx%Y($QwhiDufVfH&oM@5m)Dz}!o{xtB%eza_HZt$?@StqzKD zN3rEmZ}EWnOFRchUgiN-0zxkJ4!gjcbH0Vc-rxaq&h=)!-aF)V7G|CvnY>ULoQ~Dz zf!bx=BUxiTp?s3+=WEfsBgemQ%6o2zPvG$t@qcD?Xl;!_UNox+(8@`z!mQvi;tKIo_0GEQEgOStrEtPVlCU0hG`W zaY73-PO}pXr)g&5hi92XLOApsGwZyA!0b1g0?fJ4uH6A8OId&;-fW72r93FOg)T1V zUv2&@EI7~)4{*zaR2lsMZ4aoTx!X8!Iw)vGwa5?6loLk1$oUdpH19HR{#&e@jXB}V z;y5ATI#S|<01_O$q91y%#t+|n<4gSzkHU*y18`pb8VvO3hhS^H9248@<(dxK%kk3$ zLh1T~gSZl;7!FD-W^lM;bETs=;Tsk#SYga^o`1LAT1na>IwA-Fkt!v40ib}p z66B@enhL!@pinx_0zwrW00H26>0(2446bx+g%TnRt_ltUK;g*a1O#!!g4jZpR*0|x zAoK#^!~}6bl_xr9Ydkzm!J&`HaO?tfK{$~d0%@Y7i>NqUX@ZlE5D`MvNdO@bASk3u zSr~ZHI*d$m000mGNkldfM%@)Az}YdG2e8q_juid_F9!dfdqc9w$w9bJE^Y-cFmxA$-*YeYmqPZs>yZHL z=j)6sL7@vND+@}MwS$fB1gS);q)FV&Ad0}BAd*%FMHEG|G{+j)2bItSJK)3gCD*0I$Y=#~L;{DClI|c_kAVQ}k9zb%DykQl05s+N!p1!i`S75C~_!n2rfz zVP^s8XoYU56gL`YlrSP0$Qz}MdX2~v28?QqpfEHlp*G4?N@WrgnmJsIWJ^v3N`ha`}9DMFq^sWJ!5hX*QcHEhQh$j~mx8XU<`V&N^hl zQAh1xa@on99n6=>N-E)>gi}FDN|XRJ){YfnF0ip=*c{5B1WzUis+U~iw=~z+*V@F( zc8DpL zU%uk0r=DB4cFU$s8=qUZr)5WwO$~Lm?`z|;zhV5iz0W;UzHMDidvonTM@>gd-AH$B zroYDIYT_n3*i)%&Y^XQa+ZE4@bnM!Z&x{P1>SuNg)z(y1l$Xb2(IB7g?CjXJt7Yxl zH7i%Fcy{eG9UYw~5B7H%Yp@EVm_X=O zz`7`l#k#NsIwkg$Sojd(#SIQSa-sLL5 zo+tHEK!F16dQ8R8@`w%!J0H>k(ENM-Z-F9Bntr3kJ4RvKy)V-60R3ON>WomZj5Alk zl9<<7o+SX>(zwN9Wp_Om40p=Mm1Ms!o#J^Y>k0S+-oZVs@%U*0pBdOK{Kr-ltHQe# zNCr=l{ctdWbE?oGFX59Q00?YQXpL6k#})`cQvslZLwq%W1Wr93 z$@Ic|=twmpdty3Dc<73fLlX+E;2GId6-2U>K!1HKN&)S|>vOw3! z@V34_R)M^QHNwIy0oEp)0%08q^@u4+tFS+pA!JZQd0dQeg@P@%NU+fnO&kLUCt2wH zkUmEu^lX=S{?CFkM*1d6E-*xKt+LHr%G707)srVa678k4x~!BwC40 z83ks>#hS#jI29UtvfYu%SZL)*^kppcVIqu97iLOkh#aIbmYW(?MAe0Rgi9W}z(y0w zlXzo3nm~|)5S$#{FblCVdn7)<+1l!`kHV^nzJLSrVM366*pR3bTVS1(swK*rF2B zPy@*jX=M>9nL7%=fHdf+N_W(Q4iSEYP%;EVLqt7Bhm+N(JJMig=YqqJ&Zr7AfE*-) zpt(c9u@4gH0udmmO_F)qR8}cjE~bO33`!+t4<(!88hd&fdND^&_O_D+g#k4>qS5SK z_r$Nb@+Uw3VSj%gS?l!a(>pr5X3UtezrB6Zq)8(qDKcKty{S_s4-5=Wm@t9dG9HhQ z8&{u9Cbgu}r^B2yVHRrIy=1dts zuK(gU9y2tE4vdb5c?n?Fm>ptDN=h^_P3DMw(y~(muL_&!A_=q5tK_;XlTD4KB_$~1 zlh!jgJIBBe{EG6*cp?#t#o~zsdXnqLg(@s@95gxv~BCQ<}KT{Z{FGz$h7V6*wxy)X5G5od-p~oUOboa zd)i}}kzI`&HY|T~@8(UL);zOgb7S+?EgRRbZ*AEDl88ofxqLJ?SQAV2^z`oI)7I9y zci&J~cTL_ut)}+vh;U{vB=Ob~8ZoRhr?&KzUmmdEUY3Hpuo z9H!6tfCX3r)(8Nn3;P#-Ohgxam`zF(%-F3vTq9m=F&vA?Mq@brY$ z9lO-G)BZMWE@gj*w&Qt`==Qf*ymOPfHmQ4y%_pD#k%sr%KmXg`!s{S$8{EI!{zB>h zl9DMD0R3MIJxz8Z%;f-Jjt-c30otFlU;n0bXV;Vb5|EpqLI`puYkF zn}dUnh++poL35A;CdkAcIGZ>t{n=GZ_1aa2jfEa+)5f2PR2*mM-)UWd9{T>D9|~7w1q)DE zW$auG2lWa^bZ%29i+!v>bVza2%i)fb(g{DHET~sN3Yvr97{%b6kn%P0!(10n50GkSCSAx70c+9+%cmU-99#^GAEC4e&r2|I+e<=d-Re}>(C_#Wi-(s9m z3RP$NLbbpTj{_*Qf`b4cKrsRiz~g{c5J#Z|pcG2iL=|v!C;&J>kVFa43P7iH01myN zEmd$%Ls}{Q@IAL5h60?1Jl!c>6&wcm;RL{WY(p#nO>lDHN`_W&7#ItniHH_XS`o;J z%vtP$SBS(P#028KwnW50M<|qZhe(tFCqgLcOB3B4z=QHgCfYy_eZk?Rm4S#$s8S*v z2IzzuR1r%@!V!o_%l7v-ZEI?6*~wMUz|c@SOIP)$Qk_FXTRS?Q*}3zNOBGx3)B8?4U`Qu6xb0-Xvy^8X$pN6A&5e4v?YYa-xv`ckbpi&BTF0? zzR;nmSt2c$#04x(QE3y=hJ-h^N*DpnX(Ikc2t;&)nVTgj_%FZweC31qoM$pqPPyp_PbYytSu9Da5LIK3#@U#P^C(H!9=NSBO67j&S? zKy-m8ExI=8mr@ms|e@9(tyyH=_8iZf-V@} zogoutlR$=`3K)rrP-Tu0G>~22XlO%-3=JIy*sKr}aN(RaHpQhcY!PEhjB;U;OqCHC zNHzx+-B->$q-y0e8~b|iyZ_#v-X7ogtE;QIg`7BX;>gHI{kU-@B_;7#tej72SvsAG zMWW=B!^6W6nwy&|D=Wz`xsc{|eERemRaG@-pLO1$hs>EWb>@W^UV7yG1;?LoB5Cma z`A3#VBHofW&&g()0%pgyXo~`<%@Q*UN5rHM(UTd$gO!FQ78EnG5HMp*<_iy9s{ZL+ zLwEhOYt724%F<}WR8&?5GTc}D3M$Gg6N!>&G{%3CScEKHCh+}iCX*f-93(LwKYqgE zlTLl#`#$vMH(h!C+yC(o5B;HL(W0{ZA7Q@8XHi%$M#rOY9#$5g$M*Ob??(a&+hPaq zgez02X@i4vJG)Nm=s0=L-V1l^SlYPxpEhs#r;VFFvVOxm*KfFb!^Zb)-ulk%&FAmi zf3@$wA@I+wsXn2hVbQc{hfkY2bNaL+=N)m#j2Wmjb?Vfkjy!Vyym{ltO_(-yYS#C= z2L`(O2YUyHvVKreTbnbcysT_WO%0yEu(tZhSafzaGrhZO_V#VZZGP_c`eH*rnwo;)k-SVwCM~mBW>{VJMba24V=b+V!d1g5h386IP>0QbAsA&uHhvHsNXdjW+$vLhBRuQf{Qn=E)LXDlejZ zN|}LCk(AT%000mGNkl$>4R&kyh2Sb&jz zn?_;(mJtW-+eQk|(VXhsVWDeRsu+6qqV8;TH=2CO`ZZ9)+8| z2H?F0WBjEl)c>sbaM|9-@t*%;J7PA%Tj)*8I;DAFY0avBfAy6DZ0ii6= zK^#D&32+F+0uI8N0tEm+031I=S{;Bppvh4v9fcC2TVPj0ajnoDP-Qsi00;m=ljEnA zDgZ(gM4E`eD8Zq-l4u4Tx*SAqC9;is^D=60EtMH09B#^&R@wMxUhlK zg}{PV;wl)Z7I+Bh=u0cQ(S=}(k}8}azD%VIIFScLT0My>Lcr;ZwumCIAX0<~54{iw zI8Lh2U6s<8Rk%_j9HD7wWMrVTvupRR*6rI?Z*F{QNAvT$T3R|gI!1))7_1me%`q0uEtIO*|_P>#!dg#xap3@O%F6~ zdZuOP>Xw~9Zrt?y#!WwM-1NuIjayn;p6~BNVJ-?VFHtObSAYNhmX>XyGz2zrv$47H zNz(HEzU3`DS2S*VuyIr4=FJ;7Z{DzZ^QM-aUHyGbpAfmdzwe1%EgLpB(&hJ?8=u|W z_~hos|7zLU+24mLumchEK!5+nmX=MM5zzSj=0>hfHg9hHZR4gV8#g`Gva_|jJ4bjI ze)kgQ4gLMCEiLOeH{Q3oapUI3<(nI~wX|&L?rshO0$&o6=-}Yvt-J4O+RC6SH#a`B zdDF_xn^3j4ua8z#BJ$&&LfBu*tlf{$DU-N0O2N!#mX|)h(yvD4P_!BB9$2p z8=+^DjeQA!@hfwP42#Psq^VpKyPTGi?uSaqWFV9zilt=L&;j8juJ9u^7OI4v+&^!Y zNRn}Krqdvy38^e<(~4#4r414jgpPdFpnER7@1+YkZ0HY8qF5!N09`<~OXQQ1z>$Ww z=zs!lXyzUr(-W~3p+Nd#XEcYOsGTZ2;H1qckU*A1cf^7-DNITe6vB6eqapJJVSlkM ztOaZ|fn!GGP@*~SAg~*Yi*PvU4h|h7Ab~*{8h>CG5MgH1F>7W)i5m1`vWx;VxF<0R z0#SxJG8Q;yp`;ZG2t%MdIGl_~MMaNCr+B!*VkWCnyjp< zF0ZJVIC0X98HdiCIqSj;FIlwcxKmC!n}5{&zTLa0TzB=1AV6(wj*>X4k-*W-0lLLxw@ir?mvA{Im6hEN5h)rn!;p}* z6%2?P^8ML&{O8f1`()~hi*o<;j~l=7#oi|$9UACK#z}j<2@@uilqUEvP{7Cc$$%B) zeLo-M^VwW>cyOSvw>MeJEpo{lF1RS?`>_cVQ{VYL8er%gsoo#}5rv_V&$fYdf}i$I;uGPujfY@(r7=ShMyG zYuCPM+xGJsw;Z=^+r=Fn6Q5r{y|HmxYwMKVyK1*@o3?)atmoFx-L&cGXP#zkJOzr#}14Y0s^_eACABo?lqe(y!MJao}5Yc9HF%f;W` ze$g#EFaCDZrQh3p>Gv8h{ch8nf7txyA8vZ{51TIk=@#I!AMd&Hm;0{#<=!iQx%;ZS z9kgEkt6f+Bs^#im?Y`zWt=If!=QY3C@wR(+zU|(wGHH(&qTP1pT)-F3fx{<`08xbC-WuKVqi*WbVFy8G5# zci&^z-S_x)_xDqf&Tzl^yuD$o!YwrVATzlWzYwvsR+WXdBd*AYF?p<-sz0be( z-qmlt_qn&;v;M8WS$p-bfmK)i`su5Fz2WL#uetiy%dh^;AFuw+6IcIc+0_>L)78Iz z?CM{yzWUcsUj6H3SO0p&TYk0tEx&r?Ex&p^EWw`&@l|j66|myUyO&*g_sT2pekv^g zXpy^CUU}DwEAD*ivO6Aq^G{d4>8C3$zWt9EeSi6d-&u9RZBM@8TTfo{v@C;L_B z$cucS;1YNOha6RSyhwH^Sogjk?7RO@_!~aYR`u|f5b);$4&tgHj>qTVlOj^veakk! z_j|d4oL;pbHhzBXiu1m?{LIfSKl{rLo;vsI%g_D#3gEnNQZ7I5o6FyD>k0=Kd~bz= zi+;2MxbO!nF8$dky!n?aLRfj(oerM9;w}fzT=^>pYp(i@gSA)Rv+k|;I(Y7y`y4#~ zw%-Eluf6}3!7&$?PR=Wo40lj)%Di0p>|1{QSAd&oak+ZQ-G31{qrF_Y>hk|OD6Dw% zFYQ8H@}DaJ)`ewyx)zIs2*4F#Lt`~8ml{uH|2Yf<3Iuf;Hb=@{lO z?I8P1Wlz!(Q223G%CM#a;;Jt#3mp$=avf;}zyXI)!s)6Gp#&VgP{IHaC?KwhDhLYz z0)WE{G5hyFxf!a3(v=BSfzvx1%xs$`{AJ;Hzsauj=`W&W7jbu8&x0& zX-V1WjpscGk9=c0i3dO67@!aqfcvtMAJx3gc}z6q46Hm$Cpbn3F~?wFZ|7*tNpwUG zc)w95gm4lfSYa%}4ul{!kd;F8hHwD&BH_FUg9vUU5ui^trra3h)60`;jF?op(S(Ra zn3o@De4yb#TnI2Oa!O@CNFY=qV4|8N?2|gf>61DV8##Kr1U~^8&nNUDJ%bb7h9&eQ zejslP8gA`}zZLQ@WyWH@fzbpLjFc6%r+)vycxE{X-$iaC(V&qP=R>?$UMr6j@X{uU6vO*iCLYxv~Lc~$ifpRi^GNcnMN>q03219KzU?B0P zpj;%P%7o4t57ZE-E3lTV3N#Lma4Q+f@guWLVn$GKUD{(3lg%2FF~&EccN!Bj_Tw4D zWnf@T1iFkb6PHKT7)}OLVw5++jRO-zjY@pwd>9NI*#KjhOkjFsTE2DLoR5Cu>)-hL zrcE2U_RQz~&aTeN%F2$8j?T``>gwvLQ>Ra#KI630&N%+~6Rx}N?blv&{Y4jDbp7>9 zPdxFIQ%^l@-jPRERaK1}H;#mvaZAcdD_Aj}$o&QjuIQHdt#1JZ~@6Lg4xpjz^+ip7b~GXY;vy-j~e4&_E`W z&gXL^{M=*b{e0=H!^`h`bT}U8>|!k>(H-S`Bu2;Ia5nZ!F2K6MAR9dh@dVOhW0gB%$Q$fT-enb9*5h;tt6a1Kl|c1AHN zL55&dYQ(hJJChU)NrCKpG(?ril*Ljl{a1?8`pAwIZDZYSKBNE}b*! zTqK?AOy{~n7)<9<>0B zoLrE~jij=Sf>`K4ES;kSytM5S4aL$C{^4{ko6b23Y!HzXPv?e0PDZB}3@8i_%pjEL zJd(~0q;nmiNeim;5N^FVFL(3Q?7()q5? zGV!#v26jOCDm$HQI-QNAvls!3^;t^3B%N0#m&@c*ncPSwpUvd*=^PXfB$XXXWh1Ff zc{&$Q<(QyA(z!C*(as$TQ^O9}2RqY>&P)&-I>7808U_Hd5xW-od^(>_=V1%dqqqrY zYMyk+^tA02vf zZB$|p0x{X$3KEeD#JKDS3O{Jd%Q~d1f_ohGPp(;g;fK4PYJN3-*tV>vXVqpuZ7q-w zOYk6_1E>OpDo6nwy-@u>fr!Np!9z;FNNk^cJx z@C_G)fyyH=1lzX2Db#8(@u> zCK@w8gdtJO955s7rP#F%#+_6rCAvLDPl%a`Y?GPDM*^-^47h=`PsrhBGF z8t2RSYWC&(O87S9?eSIOtKC<`S0~HltHM{Euid`#zUqBpcFdBINU8%X+?c?01tuSO z<79H-OhK4Tk+25pmC5QHlggzm z46>h&K+!;TQcA3ySZMgs0e*=4EQ?wd?7%V#Y88~oF5i%XsDeQSO$xX!CV{My)xTRp zJ#fYiryw$I#!AX=DEiWCuYxj>-)c|jpTpsN$v_yF5wRy*74Riixi%Dw{*~cGP!foR zT8&8XqiVg(5VH={9cV%zmNFWsF3`k4RUx1@z;5EIoVg>7juny{6vLA9Q)TFS1?+To zU$=sqaHi}#d<2gzQ^2Igg{y#i(GX#3bwLmff_Pv*=!|MKA*xJ5GJqWbbcRA|ku`=4 zIcj$VD`=eB|c$y!-m=ue;=uOOHN!;UR|}($Fv=7K>I@GBd?v z@sjZFltj0ztc+XKQa&Zn_>tsaJRUpdm_-}E@%7i=@*i7(CzZ=F>lwRRrat@3QD6J=xR3nv z(AlRxf6bd8yXl7QfB0RxyL;M{$z|oG)m1eZ*Z2K=K1iif*=z=sN3WR;Xo`s366 zlP2SPsE09eIZANUE(?Nf0VWNeQNW4nD~OBZHpsJTk_kPK7knV7g!0oBj3~eXm>tt( z3K)T^!qXeKhXF@QNKAa#1a-!*F@C9nHWO?Ud1kCty>XDS;^o%yen8yb*}T^cYiRJEER-00ef0s!lY9^SLZgEI$S|el6h6-y;bZJg&K3}+6Q?N;+uejs5HUhR_Q^skedz*%_2>n7GRmBfsD?_iGT~EX)XAAxXz8zeYo<sKjeS81-5_ju0QXG zOTM)EChLc<@mvbN_Zp9T@ZpL#065_I3P^Dk;!C##M91^rSRxZZAj3Jt;glA_f6xKY zVjijvII5t77nf9D3QovD`Dvm%K(7K$6&wmkp#*V6R~DKaf^ZldI2<;I@VE*B9#R&d z05ox!0vxX#-+{5GuydL?xDn?jY*__4+sU4koSRU1DoFNl1cx6Y2RcF!sPHt;8IkN! zMJr0!3MHHX4+DU{JSlk$fYTA6i6;}x48bF(L;^`j6;hdaASoSE7>g#tJNS9JFbYGU zMxVsv3Yk;^nqYuavX30Z(&WYhfg!FJ1j5rPF%~79k#Hh|5|3LRoTLOuBO>7$=Eh}E zaO8AI?naJ;YNpgG`-o*+W5X9~CAxEsK*n{bR4X~pL>j`5%R0kqK%^K4Zh)}vaPqd`*#+tWAJcdP}mh_bOgc?|haAaIQsPzNJLUZ(ij(xzH zDMS24N8COD`8nh)95kzLanx7EM@sFKk61 z6x2XN_$g5a;q-z5VC`U_BNTcu7fPHe8pwt39EN#g7aBHnpmqI4mn>fQ{P6HFN$ZtY zUUmEJKYs6f-*@x7-+l9Y-h12$#~*v_@iS&lD=#k@Kc2)KKk+h|v@yo>3|FYhWHO$J zCz6SZin8+Z((*F$++U;UAPeZzylV`?k}MnGF;haH## z%3}&91)v*V%G8(zIP;~X%Ji8LCkAS>A0e{1S&6>%!W!5O9D(q#E_8v8C?wFuHf6Kp zGU?fyHqL$c!P1*<>|4C(@mbT>U3T%h+rFONvZ1!NYGT89^p8ZmTrQUnKV-#0J~uQt zSowpWdedew3TNF63IAamG7yq+b?$Z9AS^diLr)w7^KvM`%+bmf0J`B|xB&_q=@5zO z)18iNiUtKJiH2Ai{qYAJsa%``0iMr9;AiV0oLSScT80CVJ;GL{7j_8wO}7kZ7oLVO zdt`cf31X~YWju9x#`9ERgh8q$-q!J?kY&M~k_k${!Z9|T~>A)L}k%olTE&lU*@42MY(4qH@$ zf$B(8%Z8i2u>8yq?)chM-A`u*+bS}{^|^F?x~Ft_eQMXo9^Cz@pT>Qgp3#dzT}Pxb z$ApAoBeMI8Dw1Pj7FII82Q#W-Pa{#KBkKsjF9`$yp$ijqt+06#9nqO4CIUcVIC>$6 zBZ4YGtE13`A&>wMfalW%uSR%pI4-@gFii}Eh8U14L%@deJ)tHj4~4!Cp$UOVfS<8& zGrHjI@E`;U;3&WfVgcAVT0vNG_&Kv zJ~yzn#mIUTXC2+q0iBT+3B`hEWnc&tPy&)@1u1}|z)2Ty=p$QqZoKict4{r=&0l_E z|H^d#zKYaPeJWKy++EVOZg|7L{BFxfe`I_s5dH$t5y@0R0FYv!$q_+{>HmlSzrX^1 zu=Qg@E_gN&Y)DBj3#SjWW(b;?Bf}wu90@hGP_BMC|Es?g^PMAp%5V){SA3j2cu?kI0N9pFkEi42zyPPfq@}z>kNS zFf$_YqscScBuy|%nIN4Ps&QL5IpU=vW;$yY@v0*tNGkJ`G(y9Kf{5?OeUhfJCQMVLq7Ub1;+v`Zd}6V(CI~& zBPF70a__XKZC+3v_qV@ONf|vOvGgz?7WME+MrS#AS->0^B_VNTgg>x+G)1M& z64Rs?mPc)rhYdQmWn53f)JOwC2PVRB>a;F-uoXM7cH zX+i;*Q3h$161eN0Wf4P&v5*pdOHI&V0?!2f#=0Dd0aZLOZvx((F*Ksk2g&RvjE_fQ zD+1YahLM;8tr3xbnn^O%GI^P-Oo>c+NKD9JF6Qe=C<7h~O@T^Kz)NJ+KsZZ-NCZZt zYzXjBg$O6DOp_AJFl+ds=T%TZw8A{-dD}kriKD;t<$-|#ve^@kUp!^<m@gdWut$N!v=dXB@&J2xN+;o^DIJ%)fs0URPF01<_u(*@f?rx%l=3kIRp zgsTPu55i&g#3mA}i5YPuXHw`1X-L+F*o|s3@N4$Bm91VC|KjI{u6fJWLnbZ1=$wro zcvsV7e;C}dvAVh{8IM&|lr!sqE6`jn_SJ80pLr;5v!0P8oP1JfeBQ-y&Y%x6Q4h1D z82-=RWOODtQ7R9WS+i&Sx;o~JNP^BPHP-9ePRADsJC;@m%+N#-al!^p{Uf_FTU!zjo1RU2R z3Mz~}RC!TS6A1M<^Xnu}V*B7=l41&YM0P8{@_n)wYnYeikP(0=tbq}#B^Ws2`vK|) z75Joa5(XiQgDsH#AajC*p(+$`oI*DW>=cY98|_!HH;`vL23UiRrJ(|~nOyL@WqUsH z?VjsCv+YeE-*WLMc3=7Vy&wEe_UTQS5ocf&dd2Ms!v6RP)r9Oxg`9{iv0Os8yxnec z45)-A^aT*&OMoQ!VW5P8suA13T$-o1%W5X3oWE}ubLMeQPCPs&c zfe;8C{i!;jDJ8qC5aEo427y>Ep&^6j0!0F40)cQB%~iH9J0x;wHL@QN45HAzdsc01 z{J?kDUGce97kqrpMIYaA?Pr@m_T8@EE>k9p^^i;l6oVgy0eU$hPHfa}l<*%7;ZIs! z6CD9MVhsSCCQ9GVSNTk~>;6A(`^c@&UH$22FZ{^r|A#%h=drSg;sE}i=iX&s-DP(L z<6A{Yl)?r-f)$As#!y(<7%QbR5p4)x!Gzw%7&}{IVx=U2iEqI~Q6rleAqFt3!0z71 z-#i01xKh|D33wRKobx|t&N(yByl{`adH(3h3$MR(^|P;F5JS{VT30)zyH$h@)>p!ZdvL7Sq5$0-h24A+NQec zg4-pZ0>~RdqN)5}GHe@i%G|TdGis{V?!pr`iS};fJ^5WiCd?aAO}kSb)3jPzgh9LH z({5u_8PmXxX*@$jt8Ef3K%>S}O^IYObf$ozSGPYB+SY}^lVC_1L!ygFT8lw=Di~pC z?SQR2PIcROLN^6S7`J?n$(d5MNo_qZk=G`z{S>U!y|SwCc5vJAZ0ep)i;QCD<=;l1 z;ka!~69Thpa+iaWdVF%i3h_e=>7&7P!$9OBbe3rQls*}k2+3GHkUJYNthjaC0OOF{ zmBJahI-IZKVThcpJi{2m5ry#{zyq^_cUZcbc!zjexMl(9Iy;@3V1{tdGqf(B?e$^^ zuMWA)Crk~+1$n`f-SFemgY%}!U`FKTYxZ6P`0(0qwdCGlEa&&A&p zQ)3p?S$Vwx@#2)7jO692AtNP~j%7nDg(Rx6oPLykExj4MmY#=SYB#Dhf=E^p<}xZN z%PEQ=mz1og97@?vd91ck1S%z69`G*rBAH9Xpo}~iS75H`!Z3;EbT-xbY+^+*XDd9_ zGnGh!tOWl`~=7=BEa;Gw<46h9zH84NC$(j?xQL!TQk&;^>{O@et zQm#k8{&L~tkDhqrc>n6l7Y{%E?Q5@`KY3#3(vRiFje`dd&Mz$;c=x@Z4nJ#2pG_>w zwl9eUe2Z2pDr=;>ckn1!EyCCcK$4!COn05>_Mt z;+NX>c=QGgk@$pZeGW$1lh_quq~`ES$&HdLrTDQ|>43RX0mV@(k8O)t9encI&Dc|W zzd5T9*!4s(DglG+&d z5UMBB->RQO*{uKWQ)po&0x3KyDH95KoKn)s&dQP6Ov+5^E^Y3{NlQ(r#uWzDC}B>E z5hp+DiBE!Q)TIW`r;mbFBTf*Bfw}}SDX9!Oew;d-@Bm7JArxdoio_@|ROEyJjTF;Z zo5NQRz?+q-3Ov_LNXai|^ z#+1~dl~kreH8ex%^I%+4gEuLJRHD){lm)!70d$4Iq3P2VClvrFF&h6W>sCe-~W@dML{Ru?s9+F}}k zVE`I~zdz_fl>f^L`~?62|NpZ4Bp?6)00v1!K~w_(0Fy@aRm8JF00000NkvXXu0mjf D1ZlvC literal 0 HcmV?d00001 diff --git a/src/assets/img/logo.png b/src/assets/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8d8fc7db1aa4b67d608cac6c2952aade86232a GIT binary patch literal 19332 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 + + +) diff --git a/src/pages/admin/Admin.tsx b/src/pages/admin/Admin.tsx new file mode 100644 index 0000000..d185b78 --- /dev/null +++ b/src/pages/admin/Admin.tsx @@ -0,0 +1,34 @@ +import React, { useState } from 'react'; +import { Layout, theme } from 'antd'; +import Slider from './components/Slider'; +import HeaderCom from './components/Header'; +import { Outlet } from 'react-router'; + +const { Content } = Layout; + +export const Admin: React.FC = () => { + const [collapsed, setCollapsed] = useState(false); + const { + token: { colorBgContainer, borderRadiusLG }, + } = theme.useToken(); + + return ( + + + + + + + + + + ); +}; \ No newline at end of file diff --git a/src/pages/admin/auth/Auth.tsx b/src/pages/admin/auth/Auth.tsx new file mode 100644 index 0000000..eab761a --- /dev/null +++ b/src/pages/admin/auth/Auth.tsx @@ -0,0 +1,112 @@ +import { type ReactNode } from 'react' +import './auth.scss' +import { useTranslation } from 'react-i18next'; +import { UserRole, type User } from '../../../interfaces/user.interface'; +import { message } from 'antd'; +export default function Auth({ children }: { + children: ReactNode; +}) { + const {t} = useTranslation() + let isLogin = localStorage.getItem("userLogin") + + function loginHandle(data: { + userName: string, + password: string + }) { + let userList: User[] = JSON.parse(localStorage.getItem("userList")) + + let user = userList.find(item => item.userName == data.userName) + + if(user) { + if(user.password != data.password) { + message.error(t('password-incorrect')) + return + } + if(user.role != UserRole.ADMIN) { + message.error(t('ban-khong-co-quyen-truy-cap')) + return + } + localStorage.setItem("userLogin", JSON.stringify(user)) + window.location.reload() + }else { + message.error(t('user-not-found')) + return + } + } + + if (isLogin) { + return <>{children} + } else { + return

+
+ {/*
+
+

Create Account

+ + or use your email for registration + + + + + +
*/} +
+
{ + e.preventDefault() + loginHandle({ + userName: (e.target as any).userName.value, + password: (e.target as any).password.value, + }) + }}> +

{t('sign-in')}

+ + {t('or-use-your-account')} + + + {t('forgot-your-password')} + + +
+
+
+
+

{t('welcome-back')}

+

{t('to-keep-connected-with-us-please-login-with-your-personal-info')}

+ +
+
+

{t('hello-friend')}

+

{t('enter-your-personal-details-and-start-journey-with-us')}

+ {/* */} +
+
+
+
+
+ + } +} diff --git a/src/pages/admin/auth/auth.scss b/src/pages/admin/auth/auth.scss new file mode 100644 index 0000000..31800be --- /dev/null +++ b/src/pages/admin/auth/auth.scss @@ -0,0 +1,258 @@ +@import url('https://fonts.googleapis.com/css?family=Montserrat:400,800'); + +.admin_login_page { + * { + margin: 0; + padding: 0; + box-sizing: border-box; + } + + + background: #f6f5f7; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + font-family: 'Montserrat', sans-serif; + height: 100vh; + + + + h1 { + font-weight: bold; + margin: 0; + } + + h2 { + text-align: center; + } + + p { + font-size: 14px; + font-weight: 100; + line-height: 20px; + letter-spacing: 0.5px; + margin: 20px 0 30px; + } + + span { + font-size: 12px; + } + + a { + color: #333; + font-size: 14px; + text-decoration: none; + margin: 15px 0; + } + + button { + border-radius: 20px; + border: 1px solid #FF4B2B; + background-color: #FF4B2B; + color: #FFFFFF; + font-size: 12px; + font-weight: bold; + padding: 12px 45px; + letter-spacing: 1px; + text-transform: uppercase; + transition: transform 80ms ease-in; + } + + button:active { + transform: scale(0.95); + } + + button:focus { + outline: none; + } + + button.ghost { + background-color: transparent; + border-color: #FFFFFF; + } + + form { + background-color: #FFFFFF; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + padding: 0 50px; + height: 100%; + text-align: center; + } + + input { + background-color: #eee; + border: none; + padding: 12px 15px; + margin: 8px 0; + width: 100%; + } + + .container { + background-color: #fff; + border-radius: 10px; + box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), + 0 10px 10px rgba(0, 0, 0, 0.22); + position: relative; + overflow: hidden; + width: 768px; + max-width: 100%; + min-height: 480px; + } + + .form-container { + position: absolute; + top: 0; + height: 100%; + transition: all 0.6s ease-in-out; + } + + .sign-in-container { + left: 0; + width: 50%; + z-index: 2; + } + + .container.right-panel-active .sign-in-container { + transform: translateX(100%); + } + + .sign-up-container { + left: 0; + width: 50%; + opacity: 0; + z-index: 1; + } + + .container.right-panel-active .sign-up-container { + transform: translateX(100%); + opacity: 1; + z-index: 5; + animation: show 0.6s; + } + + @keyframes show { + + 0%, + 49.99% { + opacity: 0; + z-index: 1; + } + + 50%, + 100% { + opacity: 1; + z-index: 5; + } + } + + .overlay-container { + position: absolute; + top: 0; + left: 50%; + width: 50%; + height: 100%; + overflow: hidden; + transition: transform 0.6s ease-in-out; + z-index: 100; + } + + .container.right-panel-active .overlay-container { + transform: translateX(-100%); + } + + .overlay { + background: #FF416C; + background: -webkit-linear-gradient(to right, #FF4B2B, #FF416C); + background: linear-gradient(to right, #FF4B2B, #FF416C); + background-repeat: no-repeat; + background-size: cover; + background-position: 0 0; + color: #FFFFFF; + position: relative; + left: -100%; + height: 100%; + width: 200%; + transform: translateX(0); + transition: transform 0.6s ease-in-out; + } + + .container.right-panel-active .overlay { + transform: translateX(50%); + } + + .overlay-panel { + position: absolute; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + padding: 0 40px; + text-align: center; + top: 0; + height: 100%; + width: 50%; + transform: translateX(0); + transition: transform 0.6s ease-in-out; + } + + .overlay-left { + transform: translateX(-20%); + } + + .container.right-panel-active .overlay-left { + transform: translateX(0); + } + + .overlay-right { + right: 0; + transform: translateX(0); + } + + .container.right-panel-active .overlay-right { + transform: translateX(20%); + } + + .social-container { + margin: 20px 0; + } + + .social-container a { + border: 1px solid #DDDDDD; + border-radius: 50%; + display: inline-flex; + justify-content: center; + align-items: center; + margin: 0 5px; + height: 40px; + width: 40px; + } + + footer { + background-color: #222; + color: #fff; + font-size: 14px; + bottom: 0; + position: fixed; + left: 0; + right: 0; + text-align: center; + z-index: 999; + } + + footer p { + margin: 10px 0; + } + + footer i { + color: red; + } + + footer a { + color: #3c97bf; + text-decoration: none; + } +} \ No newline at end of file diff --git a/src/pages/admin/category-management/CategoryManagement.tsx b/src/pages/admin/category-management/CategoryManagement.tsx new file mode 100644 index 0000000..970e7bd --- /dev/null +++ b/src/pages/admin/category-management/CategoryManagement.tsx @@ -0,0 +1,55 @@ +import React, { useState } from 'react' +import { IconData } from './iconData' +import type { Category } from '../../../interfaces/cateogry.interface' +import { Button, Space, Table } from 'antd' +import { useTranslation } from 'react-i18next' + +export default function CategoryManagement() { + + const [categoryList, setCategoryList] = useState(JSON.parse(localStorage.getItem("categoryList") || "[]")) + + console.log('categoryList', categoryList[0].icon) + const {t} = useTranslation() + + const columns = [ + { + title: 'Id', + dataIndex: 'id', + key: 'id', + }, + { + title: 'Title', + dataIndex: 'title', + key: 'title', + }, + { + title: 'Icon', + key: 'address', + render: (_: any, record: Category) => ( + + + + ), + }, + { + title: 'Status', + key: 'isActive', + render: (_: any, record: Category) => ( + + { + record.isActive ? + : + + } + + ), + }, + ] + + return ( +
+

CategoryManagement

+ ; + + ) +} diff --git a/src/pages/admin/category-management/components/FormAdd.tsx b/src/pages/admin/category-management/components/FormAdd.tsx new file mode 100644 index 0000000..4740bcc --- /dev/null +++ b/src/pages/admin/category-management/components/FormAdd.tsx @@ -0,0 +1,9 @@ +import React from 'react' + +export default function FormAdd() { + return ( +
+ FormAdd +
+ ) +} diff --git a/src/pages/admin/category-management/iconData.ts b/src/pages/admin/category-management/iconData.ts new file mode 100644 index 0000000..e6730b7 --- /dev/null +++ b/src/pages/admin/category-management/iconData.ts @@ -0,0 +1,182 @@ +export const IconData = [ + "fa-classic fa-solid fa-house ", + "fa-classic fa-solid fa-circle-user ", + "fa-classic fa-solid fa-image ", + "fa-classic fa-solid fa-file ", + "fa-classic fa-solid fa-camera ", + "fa-classic fa-solid fa-calendar ", + "fa-classic fa-solid fa-cloud ", + "fa-classic fa-solid fa-alarm-clock ", + "fa-classic fa-solid fa-truck ", + "fa-classic fa-solid fa-thumbs-up ", + "fa-classic fa-solid fa-face-smile ", + "fa-classic fa-solid fa-headphones ", + "fa-classic fa-solid fa-bell ", + "fa-classic fa-solid fa-user ", + "fa-classic fa-solid fa-comment ", + "fa-classic fa-solid fa-envelope ", + "fa-classic fa-solid fa-globe ", + "fa-classic fa-solid fa-trophy ", + "fa-classic fa-solid fa-eye ", + "fa-classic fa-solid fa-inbox ", + "fa-classic fa-solid fa-print ", + "fa-classic fa-solid fa-suitcase ", + "fa-classic fa-solid fa-volume ", + "fa-classic fa-solid fa-magnifying-glass ", + "fa-classic fa-solid fa-check ", + "fa-classic fa-solid fa-download ", + "fa-classic fa-solid fa-font-awesome ", + "fa-classic fa-solid fa-web-awesome ", + "fa-classic fa-solid fa-phone ", + "fa-classic fa-solid fa-bars ", + "fa-classic fa-solid fa-star ", + "fa-classic fa-solid fa-location-dot ", + "fa-classic fa-solid fa-music ", + "fa-classic fa-solid fa-wand-magic-sparkles ", + "fa-classic fa-solid fa-face-awesome ", + "fa-classic fa-solid fa-heart ", + "fa-classic fa-solid fa-arrow-right ", + "fa-classic fa-solid fa-circle-xmark ", + "fa-classic fa-solid fa-bomb ", + "fa-classic fa-solid fa-poo ", + "fa-classic fa-solid fa-camera-retro ", + "fa-classic fa-solid fa-xmark ", + "fa-classic fa-solid fa-caret-up ", + "fa-classic fa-solid fa-truck-fast ", + "fa-classic fa-solid fa-pen-nib ", + "fa-classic fa-solid fa-arrow-up ", + "fa-classic fa-solid fa-hippo ", + "fa-classic fa-solid fa-calendar-days ", + "fa-classic fa-solid fa-paperclip ", + "fa-classic fa-solid fa-shield-halved ", + "fa-classic fa-solid fa-cart-shopping ", + "fa-classic fa-solid fa-clipboard ", + "fa-classic fa-solid fa-filter ", + "fa-classic fa-solid fa-circle-info ", + "fa-classic fa-solid fa-arrow-up-from-bracket ", + "fa-classic fa-solid fa-bolt ", + "fa-classic fa-solid fa-raygun ", + "fa-classic fa-solid fa-car ", + "fa-classic fa-solid fa-ghost ", + "fa-classic fa-solid fa-mug-hot ", + "fa-classic fa-solid fa-rocket-launch ", + "fa-classic fa-solid fa-pen ", + "fa-classic fa-solid fa-umbrella ", + "fa-classic fa-solid fa-gift ", + "fa-classic fa-solid fa-film ", + "fa-classic fa-solid fa-grid-2 ", + "fa-classic fa-solid fa-list ", + "fa-classic fa-solid fa-gear ", + "fa-classic fa-solid fa-trash ", + "fa-classic fa-solid fa-circle-up ", + "fa-classic fa-solid fa-circle-down ", + "fa-classic fa-solid fa-rotate-right ", + "fa-classic fa-solid fa-sparkles ", + "fa-classic fa-solid fa-lock ", + "fa-classic fa-solid fa-barcode ", + "fa-classic fa-solid fa-tag ", + "fa-classic fa-solid fa-book ", + "fa-classic fa-solid fa-bookmark ", + "fa-classic fa-solid fa-font ", + "fa-classic fa-solid fa-video ", + "fa-classic fa-solid fa-circle-half-stroke ", + "fa-classic fa-solid fa-droplet ", + "fa-classic fa-solid fa-pen-to-square ", + "fa-classic fa-solid fa-share-from-square ", + "fa-classic fa-solid fa-plus ", + "fa-classic fa-solid fa-minus ", + "fa-classic fa-solid fa-share ", + "fa-classic fa-solid fa-circle-exclamation ", + "fa-classic fa-solid fa-fire ", + "fa-classic fa-solid fa-eye-slash ", + "fa-classic fa-solid fa-plane ", + "fa-classic fa-solid fa-magnet ", + "fa-classic fa-solid fa-hand ", + "fa-classic fa-solid fa-folder ", + "fa-classic fa-solid fa-folder-open ", + "fa-classic fa-solid fa-money-bill ", + "fa-classic fa-solid fa-thumbs-down ", + "fa-classic fa-solid fa-comments ", + "fa-classic fa-solid fa-grill-hot ", + "fa-classic fa-solid fa-lemon ", + "fa-classic fa-solid fa-key ", + "fa-classic fa-solid fa-thumbtack ", + "fa-classic fa-solid fa-gears ", + "fa-classic fa-solid fa-paper-plane ", + "fa-classic fa-solid fa-code ", + "fa-classic fa-solid fa-text ", + "fa-classic fa-solid fa-arrow-down-to-line ", + "fa-classic fa-solid fa-city ", + "fa-classic fa-solid fa-ticket ", + "fa-classic fa-solid fa-tree ", + "fa-classic fa-solid fa-wifi ", + "fa-classic fa-solid fa-window ", + "fa-classic fa-solid fa-burger-soda ", + "fa-classic fa-solid fa-camera-movie ", + "fa-classic fa-solid fa-paint-roller ", + "fa-classic fa-solid fa-bicycle ", + "fa-classic fa-solid fa-sliders ", + "fa-classic fa-solid fa-brush ", + "fa-classic fa-solid fa-hashtag ", + "fa-classic fa-solid fa-megaphone ", + "fa-classic fa-solid fa-flask ", + "fa-classic fa-solid fa-briefcase ", + "fa-classic fa-solid fa-compass ", + "fa-classic fa-solid fa-dumpster-fire ", + "fa-classic fa-solid fa-person ", + "fa-classic fa-solid fa-person-dress ", + "fa-classic fa-solid fa-balloons ", + "fa-classic fa-solid fa-address-book ", + "fa-classic fa-solid fa-bath ", + "fa-classic fa-solid fa-handshake ", + "fa-classic fa-solid fa-snowflake ", + "fa-classic fa-solid fa-right-to-bracket ", + "fa-classic fa-solid fa-earth-americas ", + "fa-classic fa-solid fa-cloud-arrow-up ", + "fa-classic fa-solid fa-binoculars ", + "fa-classic fa-solid fa-palette ", + "fa-classic fa-solid fa-layer-group ", + "fa-classic fa-solid fa-brackets-curly ", + "fa-classic fa-solid fa-users ", + "fa-classic fa-solid fa-gamepad ", + "fa-classic fa-solid fa-business-time ", + "fa-classic fa-solid fa-feather ", + "fa-classic fa-solid fa-sun ", + "fa-classic fa-solid fa-computer-classic ", + "fa-classic fa-solid fa-link ", + "fa-classic fa-solid fa-pen-fancy ", + "fa-classic fa-solid fa-badge-check ", + "fa-classic fa-solid fa-fish ", + "fa-classic fa-solid fa-joystick ", + "fa-classic fa-solid fa-play-pause ", + "fa-classic fa-solid fa-bug ", + "fa-classic fa-solid fa-shop ", + "fa-classic fa-solid fa-mug-saucer ", + "fa-classic fa-solid fa-planet-ringed ", + "fa-classic fa-solid fa-landmark ", + "fa-classic fa-solid fa-campfire ", + "fa-classic fa-solid fa-poo-storm ", + "fa-classic fa-solid fa-chart-simple ", + "fa-classic fa-solid fa-shirt ", + "fa-classic fa-solid fa-files ", + "fa-classic fa-solid fa-dolphin ", + "fa-classic fa-solid fa-anchor ", + "fa-classic fa-solid fa-quote-left ", + "fa-classic fa-solid fa-atom-simple ", + "fa-classic fa-solid fa-bag-shopping ", + "fa-classic fa-solid fa-bed-front ", + "fa-classic fa-solid fa-people-simple ", + "fa-classic fa-solid fa-gauge ", + "fa-classic fa-solid fa-signal-bars ", + "fa-classic fa-solid fa-code-compare ", + "fa-classic fa-solid fa-user-secret ", + "fa-classic fa-solid fa-stethoscope ", + "fa-classic fa-solid fa-car-side ", + "fa-classic fa-solid fa-hand-holding-heart ", + "fa-classic fa-solid fa-ufo ", + "fa-classic fa-solid fa-alien-8bit ", + "fa-classic fa-solid fa-block-question ", + "fa-classic fa-solid fa-aperture ", + "fa-classic fa-solid fa-bird ", + "fa-classic fa-solid fa-strawberry " +] \ No newline at end of file diff --git a/src/pages/admin/components/Header.tsx b/src/pages/admin/components/Header.tsx new file mode 100644 index 0000000..74cca34 --- /dev/null +++ b/src/pages/admin/components/Header.tsx @@ -0,0 +1,39 @@ +import { MenuFoldOutlined, MenuUnfoldOutlined } from '@ant-design/icons'; +import { Button, Layout, theme } from 'antd'; +import { useTranslation } from 'react-i18next'; +const { Header } = Layout; + +export default function HeaderCom({ collapsed, setCollapsed }: { collapsed: boolean, setCollapsed: any }) { + const { + token: { colorBgContainer }, + } = theme.useToken(); + const { t,i18n } = useTranslation() + return ( +
+ +
+ ) +} diff --git a/src/pages/admin/components/Slider.tsx b/src/pages/admin/components/Slider.tsx new file mode 100644 index 0000000..bcb1bd8 --- /dev/null +++ b/src/pages/admin/components/Slider.tsx @@ -0,0 +1,45 @@ +import { UploadOutlined, UserOutlined, VideoCameraOutlined } from '@ant-design/icons' +import { Menu } from 'antd' +import Sider from 'antd/es/layout/Sider' +import { useTranslation } from 'react-i18next' +import { useNavigate } from 'react-router' + +export default function Slider({ collapsed }: { collapsed: boolean }) { + + const { t } = useTranslation() + const navigate = useNavigate() + + return ( + +
+ , + label: t("Quản lý người dùng"), + }, + { + key: 'category', + icon: , + label: t('category-management'), + }, + { + key: 'product', + icon: , + label: t('product-management'), + }, + + ]} + onClick={(e) => { + navigate(e.key) + }} + /> + + ) +} diff --git a/src/pages/admin/product-management/ProductManagement.tsx b/src/pages/admin/product-management/ProductManagement.tsx new file mode 100644 index 0000000..e8da3bb --- /dev/null +++ b/src/pages/admin/product-management/ProductManagement.tsx @@ -0,0 +1,9 @@ +import React from 'react' + +export default function ProductManagement() { + return ( +
+ ProductManagement +
+ ) +} diff --git a/src/pages/admin/user-management/UserManagement.tsx b/src/pages/admin/user-management/UserManagement.tsx new file mode 100644 index 0000000..d646485 --- /dev/null +++ b/src/pages/admin/user-management/UserManagement.tsx @@ -0,0 +1,103 @@ +import React, { useEffect, useState } from 'react' +import { UserRole, type User } from '../../../interfaces/user.interface' +import { useTranslation } from 'react-i18next'; +import { Button, Space, Table } from 'antd'; + +export default function UserManagement() { + const { t } = useTranslation() + const [userList, setUserList] = useState(JSON.parse(localStorage.getItem("userList") || "[]")) + + const columns = [ + { + title: t('user-id'), + dataIndex: 'id', + key: 'id', + }, + { + title: t('fullname'), + dataIndex: 'fullName', + key: 'fullName', + }, + { + title: t('age'), + dataIndex: 'age', + key: 'age', + }, + { + title: t('phone-number'), + dataIndex: 'phone', + key: 'phone', + }, + { + title: t('username'), + dataIndex: 'userName', + key: 'userName', + }, + { + title: t('email'), + dataIndex: 'email', + key: 'email', + }, + { + title: t('role'), + dataIndex: 'role', + key: 'role', + }, + { + title: t('active'), + key: 'isActive', + render: (_: any, record: User) => ( + + { + record.role != UserRole.ADMIN && (record.isActive ? + : + ) + } + + ), + }, + { + title: t('tools'), + key: 'tools', + render: (_: any, record: User) => ( + + + + ), + }, + ]; + + useEffect(() => { + localStorage.setItem("userList", JSON.stringify(userList)) + }, [userList]) + return ( +
+

{t("user-management")}

+
{ + return (userB.role == UserRole.ADMIN ? 1 : 0) - (userA.role == UserRole.ADMIN ? 1 : 0) + })} columns={columns} />; + + ) +} diff --git a/src/pages/user/Collection/CollectionDetail.tsx b/src/pages/user/Collection/CollectionDetail.tsx new file mode 100644 index 0000000..68aa024 --- /dev/null +++ b/src/pages/user/Collection/CollectionDetail.tsx @@ -0,0 +1,11 @@ +import React from 'react' +import { useParams } from 'react-router' + +export default function CollectionDetail() { + const {slugCollection} = useParams() + return ( +
+ Collection = {slugCollection} +
+ ) +} diff --git a/src/pages/user/Home/About/About.tsx b/src/pages/user/Home/About/About.tsx new file mode 100644 index 0000000..ccb1667 --- /dev/null +++ b/src/pages/user/Home/About/About.tsx @@ -0,0 +1,9 @@ +import React from 'react' + +export default function About() { + return ( +
+ Về Chúng Tôi +
+ ) +} diff --git a/src/pages/user/Home/Home.tsx b/src/pages/user/Home/Home.tsx new file mode 100644 index 0000000..717d591 --- /dev/null +++ b/src/pages/user/Home/Home.tsx @@ -0,0 +1,20 @@ +import React from 'react' +import HomeHeader from './components/HomeHeader' +import HomeFooter from './components/HomeFooter' +import './home.scss' +import HomeBanner from './components/HomeBanner' +import { Outlet } from 'react-router' +export default function Home() { + return ( +
+ + +
+
+ +
+
+ +
+ ) +} diff --git a/src/pages/user/Home/components/HomeBanner.tsx b/src/pages/user/Home/components/HomeBanner.tsx new file mode 100644 index 0000000..182846e --- /dev/null +++ b/src/pages/user/Home/components/HomeBanner.tsx @@ -0,0 +1,12 @@ +import React from 'react' +import banner from '../../../../assets/img/banner.png' +export default function HomeBanner() { + return ( +
+
+
+
+ ) +} diff --git a/src/pages/user/Home/components/HomeFooter.tsx b/src/pages/user/Home/components/HomeFooter.tsx new file mode 100644 index 0000000..0c9bea9 --- /dev/null +++ b/src/pages/user/Home/components/HomeFooter.tsx @@ -0,0 +1,11 @@ +import React from 'react' + +export default function HomeFooter() { + return ( +
+
+ footer +
+
+ ) +} diff --git a/src/pages/user/Home/components/HomeHeader.scss b/src/pages/user/Home/components/HomeHeader.scss new file mode 100644 index 0000000..72f4549 --- /dev/null +++ b/src/pages/user/Home/components/HomeHeader.scss @@ -0,0 +1,124 @@ +header { + background-color: white; + position: sticky; + top: 0; + + .content { + height: 100%; + display: flex; + align-items: center; + justify-content: space-between; + + img { + height: 60px; + } + + .menu-btn { + color: red; + cursor: pointer; + font-size: 20px; + } + + .media_box { + height: 100%; + display: flex; + align-items: center; + + .item { + display: flex; + align-items: center; + font-size: 10px; + cursor: pointer; + + position: relative; + + i { + font-size: 2em; + color: red; + margin-right: 5px; + } + + &:last-child { + i { + margin-right: 12px; + } + } + + .text_box { + font-size: 1.5em; + color: red; + + p { + &:first-child {} + + &:last-child {} + } + } + + .cart_count { + position: absolute; + top: 0; + left: 30%; + width: 1.5em; + height: 1.5em; + font-size: 1em; + background-color: yellow; + color: black; + display: flex; + justify-content: center; + align-items: center; + border-radius: 50%; + border: 1px solid red; + } + + } + } + + .user_box { + width: 100px; + height: 100%; + display: flex; + align-items: center; + + .login {} + + .unlogin { + height: 100%; + display: flex; + align-items: center; + .unlogin-content { + background-color: rgba(220, 218, 218, 0.612); + padding: 2px; + display: flex; + align-items: center; + font-size: 10px; + cursor: pointer; + border-radius: 5px; + + i { + font-size: 2em; + color: red; + margin-right: 5px; + } + + &:last-child { + i { + margin-right: 12px; + } + } + + .text_box { + font-size: 1.5em; + color: red; + + p { + &:first-child {} + + &:last-child {} + } + } + } + } + } + } +} \ No newline at end of file diff --git a/src/pages/user/Home/components/HomeHeader.tsx b/src/pages/user/Home/components/HomeHeader.tsx new file mode 100644 index 0000000..9eacb0b --- /dev/null +++ b/src/pages/user/Home/components/HomeHeader.tsx @@ -0,0 +1,83 @@ +import React, { useState } from 'react' +import './HomeHeader.scss' +import logo from '../../../../assets/img/logo.png' +import Search from 'antd/es/input/Search' +import { useNavigate } from 'react-router' +export default function HomeHeader() { + const [isLogin, setIsLogin] = useState(false) + const navigate = useNavigate() + const menu = [ + { + iconClass: "fa-solid fa-headphones", + text: ["Hotline", "1900.5301"], + path: "/hotline" + }, + { + iconClass: "fa-solid fa-location-dot", + text: ["Hệ thống", "Showroom"], + path: "/about" + }, + { + iconClass: "fa-solid fa-clipboard", + text: ["Tra cứu", "Đơn hàng"], + path: "/order-history" + } + ] + return ( +
+
+ { + navigate("/") + }} src={logo} /> + + +
+ { + menu.map((item) => { + return ( +
{ + navigate(item.path) + }} className='item'> + +
+

{item.text[0]}

+

{item.text[1]}

+
+
+ ) + }) + } +
+ +

0

+
+

Giỏ

+

Hàng

+
+
+
+
+ { + isLogin ? ( +
+ +
+ ) : ( +
+
+ +
+

Đăng

+

Nhập

+
+
+
+ ) + } + + +
+
+
+ ) +} diff --git a/src/pages/user/Home/home.scss b/src/pages/user/Home/home.scss new file mode 100644 index 0000000..d325034 --- /dev/null +++ b/src/pages/user/Home/home.scss @@ -0,0 +1,54 @@ +$widthContent: 1080px; + +.home_page { + .home_banner { + width: 100%; + display: flex; + justify-content: center; + background-color: #C30100; + .content { + width: $widthContent; + } + + height: 60px; + } + + header { + width: 100%; + display: flex; + justify-content: center; + + .content { + width: $widthContent; + } + + height: 60px; + + border-bottom: 1px solid black; + } + + .container { + width: 100%; + display: flex; + justify-content: center; + + .content { + width: $widthContent; + } + + height: calc(100vh - 60px); + } + + footer { + width: 100%; + height: 120px; + display: flex; + justify-content: center; + + .content { + width: $widthContent; + } + + background-color: yellow; + } +} \ No newline at end of file diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/tsconfig.app.json b/tsconfig.app.json new file mode 100644 index 0000000..3dd7168 --- /dev/null +++ b/tsconfig.app.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "ES2022", + "useDefineForClassFields": false, + "lib": ["ES2022", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": false, + "noUnusedLocals": false, + "noUnusedParameters": false, + "erasableSyntaxOnly": false, + "noFallthroughCasesInSwitch": false, + "noUncheckedSideEffectImports": false + }, + "include": ["src"] +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..1ffef60 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,7 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..640a275 --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2023", + "lib": ["ES2023"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": false, + "noUnusedLocals": false, + "noUnusedParameters": false, + "erasableSyntaxOnly": false, + "noFallthroughCasesInSwitch": false, + "noUncheckedSideEffectImports": false + }, + "include": ["vite.config.ts"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..2328e17 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react-swc' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [react()], +})