From 955664587d9e087005501756ec9d3f3c982d6648 Mon Sep 17 00:00:00 2001
From: minjeong kim <6alswjd6@gmail.com>
Date: Fri, 11 Aug 2023 00:52:39 +0900
Subject: [PATCH 01/48] chore: elinst prettier setting
---
.eslintrc | 35 +
.prettierrc | 8 +
package-lock.json | 1025 ++++++++++++++++++++++++------
package.json | 7 +
src/index.tsx | 4 +-
src/service-worker.ts | 7 +-
src/serviceWorkerRegistration.ts | 12 +-
7 files changed, 907 insertions(+), 191 deletions(-)
create mode 100644 .eslintrc
create mode 100644 .prettierrc
diff --git a/.eslintrc b/.eslintrc
new file mode 100644
index 0000000..ba611e1
--- /dev/null
+++ b/.eslintrc
@@ -0,0 +1,35 @@
+{
+ // 전역변수 환경 설정
+ "env": {
+ "browser": true,
+ "es2021": true
+ },
+
+ // npm을 통해 설치한 외부 ESLint 설정 등록 (eslint-config-{name}으로 설치)
+ "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"],
+
+ // ESLint에 지원할 JavaScript 옵션 설정
+ "parserOptions": {
+ "ecmaFeatures": {
+ "jsx": true
+ },
+ "ecmaVersion": 12,
+ "sourceType": "module"
+ },
+
+ // parser 등록
+ "parser": "@typescript-eslint/parser",
+
+ // 사용자 규칙 추가할 플러그인 (eslint-plugin-{name}으로 설치)
+ "plugins": ["@typescript-eslint", "prettier"],
+
+ // 플러그인을 통해 설치한 것 외에 규칙 설정
+ "rules": {
+ "prettier/prettier": [
+ "error",
+ {
+ "endOfLine": "auto"
+ }
+ ]
+ }
+}
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 0000000..3795db1
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,8 @@
+{
+ "singleQuote": true,
+ "semi": true,
+ "tabWidth": 2,
+ "trailingComma": "all",
+ "printWidth": 80,
+ "arrowParens": "always"
+}
diff --git a/package-lock.json b/package-lock.json
index 0dd39d9..1afe068 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -32,6 +32,13 @@
"workbox-routing": "^6.6.0",
"workbox-strategies": "^6.6.0",
"workbox-streams": "^6.6.0"
+ },
+ "devDependencies": {
+ "@typescript-eslint/eslint-plugin": "^6.3.0",
+ "@typescript-eslint/parser": "^6.3.0",
+ "eslint": "^8.46.0",
+ "eslint-plugin-prettier": "^5.0.0",
+ "prettier": "^3.0.1"
}
},
"node_modules/@aashutoshrathi/word-wrap": {
@@ -3185,6 +3192,56 @@
"node": ">= 8"
}
},
+ "node_modules/@pkgr/utils": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz",
+ "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "fast-glob": "^3.3.0",
+ "is-glob": "^4.0.3",
+ "open": "^9.1.0",
+ "picocolors": "^1.0.0",
+ "tslib": "^2.6.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/unts"
+ }
+ },
+ "node_modules/@pkgr/utils/node_modules/define-lazy-prop": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
+ "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@pkgr/utils/node_modules/open": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz",
+ "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==",
+ "dev": true,
+ "dependencies": {
+ "default-browser": "^4.0.0",
+ "define-lazy-prop": "^3.0.0",
+ "is-inside-container": "^1.0.0",
+ "is-wsl": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/@pmmmwh/react-refresh-webpack-plugin": {
"version": "0.5.10",
"resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz",
@@ -3552,104 +3609,6 @@
"url": "https://github.com/sponsors/gregberge"
}
},
- "node_modules/@testing-library/dom": {
- "version": "9.3.1",
- "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.1.tgz",
- "integrity": "sha512-0DGPd9AR3+iDTjGoMpxIkAsUihHZ3Ai6CneU6bRRrffXMgzCdlNk43jTrD2/5LT6CBb3MWTP8v510JzYtahD2w==",
- "peer": true,
- "dependencies": {
- "@babel/code-frame": "^7.10.4",
- "@babel/runtime": "^7.12.5",
- "@types/aria-query": "^5.0.1",
- "aria-query": "5.1.3",
- "chalk": "^4.1.0",
- "dom-accessibility-api": "^0.5.9",
- "lz-string": "^1.5.0",
- "pretty-format": "^27.0.2"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/@testing-library/dom/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==",
- "peer": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@testing-library/dom/node_modules/aria-query": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz",
- "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==",
- "peer": true,
- "dependencies": {
- "deep-equal": "^2.0.5"
- }
- },
- "node_modules/@testing-library/dom/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "peer": true,
- "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/@testing-library/dom/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==",
- "peer": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@testing-library/dom/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==",
- "peer": true
- },
- "node_modules/@testing-library/dom/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==",
- "peer": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@testing-library/dom/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==",
- "peer": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/@testing-library/jest-dom": {
"version": "5.17.0",
"resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz",
@@ -4213,31 +4172,34 @@
"integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA=="
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz",
- "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==",
- "dependencies": {
- "@eslint-community/regexpp": "^4.4.0",
- "@typescript-eslint/scope-manager": "5.62.0",
- "@typescript-eslint/type-utils": "5.62.0",
- "@typescript-eslint/utils": "5.62.0",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.3.0.tgz",
+ "integrity": "sha512-IZYjYZ0ifGSLZbwMqIip/nOamFiWJ9AH+T/GYNZBWkVcyNQOFGtSMoWV7RvY4poYCMZ/4lHzNl796WOSNxmk8A==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/regexpp": "^4.5.1",
+ "@typescript-eslint/scope-manager": "6.3.0",
+ "@typescript-eslint/type-utils": "6.3.0",
+ "@typescript-eslint/utils": "6.3.0",
+ "@typescript-eslint/visitor-keys": "6.3.0",
"debug": "^4.3.4",
"graphemer": "^1.4.0",
- "ignore": "^5.2.0",
+ "ignore": "^5.2.4",
+ "natural-compare": "^1.4.0",
"natural-compare-lite": "^1.4.0",
- "semver": "^7.3.7",
- "tsutils": "^3.21.0"
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "@typescript-eslint/parser": "^5.0.0",
- "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha",
+ "eslint": "^7.0.0 || ^8.0.0"
},
"peerDependenciesMeta": {
"typescript": {
@@ -4245,6 +4207,105 @@
}
}
},
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.3.0.tgz",
+ "integrity": "sha512-WlNFgBEuGu74ahrXzgefiz/QlVb+qg8KDTpknKwR7hMH+lQygWyx0CQFoUmMn1zDkQjTBBIn75IxtWss77iBIQ==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "6.3.0",
+ "@typescript-eslint/visitor-keys": "6.3.0"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.3.0.tgz",
+ "integrity": "sha512-K6TZOvfVyc7MO9j60MkRNWyFSf86IbOatTKGrpTQnzarDZPYPVy0oe3myTMq7VjhfsUAbNUW8I5s+2lZvtx1gg==",
+ "dev": true,
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.3.0.tgz",
+ "integrity": "sha512-Xh4NVDaC4eYKY4O3QGPuQNp5NxBAlEvNQYOqJquR2MePNxO11E5K3t5x4M4Mx53IZvtpW+mBxIT0s274fLUocg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "6.3.0",
+ "@typescript-eslint/visitor-keys": "6.3.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.3.0.tgz",
+ "integrity": "sha512-hLLg3BZE07XHnpzglNBG8P/IXq/ZVXraEbgY7FM0Cnc1ehM8RMdn9mat3LubJ3KBeYXXPxV1nugWbQPjGeJk6Q==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@types/json-schema": "^7.0.12",
+ "@types/semver": "^7.5.0",
+ "@typescript-eslint/scope-manager": "6.3.0",
+ "@typescript-eslint/types": "6.3.0",
+ "@typescript-eslint/typescript-estree": "6.3.0",
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.3.0.tgz",
+ "integrity": "sha512-kEhRRj7HnvaSjux1J9+7dBen15CdWmDnwrpyiHsFX6Qx2iW5LOBUgNefOFeh2PjWPlNwN8TOn6+4eBU3J/gupw==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "6.3.0",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
"node_modules/@typescript-eslint/experimental-utils": {
"version": "5.62.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz",
@@ -4264,24 +4325,83 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz",
- "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==",
- "dependencies": {
- "@typescript-eslint/scope-manager": "5.62.0",
- "@typescript-eslint/types": "5.62.0",
- "@typescript-eslint/typescript-estree": "5.62.0",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.3.0.tgz",
+ "integrity": "sha512-ibP+y2Gr6p0qsUkhs7InMdXrwldjxZw66wpcQq9/PzAroM45wdwyu81T+7RibNCh8oc0AgrsyCwJByncY0Ongg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "6.3.0",
+ "@typescript-eslint/types": "6.3.0",
+ "@typescript-eslint/typescript-estree": "6.3.0",
+ "@typescript-eslint/visitor-keys": "6.3.0",
"debug": "^4.3.4"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ "eslint": "^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.3.0.tgz",
+ "integrity": "sha512-WlNFgBEuGu74ahrXzgefiz/QlVb+qg8KDTpknKwR7hMH+lQygWyx0CQFoUmMn1zDkQjTBBIn75IxtWss77iBIQ==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "6.3.0",
+ "@typescript-eslint/visitor-keys": "6.3.0"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.3.0.tgz",
+ "integrity": "sha512-K6TZOvfVyc7MO9j60MkRNWyFSf86IbOatTKGrpTQnzarDZPYPVy0oe3myTMq7VjhfsUAbNUW8I5s+2lZvtx1gg==",
+ "dev": true,
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.3.0.tgz",
+ "integrity": "sha512-Xh4NVDaC4eYKY4O3QGPuQNp5NxBAlEvNQYOqJquR2MePNxO11E5K3t5x4M4Mx53IZvtpW+mBxIT0s274fLUocg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "6.3.0",
+ "@typescript-eslint/visitor-keys": "6.3.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
},
"peerDependenciesMeta": {
"typescript": {
@@ -4289,6 +4409,23 @@
}
}
},
+ "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.3.0.tgz",
+ "integrity": "sha512-kEhRRj7HnvaSjux1J9+7dBen15CdWmDnwrpyiHsFX6Qx2iW5LOBUgNefOFeh2PjWPlNwN8TOn6+4eBU3J/gupw==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "6.3.0",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
"node_modules/@typescript-eslint/scope-manager": {
"version": "5.62.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz",
@@ -4306,24 +4443,25 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "5.62.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz",
- "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.3.0.tgz",
+ "integrity": "sha512-7Oj+1ox1T2Yc8PKpBvOKWhoI/4rWFd1j7FA/rPE0lbBPXTKjdbtC+7Ev0SeBjEKkIhKWVeZSP+mR7y1Db1CdfQ==",
+ "dev": true,
"dependencies": {
- "@typescript-eslint/typescript-estree": "5.62.0",
- "@typescript-eslint/utils": "5.62.0",
+ "@typescript-eslint/typescript-estree": "6.3.0",
+ "@typescript-eslint/utils": "6.3.0",
"debug": "^4.3.4",
- "tsutils": "^3.21.0"
+ "ts-api-utils": "^1.0.1"
},
"engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "eslint": "*"
+ "eslint": "^7.0.0 || ^8.0.0"
},
"peerDependenciesMeta": {
"typescript": {
@@ -4331,6 +4469,105 @@
}
}
},
+ "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.3.0.tgz",
+ "integrity": "sha512-WlNFgBEuGu74ahrXzgefiz/QlVb+qg8KDTpknKwR7hMH+lQygWyx0CQFoUmMn1zDkQjTBBIn75IxtWss77iBIQ==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "6.3.0",
+ "@typescript-eslint/visitor-keys": "6.3.0"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.3.0.tgz",
+ "integrity": "sha512-K6TZOvfVyc7MO9j60MkRNWyFSf86IbOatTKGrpTQnzarDZPYPVy0oe3myTMq7VjhfsUAbNUW8I5s+2lZvtx1gg==",
+ "dev": true,
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.3.0.tgz",
+ "integrity": "sha512-Xh4NVDaC4eYKY4O3QGPuQNp5NxBAlEvNQYOqJquR2MePNxO11E5K3t5x4M4Mx53IZvtpW+mBxIT0s274fLUocg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "6.3.0",
+ "@typescript-eslint/visitor-keys": "6.3.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.3.0.tgz",
+ "integrity": "sha512-hLLg3BZE07XHnpzglNBG8P/IXq/ZVXraEbgY7FM0Cnc1ehM8RMdn9mat3LubJ3KBeYXXPxV1nugWbQPjGeJk6Q==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@types/json-schema": "^7.0.12",
+ "@types/semver": "^7.5.0",
+ "@typescript-eslint/scope-manager": "6.3.0",
+ "@typescript-eslint/types": "6.3.0",
+ "@typescript-eslint/typescript-estree": "6.3.0",
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.3.0.tgz",
+ "integrity": "sha512-kEhRRj7HnvaSjux1J9+7dBen15CdWmDnwrpyiHsFX6Qx2iW5LOBUgNefOFeh2PjWPlNwN8TOn6+4eBU3J/gupw==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "6.3.0",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
"node_modules/@typescript-eslint/types": {
"version": "5.62.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz",
@@ -5350,6 +5587,15 @@
"node": ">= 8.0.0"
}
},
+ "node_modules/big-integer": {
+ "version": "1.6.51",
+ "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
+ "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
"node_modules/big.js": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
@@ -5442,6 +5688,18 @@
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
"integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
},
+ "node_modules/bplist-parser": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz",
+ "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==",
+ "dev": true,
+ "dependencies": {
+ "big-integer": "^1.6.44"
+ },
+ "engines": {
+ "node": ">= 5.10.0"
+ }
+ },
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -5522,6 +5780,21 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/bundle-name": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz",
+ "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==",
+ "dev": true,
+ "dependencies": {
+ "run-applescript": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/bytes": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
@@ -6406,74 +6679,218 @@
"whatwg-url": "^8.0.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=10"
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decimal.js": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz",
+ "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA=="
+ },
+ "node_modules/dedent": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
+ "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA=="
+ },
+ "node_modules/deep-equal": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.2.tgz",
+ "integrity": "sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==",
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.0",
+ "call-bind": "^1.0.2",
+ "es-get-iterator": "^1.1.3",
+ "get-intrinsic": "^1.2.1",
+ "is-arguments": "^1.1.1",
+ "is-array-buffer": "^3.0.2",
+ "is-date-object": "^1.0.5",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "isarray": "^2.0.5",
+ "object-is": "^1.1.5",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.5.0",
+ "side-channel": "^1.0.4",
+ "which-boxed-primitive": "^1.0.2",
+ "which-collection": "^1.0.1",
+ "which-typed-array": "^1.1.9"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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=="
+ },
+ "node_modules/deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/default-browser": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz",
+ "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==",
+ "dev": true,
+ "dependencies": {
+ "bundle-name": "^3.0.0",
+ "default-browser-id": "^3.0.0",
+ "execa": "^7.1.1",
+ "titleize": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/default-browser-id": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz",
+ "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==",
+ "dev": true,
+ "dependencies": {
+ "bplist-parser": "^0.2.0",
+ "untildify": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/default-browser/node_modules/execa": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz",
+ "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.1",
+ "human-signals": "^4.3.0",
+ "is-stream": "^3.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^5.1.0",
+ "onetime": "^6.0.0",
+ "signal-exit": "^3.0.7",
+ "strip-final-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.18.0 || ^16.14.0 || >=18.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/default-browser/node_modules/human-signals": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
+ "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.18.0"
+ }
+ },
+ "node_modules/default-browser/node_modules/is-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/default-browser/node_modules/mimic-fn": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "node_modules/default-browser/node_modules/npm-run-path": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
+ "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==",
+ "dev": true,
"dependencies": {
- "ms": "2.1.2"
+ "path-key": "^4.0.0"
},
"engines": {
- "node": ">=6.0"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
},
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/decimal.js": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz",
- "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA=="
- },
- "node_modules/dedent": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
- "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA=="
- },
- "node_modules/deep-equal": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.2.tgz",
- "integrity": "sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==",
+ "node_modules/default-browser/node_modules/onetime": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
+ "dev": true,
"dependencies": {
- "array-buffer-byte-length": "^1.0.0",
- "call-bind": "^1.0.2",
- "es-get-iterator": "^1.1.3",
- "get-intrinsic": "^1.2.1",
- "is-arguments": "^1.1.1",
- "is-array-buffer": "^3.0.2",
- "is-date-object": "^1.0.5",
- "is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.2",
- "isarray": "^2.0.5",
- "object-is": "^1.1.5",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.4",
- "regexp.prototype.flags": "^1.5.0",
- "side-channel": "^1.0.4",
- "which-boxed-primitive": "^1.0.2",
- "which-collection": "^1.0.1",
- "which-typed-array": "^1.1.9"
+ "mimic-fn": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "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=="
+ "node_modules/default-browser/node_modules/path-key": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
- "node_modules/deepmerge": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
- "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "node_modules/default-browser/node_modules/strip-final-newline": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
+ "dev": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/default-gateway": {
@@ -7091,6 +7508,91 @@
"eslint": "^8.0.0"
}
},
+ "node_modules/eslint-config-react-app/node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz",
+ "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==",
+ "dependencies": {
+ "@eslint-community/regexpp": "^4.4.0",
+ "@typescript-eslint/scope-manager": "5.62.0",
+ "@typescript-eslint/type-utils": "5.62.0",
+ "@typescript-eslint/utils": "5.62.0",
+ "debug": "^4.3.4",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.0",
+ "natural-compare-lite": "^1.4.0",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^5.0.0",
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-config-react-app/node_modules/@typescript-eslint/parser": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz",
+ "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==",
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "5.62.0",
+ "@typescript-eslint/types": "5.62.0",
+ "@typescript-eslint/typescript-estree": "5.62.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-config-react-app/node_modules/@typescript-eslint/type-utils": {
+ "version": "5.62.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz",
+ "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==",
+ "dependencies": {
+ "@typescript-eslint/typescript-estree": "5.62.0",
+ "@typescript-eslint/utils": "5.62.0",
+ "debug": "^4.3.4",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "*"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
"node_modules/eslint-import-resolver-node": {
"version": "0.3.9",
"resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz",
@@ -7268,6 +7770,35 @@
"semver": "bin/semver.js"
}
},
+ "node_modules/eslint-plugin-prettier": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.0.tgz",
+ "integrity": "sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==",
+ "dev": true,
+ "dependencies": {
+ "prettier-linter-helpers": "^1.0.0",
+ "synckit": "^0.8.5"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/prettier"
+ },
+ "peerDependencies": {
+ "@types/eslint": ">=8.0.0",
+ "eslint": ">=8.0.0",
+ "prettier": ">=3.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/eslint": {
+ "optional": true
+ },
+ "eslint-config-prettier": {
+ "optional": true
+ }
+ }
+ },
"node_modules/eslint-plugin-react": {
"version": "7.33.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.1.tgz",
@@ -7806,6 +8337,12 @@
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
+ "node_modules/fast-diff": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz",
+ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==",
+ "dev": true
+ },
"node_modules/fast-glob": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz",
@@ -9163,6 +9700,39 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-inside-container": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
+ "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
+ "dev": true,
+ "dependencies": {
+ "is-docker": "^3.0.0"
+ },
+ "bin": {
+ "is-inside-container": "cli.js"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-inside-container/node_modules/is-docker": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
+ "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
+ "dev": true,
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/is-map": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
@@ -13916,6 +14486,33 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/prettier": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.1.tgz",
+ "integrity": "sha512-fcOWSnnpCrovBsmFZIGIy9UqK2FaI7Hqax+DIO0A9UxeVoY4iweyaFjS5TavZN97Hfehph0nhsZnjlVKzEQSrQ==",
+ "dev": true,
+ "bin": {
+ "prettier": "bin/prettier.cjs"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
+ "node_modules/prettier-linter-helpers": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
+ "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
+ "dev": true,
+ "dependencies": {
+ "fast-diff": "^1.1.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
"node_modules/pretty-bytes": {
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
@@ -14768,6 +15365,21 @@
"node": ">=8"
}
},
+ "node_modules/run-applescript": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz",
+ "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==",
+ "dev": true,
+ "dependencies": {
+ "execa": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/run-parallel": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
@@ -15719,6 +16331,22 @@
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
"integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
},
+ "node_modules/synckit": {
+ "version": "0.8.5",
+ "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz",
+ "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==",
+ "dev": true,
+ "dependencies": {
+ "@pkgr/utils": "^2.3.1",
+ "tslib": "^2.5.0"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/unts"
+ }
+ },
"node_modules/tailwindcss": {
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz",
@@ -15916,6 +16544,18 @@
"resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
"integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA=="
},
+ "node_modules/titleize": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz",
+ "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/tmpl": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
@@ -15986,6 +16626,18 @@
"resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz",
"integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA=="
},
+ "node_modules/ts-api-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.1.tgz",
+ "integrity": "sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=16.13.0"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.2.0"
+ }
+ },
"node_modules/ts-interface-checker": {
"version": "0.1.13",
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
@@ -16250,6 +16902,15 @@
"resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz",
"integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg=="
},
+ "node_modules/untildify": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
+ "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/upath": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
diff --git a/package.json b/package.json
index cce923b..b15157a 100644
--- a/package.json
+++ b/package.json
@@ -51,5 +51,12 @@
"last 1 firefox version",
"last 1 safari version"
]
+ },
+ "devDependencies": {
+ "@typescript-eslint/eslint-plugin": "^6.3.0",
+ "@typescript-eslint/parser": "^6.3.0",
+ "eslint": "^8.46.0",
+ "eslint-plugin-prettier": "^5.0.0",
+ "prettier": "^3.0.1"
}
}
diff --git a/src/index.tsx b/src/index.tsx
index 39219e2..e05f55c 100644
--- a/src/index.tsx
+++ b/src/index.tsx
@@ -6,12 +6,12 @@ import * as serviceWorkerRegistration from './serviceWorkerRegistration';
import reportWebVitals from './reportWebVitals';
const root = ReactDOM.createRoot(
- document.getElementById('root') as HTMLElement
+ document.getElementById('root') as HTMLElement,
);
root.render(
- Edit src/App.tsx and save to reload.
-
ZhONEzd6_T4=PN4lnmb6IkGCqO-eD6e%GiQ9uq4 zgRvT3+T-bpe9KO*YWL9g1YqMU6FwIl;pYJu-RP2yw~I}lFYUW9h1yco|Gayy&;xT* zOrN?Wp;Q^2%h-;-85{A~FS%==W)@wIf3$xqH2#patXpFicq?S>i9jQsC%d3x4WE~7 z4S%S-*N#cePn6;b?nDMvx_QqmOI;OtVbigADWAV7SirtRu$qDpB#>YMWenWoCTKtQ z!${!Gi_dlRi=TOEx)WHyzRcsDKN`@cZ9TbSGu1ZJZ3oU8)~v~pCm&{t3mgn4hHE`k}r*v(celdaZB| zcn~leV~`nPzaE?fE4z>tB>_62%I}%jsBp?#A-ONS*)X-t7iqEYO}LN?C_7UEa(isu zd3A3cbCT$pyDCEbT_YuQYxA30RV z$KT4_pP^~x&PM 5juzRMmdt`lmwp;)8TwR>-)~CHt^IXckhXO9Vek6viLBjl{-e(n1A(707OCWr z_fuCrxPlVu*E?j8|JA1{f9mM}^eLx~a&XE~D#xdPK>A0ioKngmD#xlEpJrub{ZFED zGAYNW9H?@L$}uSiq<^5wsiqvIa=7|`@hK;ka&XE~D#xdPK>A0ioN&q^D#xlEpK@UP zKZ(i-ryQShp!%o2`X2QC1658( BdPEwBEdRyLcBC zQ{6j+*HPca8oxg-3%)xv0hWC*JyWJ=hMRbP#Y}Pb)lz!Lix(1-%d4e(cIgZ27hc$f z>ROo~D34uGROR k Cw^Ae+RR6q0aQ0*z9MHo!wz&Y(w$dJe$tTLoYioOT)$djEg;nxuqz%Ja7$( z+~MP!AR-C%Q}Xd4TJjYH1q8D%1am1x!@y`Ye?mc|prtK1RFE%{aY6&6R7y)aKw(Pn zDa&PmMVK@YH@ccSke#f 5A3<4XCd z^#QJ3r>O5dpB|(RK$Z?hk`TH&1Qz!~*yjO|Y$uxt`4mgAC?DMZd xiU5dN1HYg)>I&7k&iLm6R{luLk>&tqh siqQZx(p(^fj0@GdHybxgrivqjwDJmdB-%xG@VoU6%T6tLEA z0IRWlw_FDiE FI(@uvWw&@Gb%b5kD?OAQLBaiqqn5;H3}-#16;v zEQ&7$p&iI-_E=ZXk64sMhP=eyvoe?5T2Ccns&J{cgEC@|B-i6<9XTuL2 bzTc7SWZU%L!gaf9vZoeSW?X7AO5r+ffG+Fe2mi{0~apf4UG4NUHe|> z!&e3IhE%9>(Q*~rEUou7uoO}^A=ROwr&mfqVco}u%6@2_Cw1oh_OI
wB+Nhc(_G~6$&Yf{1~rAvqCU5RO&e3tU0L;JJ~KUra~H^|(3Sor0{ zdHKLgwzCF_MALnz33*F+l>+w9u4-_?+*`bXNW<$k%iN@m3Dl_4_P9?d<(y!$hs(Ar z&EUZ&oQrQi22KDH))wHICNd_mtu)?TcQ0Y`k-oY@t1AI_Jy-1;4}2e;zP0uBDh;dl zX>|GVX+9wlg*gxOCC?e?tvjCc`G`KTXX(Nr_{!t;EGT<)5N4jCEWZK>DLWuR*FKvF z%c{>jZ(|ge9|Z<3A9~VV%l?J^1c5~7o6oizw-c0)w#@nBK5kTZEY(2XG+I)e-b?Im zv$+at#Hb$YtmN(FM^=2Q2@_15dTYu=)ZU+S5u=RRZ>;6$%R4@E<7&LjTrFjWj0|gh zIxsU5bOp9h!n3E9ekLqV`O)=3tT(~PE@ *U!FHSiY`hjWs$9-eQ(^xO6wN+~xt zwstvjCzbv|A+k{57 GA*YI+fRgIIUG$X)(}S6im&Cx~hwUG1XQ#QpXQ*^eFz z-xg!jQNQ9ZwZCIkiL)8J>@ne|_Aj{?uicHz;~IK^o31^u#o(%52Vx}0c%&%7Z7r0E zdX4n%oGu2eX#w~G=w5Ro(D(4Y_Hb5D6F^W%Cfi10{SW<~Z#k7(#Qq}o
PY zhTGc7Ye|l=rL2#Sh033NwG*1iepIG~lfSI~x%`4#opSi9^2If5@4Nme)S*^}lp7N& z*!l&{^c>(9nHe!mtFGOWW!ug7D4)4L2KO%>=gRLncHUX}R*Wm;`o>#xv}Vv3zc3`X zka3CX`<5(Or=LXv4?&&^QWp6r#q)UngTW|9WjOwXd=IW8JZDj+ zG?8~w5~(QCUoqvv5c %+arpI=V=z6ck?GZ7&-xoJ{L@J;I z^p|w><;P*PPiNEa8EP*2?mF+JqUf2$b{_3KAOxqU0O8(mj3tQ%LQ2T B EUBFG4$qNnr zfP4VJPR?mK4}lG!MDPyYU{XPu|I&j7J4 +i7AIfjv6&$Ak5Rrbt%1zgw zYD} R0Y4rJw7e3^$$-u5et9O?I`_J_fZFgURO0pLHB9a6yRJ`%K`1_f$M{auuh8Vvw z_VgS6;%(_O6dF1?gxkCIUlP}t|369G Sq z0JiRLiC=MFtAXDOJ)9Hf`>?2G{I=FqMbc>pV`;E~OPR@dkbd6fYN9J~fA?#y0C&Gm zHzq<6*?h^rYlLtAs-N{Q7TTLSR)hCyk5qtmDlj$A=rSSv%m~~$EjqWzHITXp=;o=) zW`VT@@amv+UqYaw)N69Du wr`vSE> z@ymus@%GlQHXz^_L;N1AnN`oF=hVgugA1!L)fE!Vo=n%jN^6xj0iDe*ON2vv%zuA+ zQ~mT=A-`(?L<{;I*7K}mbY-u#+(CQn>f>52K?w_D+zDxe&EwRoS=V;WkQBvBD$(m@ zd(AW=+G6;Z-w{sCqCY72a=RQ_=vN-8@a9hMa2S6}R#*lHj6O(@&KJLzvxsGeb$4E1 z>(yTAN{MHsg|9uvWNoup4v`1LDyH*6{?|D_d4$sp{OblUBknoW)ACW$FWj&7C>wK7 zUWz#}fLQ?5F0SvHD(Zm5`rW*et>9HWo71wAXaE6tIwPLyCRjI{o&^H&_6<|L)lPrEF1Blz`&L&Me}Zm?WwEUnp1I zvZ^2d7s~Mok25{BBe-(D?C#qAHaqq#0=}-9_VJD6C)|FGZqUk-e=0qU#!E}B-E&Q! zlBSJUxUfHKo$^Bd07iixT6KuADCeI AGkAXwZ^? zJYc(m)!%=9H$;|o)*Z3q^8YZw|MBuWv3w_%@5J(*SpMH6mhZUyzrV}(O8qaF!>+lf z$TD9-HoXUgLx{D<+oqts36|W~X!*!o;ADcWNp G{$41qDVJLz-t-$kG?SIrI;Mk+qD*6YW!Celw{97pS&M#&66fx_uMy- zSn06Qa_+0Y{WHspZM~vbWrimfAe`|R!>&%i NBB%@R;T? z+f&Cn^=gV+k`-sv&k&EH?#yalxK I1rIUaSiqeHX=WJ;}}&xzJ#y?_|)&iv{N4$)}5q zpsUG&7l)l)n99uaZJXhUPb{-qY3)*ZFOQ49WzA}OOFi?nBOjAMSj(Y#87qfFzk-Pf z1z=J7`49wt88i^jYLz->?xQ@{51UE1h>ZCmw)k25&^`j~bQk_+*N=XP1{G**AwE2= zp7D18?~$TNo!uTIDd1Exu&kgXd5eJBijCeLL&Kb}54TDm-_p9ih|sjX68bxBg*N}T z=tYPfkJim}9?STt6=jg);jf8;+w5S|j0taUjiDT#Cj15T%>}gYe9i%P9Y^(`DD9l~ zTS*!9kT >*w5s5c-iTlAfNpqU*3c{h`YuxW%xL|yw&9ysn(Pz- z`KJBsM06n&EV$B-M*0l!+p6ea4 M|B>P$J!z>eDr7Ym<&);mn@+1;b9^#*(k{hX4?m5Qt7|U*yJ#seep$A%FkOYT? zV{|ETA>KJ7+O<7k$5buBeO_P4PSpiabj0k X90$4+ z6m)@u$7J6xV{xgN wAw4Kjva_(Ib}_E zCy{*rmBr`6&tutoI4NN6CupB(*~h_5^wrUQal*>B4zUhQ^LFutfY7KHZ-M7Ivgm_9 zD=yW<+CA_j-5fi mnL_UtciO#I3=<3BYdya;Fdt>Y` zNArpR8a(z@ev1BiVP9ihth#iBpaHqnBl_6Ozx_R9^M~JOEOz+)kNo{lAMWsbhu=H= z-r@HSzjw0u|HCZ4!|(qu_^sJXGeP>K^J6H7)NR8<cq9Bv=iq>@VJ#k(xotco?>r zHo=O`MI~kUL1v j|!>|JMbs_zjp%U%8Yg!=8-e5qe0 z{Q4`0tlo7`3T^+Uz&gFpEp`?qX12Wo?IsIcPU~vSNU4_(4I3&CZdQB|IpQ$NUGFe# znWKFrXm3USU8m&Z&y_^8JN6HpD>CW&x4D;j4*q-oq>jj`=_}Va7HsX_xt{%HsQg9m zZg|`*4O4QuAFfo&t32>9$t0#y R2z-y$YB4_#h5$B4rb#S?SGLc4Q-U*a;jBZO|A* z$&n=_P5R`lH2;;iTQA$hR@SrDtPj%Q35nPK#`U8=xUMf07(Nh5ta6x%n<+(kdad=0 z!u`dOJiyv-TCLR8-F`q@6B6UL5UR)N+hhN$Z@*I`HgvQL_FM+k+B8N*RSjZKl!q^6 z9Like+}p@2;Da+cOl)>$B?9C4uV??=xBu341(9m1aXF&LSyqosLz?mN9WGz{m#+0` zPGY+PU|GLY+rthG3eUQRzR@H?4qn<%x ~{$%HK5(K zXAO>?ah~RT|NZ!Zu5j%*A 3Dj!2ul0Mj z%L-3iT oK5PQSFVMsG-zCOYC5|A{p+Db z0}y+OA5 bac6q@OQzRP1!}yAQqI zr1stCD5M>m1Yx4~=(QS3<0Zy2SVY+KfC3<|d$ov|?0>tT=ZSKM;En$QYY`@R`2DGr zI=iIEc7A>W^NG>|2?)S#-F6EAK`6F}CyrOM$k08)BevKOCct}2PHw Has zR&I%3^|BkvM;um-V1QN|VQ-u7ll+PqfE*J#oe-(L2CIic|DCD>v=IW2g_H JvSBF;y+ce|qxUy}hdn7`MA0=2W8co$o(!#5-y(r) zvT{W57e&QgIjLF~kn-oR=^EnqN3JUG`n4s_-5RC&ps+^w#5*V-i-&s^tZR1&wa5Fj z8;?Q8C8 `3wcHv3I%D!e5ErSOps{0O%ZJ8E${#Ofn63Mq#O*kBm2$ zCw}8TMew`2Nr@X(re`#a)d;bDbk%`rlnl{6oQVhH54j|X04%dm*3$+OAjNaIeBYZR zRz;s5#Hq?i?YqeWdRx-a5A@SugRvU@hJ)0M%Md%^YG`XfO+PP*I*g-PCHK;Yn{7Uu zm9ya1Eg5h<&eXF`YkvOQ!AZNO5?VG9VxbS`a^VuzdD(jpzFQHRbi|8Sq>j~ddLWbA z`wSP(7Qd|1hB{N_RMLFIbkc*nIPMe+5@}8Yz4o=-D^pldUQ7e^T7!7NghZ|B*KkuL z4Q{#43!7mcPWnbn(#X#fn<0Wa5$U%0HSKsHDW$(RHJFkM@NHXoJ=E|+AomD!Pnuj! znX!JXD$2bo3l{riapOBo8Y6aNo<6b?xnI1W{^5e3ut#m9qJkmXCyNoRFLhStAe#XY zWuWS~)Al=t{ttWkpDw>+=p94v7<$LhJBHpd^#8q~u|vJKMwSs>4wPr!{YVuy4Mu28 z-ST1j95n!onbEF#84^KqfRuy*1?~WovG*m~L2YTKY4U@YquE599L2~o$p&0>0wZae z%dgIMu)>gsgbvbF1b^&Ow8qo>l32mSq(km u zDX}#6%n@svY$_9GSn-1NekA@``!hV#VB~tzQJKQT@yNB pJU%bYf!Ok99r8 zX8U >T3_6rJ+{Qc+q{X#{_;DL;U~}rUq2Kupd%h< zzNSM&sO}PZCeFRkq55x5-*m@vlO?z;{tKsB|IBI6zd4PcP5j?DJ-o_&3di9z@m31E zH@Ndvz0kUk?pVw|sO?* i@x(py6MQfQ-7!E*|v(IJ2k>03)6zm zBqpp4nEM|oI`?gC;lh)pC<7T0Zc%V+9Zp|~9vsM?k9$TO7JNjj<9aC)u@3^xf1C8g z>Tgc7h!FdGFs_4td-@*S;OYa;4(fw~A~VjWY|#C15EwNm!K<5&`#VK1Rh5o{zU1%> zgkX>aR$1n-$(etp=!I!-ZWbo?eu?-79uULz+Xzq+Q`{G!QfX`}Ef }*KZ4=?3r_#XVt}tkO)}|(Rarz z4-Ov6I1qihrJ{IADP%Xg;k4#9Z2}AeP||Gh%zo*ev5tSj?0@)d$I?5N-m&zKrT^2G z4iuhYp}FxlWrJ6Nv1|0tPHZ}KlLdvhlAys 6_5;8+1T&1CHFY0$`V1buFb9 z!DgEa`owJ(jXP}_kO*Y%CgeiI#Xdm{SuR#Y7JdE)EB*(CBvu{|5+cIEX21ZKo0p(~ zKPx}Umc(vgK)f*dr?i0Acsc6$MH&;*Fu=p@XgJ6-j@7~=X?xcb8DCC(g5D|1M1|l- z!zrwbotRqfP#hyN;YjIdr@|Q`j=`-Hb$-N60oPkqdh8alpwymjM#no&QD}T~Gz?d4 z?KnSSp{NfER+ In{2*{hh|Qu zf;hWFo^^gI# (K6I!7L^i>j`vdpl`v} zC?G8f5Ox=^A11{F_y8Vm2?C@Q%qy?KmIKSNq;7F9IvWMzk$i;m-sgDG_f8lx8b@;K zBx(xoW~uSVgBskH&X$SLp|APCx!bri?s=?VD#w6~*Hy5bR}y%O_gGvpr7J~=B`1BE zX0b(ul(b7FzdH=^M2A9?zs`o@$Yo0h2DErb=|>FXuFrjS{et9?XNG zjZOUQ2TUl0-P)Yf<82=LOwALO9sG(nSg@Ko?js|K$wdbJz_%%I#nJarUI!AuM`j%V z^h4}B!wn41WxyR-L6nXXh#wjd5MjbB!tPy9IEvxxr2v&FQ!tlS-*6)BX5g8-U<;xz zs;}WF&pPW|L}jAekyr5Fjkfbc*DvkbmRlHJNdvW=ZQE_NJHr#g{OC($n;E}EX)zPe z^Td9@B8K|}kJ(R@n#3?>8{i1Z*!jz_2>D-uBd(_LN@o(t*Cjq6A)E00T*tm4S^4^X z)9GYbLM&Z^3cw7kKnSgc<0K+-5C3O3loGCz&mb0I*1E2An)-aGkZ3h=)Rk+gS#05& zA{h7zN6WAyNOOoi7=Us~4 0ut@Hzk!d_`iOjE=Gs@ zWpN1=3TXrmoWpvzjDcoa+GPmj{xgzO5Xowj4}1henP9%kE3N^mRU4i8kk^vCd}l>) z6dDSC`$lMkf}-(m5Tq2f%$baS($z=e0W(3orz}Bwfu8bC3v}cGIa%FSI@p(oFHgsW zvJN1zi4i zno8@vM%eu$BAVuyW8R5pKK=fLr&lO&0xBH{`l2eZGs*EEX7WE=en-wba{m9BoJqz+ zh;CN&h_U94^?pQc&ewj3aM?Po_ku5*gyrnOPP|eU=uZdKIQy|7e4AvYHr6i!okwPA z4B!HLlJ7LGIWB-93$qL`kMedjnyShp$4X=ju~;-N{=)0SoMq+<@AaYato6IaODmv% zFUVG7S`0qNlXs7O9q73L(#~Cm+|zevi$84JAhLW#HVJA9lIzS;7`M#n5l|$l#)+U& z<}1kkm$&I>q^I9&dSwbl>@aL2!*m#;yjVLhnyQ93PvT{N=*9~V;wq7rURsRF&E$?a znP-;0Z{)R+xWmYVkEi>OY@%?T@ 4eFaqR6 z>5?VTU$z-tv6Rc(Q?J0r#Uw~r7lXeTEwT$a{Z67dZC8>*tOTYKX=6LUSGu00 713~u%Z2xJ|k zP6dI%D@>YY(;z6A@_(>*=V3AbegE)3pV_CGW~OQ1r+wO|ja2G0ZPI46mt@*Vl4+5o z_{>b&gpo>7OdCZpNJ5wv6!D!1$?_f9LMTFfef$0<&ht9Y>pHGK?)yHE^S-Y8K05r@ zaa4ytbUb=`zMn4uA=`d;De6Wvf8wbWL7VT;m?+M^D;~Ls)r; B*n%}g;&V3N ~vb2Y65#aDk!-!W`CQ*&8CHNGmU#8)GW?c~Dk0d@t z>5k@UVw2?*l1IrDSL_UVVRnvpgVaTX_xpC6aT&gU*Rc1IYl;lOcE3_S?a*3+2kB(K zTSP*rR-}W|sEuxR%@Z?gDL*l24+d@xB-C?B)W*1){1GNj+Dt}fpQfDMqp!h~ooFwI zYbod+&{v4G9z&GIS%j0~WqIbfuv$4nJk@v(HW-Dl7!DKBb*4x)nvFIe0f`=?RocKt z9nXNHLHn)`A9niOa-v^~4mX{>yJahZYp%weyWp}q@@}3kEJYYQ^5k6M%93XPzs1Sh z%sh(;h#~+ldUZ^#7W#e( J0Y3NT7X3*`;J?HsPFSaX&MrNwPJb3?i& zL+eNMIJCd$>SEFvmm96g7MqH@z4|#M7bc)|?Sbcr{D%I-2Wb7tv*N`3O-CP)ux*NU z=kE3*&u=G=q~197F#D7~&Qa5t>g;gu%Li2CfgK4pOcwv}R1&HDiscJMcmffN!3f`3 zQl#Ot)F(95>zi02+<`Bvw$POk81j%2m^h;OcLGaO;_y{1f22~7Iw(bqJ)pkjP8gCP z`wirK92e)pfYmp>$08@8?&&Ll4t-EuoZXFylEB$|rxmS>uAxJsDe(jGM=Kn=J2WIb zdDbFLY&C@ZTZX*q(p3Tp_ (tf8j zRZVvE>127pI;!|f-%pAQ0i~;K1|v3L2&1TUv3f+5l#f@LNv)$u &%W;+~1 zr0F%4*Xldb__ioTft$f74YmbPgi|Ux%encHRHHaW{pvdw !|RV~-0|=CTz ElU{V2SN zCb0^5SZxhk1bJtGh;3&*D2jA->8og VzaaiCE*pxGRKuPhm>`qHL#RHhT?9z1VqNo>;9|nRJTR-CTpb_0)Z=p>dO}ZZ_ z_#0e3npzY70as~5{V%wp{sz}W)%3Rr S>DJAi&Ch#KA#v1lOumK(j2+&( zWhq~0; c&-mDlcc8PhFbf7L3*HsD zF!)IMULho}dj8`rH)M$PH7SL<`wQB6Py)%ezCQI#%(lrc?0mgqG9rNGua!yLETr9Ba91{ zqfo?gD2ycL_NgP0ivZmpt^$6g*Dj>?C-Cv5Zr<%P9}x9+gt={K)d(A7dOx6m-h<%R zA+e|6*yjl%Z<-IZ%WF}Q;$<$ l`HORq$imFu(Mr|E znqpJWtqHoc^|K9!Nm84D%;;w!bR>_|C5&bJGPNK2s1sQ{&Aiy|2g%t8lucqOk6mxD z9=w7+{s9}BAcqstak>ZvZTG<%oT~RyfaX!m&u0D-YyGY{v2r4;kX5HB=?|r&(41J= zl_RJ*vGNti^tYR%Rslc7DlSuw08WU$anX C`aRtNyT6f|9AP- zQeJ@`gg`rrmuN2p?>Cu(3yWGtTseG{Q~~AGUuzsCnN=xK6Yq$-AP%C}I|Y`C(`~wI zzB{Ta;&Wv`Cr1*k)YdFsyY-`*vG@&b+PnHvg*B(Vu6xUySia@fhV{NXs~)|%t$N|x z?R6cX=2R-Q;9*rja!5nz-J~V=E~UJq`kt1*le9_Jz -!%Evtu z8UFDQI{ +bQ*XIT4~gl9Y{kCzq^MdSW3uLK}=>JZEz45UVgZ-8BFr8vQsmA zn?Jm-`N078roDG*L3G2VNBx1ia(g)DHm(7}{srdxcewi-Xcdca?rK%6?SX;;Vsep3 z=$o5^PPspW+Gn1!pjMdhW#sDOgpZ``o-U;BxQeQZhl!qlfVx!Bg6^0gtdLLR;e;P! z6a*WQ&Jr!mZ0m7f&FqZWh$P$-&L>Uem~vW5hL-L2mu+|G0ZC_*Rqkr>9F7k$OBI88 z#!GgsE|6rd!a+j!M?%!*$L7_6Y~=fwc@=cSLQdGybu;-of8yaQnI5iZ`P?bkNP! zhfL# ?%8+@ z7#WY%zokUda&9Ob!E}7P7%9?4Xsn*9c~Ey7(3ntA_la~i7~w5hX%YUO=mhk7$L?6( zM~=G1-uIFgK;fwf7cH6ZH2lvh^uPV?|Cy$`Cgw;3f{E@wP8V7ejL_&si|Uo_tlesk z$xavU+bQ4Bc)HO@e(#C%7rLt4u&0`O8v4)<*rOM(-?*r1+1}Wsex}J%b#UZCjkR50 zue#()^XT&z#U|aipWZ&*`SQblw>h1fTrz+1d%LvPe4tY6?iL6ib3#)a(JY`r`Esfb zsUbNwv6WZW_So*)KUsf!rv^!7!7xR5&4GV>tHq=qfQI*3$1)f;aYKCYjoh^6mo_ns z-QgV}+x&m&r-aD0fCk !@q6CBC6?n! z -`Jia&9ozeaMYn?ozzSmR4ekUY5CySolKb`fMX{NmnD~{)X_OwiD-S(i~scxC_ z_w`Mc4Lz$ptuq z=l3iF&$hBx=~;&`X!uKM5kBPRoA-M+*IpF4W0lJ#@nlUG>EndO#C~_Ot;+1jN4bt8 zl>=CFt5ZnQr($+=882H}mPM**l##ZzkcW*>k&$+k%K&%X;50nsxEO{Vrs*0&P^N2y z&n={@=Mo6v5%&!ytl%By9h8Z-Cl%Kzk=F2|1pt0GS0>t&)t`FtdR=Q(@TS>#Q@w@L zQlQDZjtx7MJeKgl?Uy`x$i+0LH#F-S22 }ey1h=w zjXEHUVwbn*i5UGg(UhL6Y29owaeuUw-*;iTgnyoaz1LgY8!K32tSxM*MPpGr2SAn9 zYfNlaE;OFwIP!K{cA*ez%ED#SQuRtmYGe0GT%=>UX1S&P2z{a&_hHf!jb2#aB5|M^ z`JI#a*!Rn#RW uTu)?fVEX_}-c6E5U5t=pe6>qkoxex5NI76NYoHoKQtk+JO& zkt9_I*g{yt=ddZ6(+8M|TeaEOx7A({lU7S$IigsnWgJ~@i|fwrqD5=}b21xiG CYGRB+b2oyc=D{3q{)cnn)H&xm!ftcU#aN8}a;`Xd z&bjA%>s5+`*+F_tRKk%f?pidIp&bE{IcYbYDcvY!b`OpE;A-& i1(+(g0E(>c^dLqL=DPaZzq1QCv{K08|OI(qAX?p zknXxL^z2hf^XbH%-57pfC;`Rrqvo?~+fY3u>5STeji)Jx55!IVbS_Y@P_YJ|IqB7q zpH`}RCzj~K2DI((xIxbh5(P;}Z8b3(-+WI$hQn2EWn&pcQ#~CK@(|Cj+2`-c>|JHe z{Fjz)*|Wd-_4g_mG|O75A};o*D9ennfOMr8kSZQBu2j{2wUd=|VGs1#Vk#oX7n`k} z%Opq^DJ$A{Y|PdQoN$l0@L9t45Q#veU;`&HZ!q)C(#LPC6wZOmNxZ5%T0V-gouJXJ zZB=)7J+taQ`)x*^XMz*MxHb6Bfp_hJ7a-K+;j_Nw>s^hCUf+wd7j|^_AkS$B-b;DN zxRY15Jg(O>?tVPDAbq#ZTl^|xISp; AjD?kS&I@PeLdi zHK_FM7e1H`ubPSj$cWX_;uIlT-Z9)ZBa=^v2ChtILwmc8?kf5m11(2@^3y{_czaRRP~q*94RX~8YPTP7ZAeMW->F_SzM*YFf&T$@UHNoOBCT= zL>=M*vc3GGll3#q@9V0uyz7?EUM86G_g8v !20b}rsk-zoipBH@OGH>2) z^4z}EIbP##nP~Oz#e&HC507_N(7YPJ$3^Q*e7Fb(l%h3Dr=d+E5|no4H!cdL?HXG2 za4cO6Dy1l)wfdo2UAXRB5-tcI#bRxe@}m!3!S-sS&aOf|v^^uP9R=I;0x8@L`WA@S z?;GKly}&@+TBL9nX%phEev%u;dwEbXk9kMO=OWGVt?8|Yv}4-HRzLwO=+2=D`71OV zQQN-MwiBi%K2vDk1)a>Z4WC9=$ezVfw)!WGOap5Uo1*^wWBb)YgZ)Ms{g#A }m}TvG z51WAaN{>Uy$g82K0;?1ETQ<#+S0W>CD#WgkPQuZgsH_JNn5zmdO;(P`8EHty<8p3N zS)oe?+30GkSZtN67HQ^>7Op|ta%eJIVi1Qayt8pMVA&CjL|jFqOPVXb^K>}k{S>Kq zTjZglRTD(idGONE`|E%B6=m%+#xV)D)(z17eZc<~pZ}vD{9hp7m`9zQXGkdfLTV=N z=ZS8!=;6-gudn1ssvW^UbWHBq;j5eFKR#6FRS4Rp>t%k9=aNA>&|i+{bBh&r=nz@q z!rw(3&={A9%vevx2IZ(hVQ2c?-8vY?V2zn#e!faM<+0k(-uSlT5)9*Artr%Bqy{sh zW18r7lftY9ja5s4dy85NbV{W@zVXZQ(B8y%nLQS)gUl1>u4MKg5a%-;nk}Yd!KlkF zHr6vq{lR3BrpGJ#)3m83Dv@>vy_|cxPFoq`-;6lgL-N+_icJVl4&gsMta_0_3;!Ig z{FU_j$G414q?1K4nYe`k4NkF}_~xTDvExb u^z%;e~y4DlkT(z~h6 zX!#GBD>|*FTX VDt{5VD#8CEU=q5UMt Z$S1sWxGpM^0d)~ymI+K4v$ zpcg|fTJiv0xcy7G+xtnMemoU0RV0aHKY}|eT-Z+&hwGGet6Xv@iUJb-@J_Em1*DXL z9%MJ^8B79(I7Q;XAX#;A?0!x9OZLs$aw7;RaZRbZiGA#|IiBS3gP){F?i3wPGjsg@ zGH`IpbN``zF)|V#og;DM>SqIp^sBzFF-b9UeRCo2n-IDhr+I}8y%63d(XqO%po`Ok za%iMLM59s;)b=5FQjB)C5Q*im(Ub1SCcA!yyb}I_9l4u(@v1JsdtbNQZ*9!Kw-b UbT?7F6z^#zI z1VzWlfnbet7gbOvgqZGPk}Wb%peITA*Gnvf{Hss&q*H^(qA9!^ncZx-wpvEw5K52) zdD&C e4P=+K5jtId{b;i!)4e4d zUWIU<0L?TzeL@kCjpBdJ+eCzSh{P*at$Xc}USg2WBg3EIy+(GKN4_4dFp0C5A{Z+N zKsn%G@3lHbSx*5rr*+6OUzS!0qg0&nLbnvKFQJUE7wVxOVH*)EJ5u{Gn~_UB!0H+{ z0!QZw4}C1P=UmuCQ-i*(n2mH-;~g0x*gECwryO63w2&V07<+Nx1ahlIyU6#06YFvm zQFS6_7VCZI_h?86o=vM)aA1i)05GUI2ydM7=tHiS0?k97po61|$@8a0V2BW7Hv%5h z#}QI)3c=))OU!cgtpD0WQ8+krkFdt4S7UUtz;UpSv}r^RNQGBWp2r&NaA4&WA+6#+ zd$_=)kEzu14-eDQetK90&3Rb8b?o(AQvpW-<~-cfdq|~-y(L8E;j$xF=RCadfXu^; zGt3`C CU6w5Gi`LsF(a4N}T~g?CMv1bWS09^5IkT zDAq+6c#0N!D#+PN`k9Tu+N<5%%*p=6>cc@4s foeu-KZ`r`S^+M}R7TL!XIJ zUIzPps1jqYPLnW=rhSAEyU+zV=7NlBe+{eP4M*R=jNlhHR{64P_DqNgv|`=5KdHF0 z!&Hpx7=PpK?da3TUf{Q)^l+V2TxI^N5c{Q9G-suIDbyDeq-vkL7G=4inWGDjxg&j} zPNEU83ErI|*@B40!XZ0vKVMp{P@1;oXN8v)v{%0!<-~awGUm9X!qf(%!+=RWi)cq3 zPT5AZ|GNHHb4*_~qFXMDGV6IDE*Tqik-NO@`rYF>pO3NSk44=1%u}8XijlvF!iF<= za`tRcQ>~5yR#__T66*w{U%`@C0N#RvC1umd8yHAchze5aV(@ly5!s)%ZI8cL{`$ZL zO+$7qO~M5oh7cs_HK4`fcQg@l`(u3^>S^z9Gb!1wKYXCP&$h7prksoFmxSoqMmd~6 zWz=11nO}c{-luj?J~ev)b9g%NJ>B{Alf@XH?sfDxA>nr=7p<}!0z6* r|u&E>wo z#v?FmWKD(f60?iRVCk7yYh-6B$_fs=YbD^71fdbf%49#HUoMktgl~*)hW9@@o0Ry7 zy_NY1+PHKY=~YL^9DBdLpXCXolFn-(i=ydk#3O&)WOoD)MfVuCHZ7Q~c!nTJsB$i_ zg~jWge*5XijI&tm>EddpE22iAGR0SHgg`aiLXwgI(b2dLfa96ulu#~IU$mhJreaw@ zuo8!cWNd}-z!LCT%ys7Hw)do5*7~C LkHOu0>k z)#>h4T0W>|IPA;2u7Xu>PzxMSrWtx1#TEto9hDoi&Q4`(Mju$hiTxH5A&Qi>+aKhd z=3ZUJ0Kzn|7&D&_O|BB8c0{gm*q)h>2U`}_nADFU9kP#j$&2jj&-7v4pR@!#k13L$ zT *u^#stME1~Sg*QXWJ z97wH-2rbd%m)LCh2p8J+$}RiEo^31E?5CkDajv^%ui*5)p>SB44lU+{STOeog+S%= z@;%)>`+E8e^$i>A8x!IZo{v3OqAHb_m4^g{4BsBMx3zCS)t;H2IsI{(C`T+UDfRdD zAG|(jVP?^Kv^6C;W#Y|*mWEc%{+j5h=trZET%26G&UfYJ W@S!)nI@8mrMpV~1N{eY4O&=P zv>tCwNllq}KcS_gRdcW=IwtzjlSeMDE?t+pa<}IGnEmnBUw{3NYWH9L=JQ&f*Yf}W zv`pV322DCI-1z70c)GaN7QQ86o|Cti^q`zs>jub*vz=mqm{BM8kWyi0Q*5 zQwe!K1}a;<=&%u`Xel-av9=owTJsSRj_slQS5)Q-Wm;C#%DS!^Qd^yL@g{sqPqkUt z !)!e^ zZ8>ptv;Lu)Yb#o%nPNwMEM1UI(moW3+i?)9 v;9~LE)(~{Ww|47eJKE(#FH{xM5hwLEw_At$QV B*-nU~Xnk9RT! zn`Mm&_z>wtuUkJsSXT2ze6^Td3Soa=5kL%ldD*j%5SIJx2B6ki;ynz3u6yyA6b66P zfs?FSCEjs(IjrM3xY=|IY=B{LH3r$(*6-537*5-kS}CRliZy=T 2j#B8; zr>`+p OkCDHHf<=pmV*HD+J*yIZuaZHfC8 zDg(D2)%uy_Vp*sx1>9*;0L)`7`5+Q*^X-CXStxMM&?it-nW2|58{xzmnW3r0x|Dul z6(j)cE+To`YpCvy5lv(_5#5qY1B`vN )Mp8 zvIAR!L$Qa~YOQe(MojyMet__LLguHcs2=f>T=BAg5e(P5bnm7O`!UOHg&|8{sO_FX zhW7+j@;VcYLr)KU^-5biStEx_VqE|03 y4x0NMnt>?oHD<}9gJ=(E}L)6meJ z{fMWsXK>xRNA!K%>n(Qtd -Rd&e{SRKJQnTtg%<(^$7tTnchR!>W$2=(R5!Q{Z7)O^h?eYi&4Lj=>|Kr=2wRcO zSMP*{H~|Eb1mWKP09STl9FZ!#c{NXp!6(sinbMAcb{IKh16cjJ2}DW@(U#J_@2uyp z`Y|*Vy$lE}Uk#MXI5_s{DIrQCIR}eTryWq!?e>fHQlSk{Jrm!Rz>mr)%x?Nz1?nOV zaU;UhClAy{F5AS{G7JR00{X_OYtEBr7o;IXdyPJpI}Q%Wp27KOkqcH7_Zp?9*>*uF zstIov9j(8i*t|Qm=?hQJFc3ZTXDzmWM}5ckuWSs_xP&6*-a e1q*ueh_q*%JVRNz;H%_k0$ENzLDkTZA zx&`IPB vouyrRPQw;PQatUR|?Sw{l +Vm zF6U*#&a&1K07?op@PgGfz~cU(dR3LOz}6}hlPgkN*Anoe6Gpb@Bgiy@- 2pl@x#gWbreoM&0W?QTmOncM_hB&tN0n)Dn6ki7@Vx*>PXo}<+>1Ei1-6`) zrZn=tNlWSJ=l5dl*MkI1F6DP-wo95JWl?<;V>!*}{#+fHsmJHx+JEfR_R&J7Z)uU| zTo7*e59?d*i6}X-26S6MB70}HJhk6v)z9ohq!0{cQFNBAgo?@pURIO?_y5dv(yJsH zB0?Z@-QSK6T5m*Xsy%Ql)4Pj&`T8aW8ktg!wQiQ5zG=|unP+B^v|cYu^#0-l=_}w- zQyN={Kp4D5E|zrP3e8bYUQesp@+n8(m4$@MhJgr`D8F3j<+IVgkA*Y2WB$-*8HQ0r z_Tj4t_Sv&f&E_U0JY ZD7s02eCdUt))EVic!AVOz)%|;j;LP!%3vVDnX*9_*n82>7W{|%o%Z|r$v&l`K**#E1HJzWOr z2ugfwgh>1(7f)pKal>rzLy5kgtmc{$08s5jOOClR09_7^4*(#T$>RS}JVhDPV9I9& z!zvb1%=*ntf+wx(oPdTHzF;70BfyK_>{9bNFi3WyEPf^wE-z^$-n=(EbuLJ%ua1>M zh>Lu#*0i9=Z3H;En%@v>58JuI4Vxk)Zbp}A+7BAMYvD(`}kJ!?&qkn|kN~7f&rjI9pAjLy@H$Z`mR=*^2IJ zj3btRA`K2@ezaD^bvsWr-1N^1=G4=JO_e(QKiGe&9!fE)whF$fYA^2vZ85g_R#a_@ zFQU5Ao0B6TvHz2F-BWc}thkixdAFO&V_o9RE^hvf(-lP7+uE3H_3aWp-C)7FKcclk zeIKwY#MltWTyhAXk4^cQ@g9HuB+P~us!&mmvj6cZ@SP2b*+n>V{D;By<7!B<8iZYd z>xOTec-!tz1CY(vf~K;6);U S1wJec>gtY{4G26=F? zWx%o`O^K!;iG{F!098KGd$MxzYVkDyk66H3Ke1Z%{+-7(Y;iCUs%Ue*ulhazdO!^@ zkx=YnM9Q#jUp NCUDeg?bJ-SF;4Y-)W1X7A+LAD^mfx!T{ z@(=kH>V<$+v*{0wry$J(gVq@DF4lViXb8jO@lw&dxz~5&YJhBjg5dv1Zfm4$Y67Q5 z@RV}Fnwf0mB#Z-$89EU{j3=pI_WDkACb~xvIaOJq!=Pw=nM6HLS8Hp(BkOpGBk}ZZ z;$h_)b}<74eV9mNQP^%-$K!mx?};d3;`(SI5+kv}M+@xhWKZsFo8(YopI^z%nteU5 z zPI~`YhsI;Ms2RW|V5{vhC %F{x z2H6~!m23f^>a4%>(SkUv?QVS%{m&DHj!f_FLiUWT`O( < zbdq8Fj11e7c=R}g{fTXbBG7JM>K79qkc}{wT^A8-b)n90Qv4gZ{4ajVd2P>YdtTe~ z+Md_;yte=EYMYyV-|L^XJ)}tP>;~CIy|hzf$bZsyLaW5vR|0mbeA%Q3(Gq0&Kcrz3 zv)fM5+c-Ol_A}guEdRuc9YYJ1EQN1Yj1=mARj}DeSXubiJ`F_v$h4wR4v}q+X QJ9~Kn)Q#X1$*4@x*Nz-j_X%mwS6W4lHD6e z8^iW-gB!~)V;CQzDUvAtu*0ag<&RK__kO|KadPH)+VJDp^_EAr%W`gZ%uXX(Uq}3M zLdoGhWy?9rKjs=FlwS=J&eTJ|fxG>#Fj`x1Z|ju~u8Mt%<-W;2s4KClpXw=!JukjU z5}uIS$06i7VF+Iaf32*_tnUv2K@u3>dN+Qd8hpI@wmIp-3xqZU+Ot&3Ys9}pm Qh-mmB2 zojvYvAkKJgxC^ut-NoG7`EF9G@SLvS-GBcyV5(V&H8?-asgzfLPKyIEk}@z1a8^&k zBb?w*zP_}SXQIPl5m+i{CRE;soG!*N&)&tSh~j?u6oil^M=C?mS5|duyW>RM9vQq( z$l#s2MgH>F)%?R`SveyVyh#4S)ftCghny@Kl0V5!d%yl&@eCwyIQb~%Gw}FDQZYH3 zm4F*bm@Z1n8}p}p`I&P^$Z~GhGtobCZVeYroXI3K7R|}qDyv-IR^?(45@hnjlG15W z;XW#R^La51e1COT?zUR0eikrIAA^SfDk)M-P|77--B!dvH1c)zfn0=-x;%uO`sr_c z(VV|;U_dQ6LE-QI)^5(gQnumgfA=?Q8*$#>|Du)u9iKk$?|FaE`+MHs^ZuUq_q@OV zzv6Fl?!fKEx!vgZ8-YCZ5e3C0__S 6Bbo%^HRa<{YL>)+pDkP_w4oGY D!M6M_vb1~I;C1%1_lGS@)Lj-iy0Mf>;zUU?>=_2! z0yha9V3g+Y=nLo|U$<+IWaV|N*O$Np*TEy4Y`Uc)q*D3is!;$cOp#0{^X!SV*ZS9& z6r0!RZ{_fm=m3&(jf)5p+I>7o3q1D_H~Kz=yK-&IuLk#I$XtUPdv&6H+Y0*B=yj&< z;SZ!-so!0;80)UHtPn`TOTL?C zsqkKi=-i{6+c@=!FMIQ7esy<(&u1Vnd1)xCd u=q6d zmipH6MK&jt1Ybt5IYNG8@D(#J>pslYa|_QpPXcKRHB5(t(ss+r+%9xmR0?nJJ4uY6 zvD%PeCso*J(KLeV4h8IKyh6Gd<1o@jlZ`O `& z+vOxrht`5{Jh11J4B?J1QVo(W1f#Q>nl5=A8H#Ay9=ER+HyHTG+3nO5ZCcZ@-!&?l z>KCE&mJnH|H#T9MR ~*D$0&Sm3aMkV2kXk~UDUFb!>{Ky z_q|`sJgaJ_weu)O)-$=arP*|+Lf0~<1Sdi*hO_=`Ic?->Y(QIzwpRM|2iru{T{2~$9u!(oznWBdZ|nHuz7O&CO^ei`8~v44IxVfYC@`M8J8(M@N5MNp zY~$j& v`%_Sxp7t5av)_dPc>UHeCEzYlqf)T8#)nfIMY_xn7YqV|b} zhrT@jcK@x1WDHdHs?FJXzh`FV>>E+^=U0#z(j `RsXY&trQY+w<6-$M!t7=du02AKSoKSF7O(azvP; zYUh1$T3KsZLJoRuzTOel_%_?)>=oGN*55U{TMsoSwtZmT6J-S>_jX4*TckJMOtRto z?Ryrw=7EoVl99d7tb%!9FI~%JWF~;RPk3MFk8U}UQ_05f3Fu|_w&$UX_Q*xZMc$gU zDay=P6V6;J4ti6VzsG?eZ?J-;eQqOY!d_tPaXYZ1Y?srq$G7DyMk$r|@~aHJjGqkr zp*^0>*n0D@omX}odNCA)<}5IH^`{hdO{+XZl66FTJj%Yk?h5J2XRb 7Kk=?EuS#8n+a@*;_>?ha%Pf 3Kv`S z(lvi7nR(eDRvUL^13>~jc&qbSua %CAN2p!!``udWYxob4Ni$lpF`W|{sy41- zR%ZYw>>*_u$T2&%ZBZtGS4i7zxTGp~dqvh);|R^F1y}~sfB_H$nL+bO_rHbD|JoOw z$M-zG=kYy{?|FRB 8>J_1*I^{ba)Jh&QEX6%N0%$db?K;f2l=zw4f8O%8w*_xPNiv|w^ItWPUF6Q zetc1sqJCp(Br$7bnPU6}0pqC04rF6{nyw>|`!cLVK@duDPJ-4w4esd-`v5NPWbwA1 zy6DFmT-5j22Tvb?AO(VF>yPWG99+!l$97B5!V03Bh)ch+RBiEOs$MEvZ7QbCr2F%# zH|eA2W-qr34{zsqe~dc6CoNZ?`QX4E*D-_NJm`kL>JI{VPs6KgQmfR+$5oqOhSLvD zNYBL*@LnE+d!AH>=i}Wa%gn?ve}PAnH4YxK_hm2i2YNG@-a9sKZ&uYnq9OT_cO}qr zI(hl^b4M40f)jR^gQLSKs%mgydd(`eg}ajOJnu&(W+7BGg0*9;>P^g0L2IS{YitQm zmrEZZhV>N^EVHe> }-p(l~g@@bEyhnSSLZron zm8r(Q-N@ad4Xx_lv!o?l;H_4lV{^~!nOw(4c;I`R!r-ausC(Z@iSp|fIxrsWJJYMb zWcK!IVT;kVW4BK2(HLL2T0ou7B4Bqv)UVd|T<|Gws|eA$zffcA0&M?r`KmdGQ(bN9 ze23ywfH&UXJ8z}Q9R79dfg6kH@{3#<;OVwo)}G##nVkoaFR!;C5C`{n>@Zt+pnIRn zf=fzHt|-<{=>x9U8?ej_KCQm!1J=axrLczI;rvd#=gUP6%a~T&>;mz_GYWh9>djfX zga%CU^Pz!#D_#`7f?pId-t2HU5|WJd4a@2$S7l|k7@Uo`)+4snY55V5S6ZQ<_sZ~` zhhZXSvDji}C{Zk!jVLd$|f-v&)>w z`zlspM4bGZ+B&HPAX&vv-|?msvGUahlc}8wHM%J&UW8Kx+s7KOPycwQAG0MdAbRqk z!2A8E%;Bi x$LaE;0Us$OP1jM|}MhmCgx=r&agmormvH z*Jc~GB9Eacbr~mcBlmlpCNYI {O%uvD?a%J|3ouyKh}?avo%4O=*X0aVjqj=F zd?dTKmS?}soYKIN^7d%X7^@q+QlWeg&(_T+wf2$zVkT*S3GXs=BdMCGT!jk-si!|H z9yj1F*#zvo&yHRKXDbtOU-@ 7Zz z_g^LiW#fUrRs>}eg1^QCWwU|5_5*({3jUf9{Iwq_TMqm+At>7q{Iwh?+YJ0Q9w^%q z{52kknS~B h&rP6&>(dM@KWrFQV)%6Wajkvr$ zwHvb=+oGHZrc_g-t){gH_ii^W4l}n`ve&qHe2cv%Xsv_Lx3+Y!4>hM|Y&<8RnulsQ zQk^v|G?BKOucSKRT@ZBO-8+VyiGd#h+1z=k1xfHzGT_#li3AEaA8BYilcG7-MA|sA zMKi6=rhfnNr2 iJX`#k7YiLZS&S ;8j{Wmz&q?fmcHoyz(hpin>Qy7hzD{zhJrqkM>!?YZku4?UGZm%sI-E zU8N8G=6Y8=6gtYSh>g6|ys_~~aHrslUZhB`;mrOx46AJ&iVt^LDi|_M^EIP-S=U0u zqKG1rMl56O&J}l)X9gClq11u;);-qB_4ir@V*5K(*v>Cb@?}~ `0DNTM8~5~8z)lHyZX(Xf{2Sq#!W(e|d-?Cg*p6ZS3@ z@VC(X9ZE<_(z1Id!~|SiB8dWPleLQLL6h?>J_ojfRubO!%@ 5ba{cWnrNX zPXN1%^v8AM{y5{?B%}3vAo4}`0!Vc4_>@=Dtn1C#9`7iYxYxZWK-AmzA~o1OA%u9l@Hl|;aqM+2pVmps6?aI$k z@ldV0yu^^!a}Drhwe@?o3U~vNp}jqVrA7U=WS}RvPc;p#y>v%-|K!NE<=<;i67mA= zr#F@;O#(M`ac}K58D9&%hM{ZLapkjPvAsCW-ctSjuCc43K0h_#{w-u$bLJ{%EqoPt zAaQvQp2o(yugh2%F0N2jtglirpwOdnj@ZDyoqCZ(onb$QuqSyj>;23D@0YT5r>?fT zZrtK&%P`_#s%u*COo(F0;hPn#-dW_+jts86ZA9C5iUtdQv{+Mw|D%uKXak`g`eA 9w;5X+`&yj~A7rd4~B3WE# z)4I;oiLw1LDy`u2_6@ST$Sc$*1x3m=?y-Uq{|8r(Ac-NZt2604DXq_ol`UJ>y~wER zNv^cfl}(SmEZ&8+5is@HKykx4HFYxys$G7{L^ElOvVc>SFJF%e9N2&9u%pN1Yhcy# z{99^NSfo&3n4lib?3g9(t+0jk7H+igKxc01DOno0lgjZ$$I{Dew|*#16vvVWhR(Mu z= ANR z=K6uE+jjb0`g$YxJmqO?yy7{qI;Hyp!v9pEemC2&Pz0kM35Y%ZgGL(+km37dfyk)C z{wm`%8`uPF`9mEIIKb(~P>!+vst 4t zY4b3n(v%e$RTpGV*Ew<<>-K5!hHW<*y5%rAuJ5%nN~n|qr#!5ebBc5;#u8C7QCDNz z2-mN+s2rV`Rl8-GZMdpX9iS{c0va?;AuVVTDs-0G`j+}t(hGZ1B-8x|zwwM4QA=G; zFVRuUQlQ&eB1mdLaDoOKdqn90;*GaYCj;J#Z7SHzNrEenlDvHU$5s)c4)c_|8Ohqn zHKz(4ju@A&3l}n%-L5>&vOi%O|K|?c0^uTk$NC+~mi$$l&H`GS)9gJ@_t@O7Ft9bG z)%GGrgY(XFul_lBct~L)DD;{ mL!!mHZ}-r4-fb$hNcQ$vECOgV?0!g_%-e?Hmilw(*qb`*v5(OX@v>5Bf-b_q!h zZ 3|5o<1hipCzRpv0P7DPj*Runrl+{ZNfn(pVCj%*?$U}}-T3Y2Y z>%Xnc|4d2o8CQ1f-q5UsmJ=Y<8`+y@% POaOc zVPSss%^vkob5mq_Sr5TwI82@aJiFunb$33z%qBU?k5%fZ=p>u;$a5;*+kp@rsr8W0 z?mpUkFpH8XZ>q{tN>ov }coh&{r|rGK~0o3PO^?DAn1a zL00AmlwSt;uXb*R@n$TpcB8P)M{4`@Y7(yDC>HCtHN)!Vd3&N3!Tj@!sceq0ZFb%G z@>GzQSs3CN^{ii7eb13E@;wkC&fVyDR=ZBgug#Rv%ptWiBNaoI_LF~n@gj`8^$m@M ziEhV%tO9ehm()YQJ%3pd-`P}_oO8usX%fS5=Udvy=hHiavK}s3jcQ!DMbXb{+~PY= zkXa>uee~tn-PHXB${+Lw$+%$m@3D^q{-UnjbLq_5>P68NC*1oyJCc}PEA3ZT-9gKB ziQJ%XAJ@8PcP$& Q}>KYahSws}h$Q!)J1-;Q>L)M4a5>Tb_1DHf!NWHa6+> zA|J-?F#$_>ck@hd3hkU1uJ6i~cU}l()|=3ty~ueo{bN!kbadyd&`u@vk4JqGPIjA> zozUa!92L%)w^=^=cKQ? zpf=sRPYaf_J=k!r`K$feb05b2;eclGKE-8ynG;)g-s1l1t5Y zwi@YTyXc~ecB|dbOy%)7Kb-&K`Tphg_6G_C1O)#3T#*L&1M-_KM}r15=stfgKI60r zY0!@b90d5Atw;m>0r}0wqk$lS|9~2S{{a4g{66=i0sDaYW}DIfFBlCJc<`$NqiGd5 zB%}Yt7X{W M#02c`uRV+#~$M_i26 z1q!qwFF?FW7>xokByTz*t1_=m(J0W!L9Y=guqumc(SXQctpXj1=Bi9d?h?ewkBVp% zhy-gCsKit0`8-IgK-#PVF+hRb2yA K`GP#{^Oz%+&8SwBUi zz-kG)3J(-`sr-uqm(MD26{=Mr4k)m;3n okx{Tc;YL`dQ*Gzv7R zzEO)R?bgzO0)sUQqyq)=!rML5iT|s>jL!;mTBA{*PK;HH nD7-M3 z0u;Faivl^W#Ho|5UCBW~K!GH!0>gj;S?o-cSq0L70#QHtZc`t7vMybtKpm|D4ba=V z?3{?N3gj!&GsBkw1q!|>FaxKTM=hH(-&3PN1Srr@qd=ib2^46rRiFSU(2ojh6-eT` zBUl|cN`fKcfCBL(Pd^w#^OvAFlF#qt!(6IRPE50Ok>iEgl7=HaO9vv4l me=thvV&Td%NT zb9q@)v9^$NhKGl#10iWTq9y$N``V#OL%R;@t*D`#(paTb!K_R@5qEMSjiCxVbiRSA zc;0a}^K}z~$=lj3dbeaB4Ku&wZ+uVn(I30cc{ X;u z4FCE1inY2IV &15;PS|I@8~N_s0SIOW)ol6nq+y#GoOmuw`EY#Y(lpn@>GZ#% zpFMbG0oQj~sj|`s^v`D=?QpjJ_LaD|3q}*$(!#-7`LdnrEm!9(5y7;gPg{PH|~-nq4`Q)|!rXhEgqWU00KG z$C?{UVe(ngMwYq4$*3+N&N2^O`-xueF7{LBj$V#noxr$Zizecivv7p+Y^)$)&33{I zRabl+_czf?M!=#P+IF<&+U<>S+~5XXDRbT_nO__tf=Hy)E`ycy G^ zeKn@PqtFZbu!WkZPnlrC?2T_HiENQ*Y*x6+@w($L{2BlJi}|AW5J)1fe;tzE}JxWCeDBk|UH$2gC~< z)JKQw0z3{|D~pLWEB{F34fh?HT<@!&4@*#wx~bPWL1w1A9+&qX4}}TKNVVU7a2!SL zH~+F;e#?;U(qnpJER~eaMm$EUTj{<{Xn4i+28MslvivO`=JdhpMSBm$7Z`ik8xdZw z0RNg^PMOUcrC32rV?;o6Aml#M$Y=hkI~e+qRHal7_2s?br(NI{%556zF6Qgy?6rrY z>UY&-oBo+s8sdt_H+v?J-AE(nZZ2R8>F(xFb~+f`k1yVb;-iZ7)GmzJyZ5hrw?^U5 z3>w+#oc5_b==; h`%u%HQbPJ #I- z^fPYOjeAaaU#XB?|FvZ$PS$_b&!>80PElakz!d&~{AmO{J-RTbEX*?Gb!E_HuTRds z$pWtWe!rvQ*1QEs6JnA9<9tjP)-Vi{a;`-tP7jO161}V18Qe?4)16_X(Q;M)A;WVw zzBTXl-D&gGmwr~!YEV#OAhhen-9Bj?U^Ec%g!hms;CyT-$j+;pqBg#II>@f<3mo6b z32sx!dRU>*lPa96>Tr?Q)-yNlp@)+CXwJ;$A&S+r)nSho1=sylBS_t^FKs~;L-OR9 zq@R?<2nI%y@~^w61oq3JeSMZ4X=O$wS5z)~XT&Xcy3qk?0s6z;|EAoTz8F$;P_pKS z!QFIb(myuKCZueiL&n|D9vjvFNB8ZS+6;5?P=y3y{hhV_c<5g#J~DUiy!Q2v!Ng&b VIeSOKe_M~6JOgzbHzN?_{4Zp3EbssT literal 0 HcmV?d00001 diff --git a/public/public_assets/pngwing.com.png b/public/public_assets/pngwing.com.png deleted file mode 100644 index d0e0218a0bb04bd1a30abbe568aad4bc1b9ea02b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1560 zcmV+z2Iu*SP) Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91DWC%Y1ONa40RR91JOBUy0B9hbtpET8f=NU{RA>dwS *^lhWq++&j*?aUw2T6_g}%IuP*b)*!B3+2++9CRYdp~s%tlG<{62F{wvToQ+? zwYjZ3d#?=7nSjQu6gzhx0Kwa xl=;x?@Y!krb8SzUW~)Y;Vx$K z?_i$3A7it6Vl7T}PnJGd9w0>W*Gz67?&=?w16$QsTJPU8IsRiXUIWSVyLN4QAiZfm z2w02ujq1YY7pA8dyx0vB2L%806l+<7$8<2hPqNst`(-G$2bC6W%KjNC^s89t2dJh# zu4YH&kvbojLfZXL|CIj5Z}S_MYR+PR@6^=45hi$Y3Nh5t(VkKpFQWNW1SVdz#AgEm z+ SOdd@c)YQfC_GMILYD0whmNziFg0<}9c~aj8>SI2Nhv2|Ly$ZX zp6ueihBY29g 4}M{7_CuEc2dhjMo^=22l11|j;=nT)Gv*?=$;n( zub#^I6VY0}bR?UbkwQMsvCxk0Q$nhf957)VC*9A*ns7FLq>?8=QqYSlr#QV+V>29J z5~l9QNy63j2Wa9j*GByt(U7OqXR@5oP(&@+SM{s+B@6Si-?n=o` zf=`NuLJP}Z>icsWNSL^ZYZliwT=(Ph{iAJFuuuA=P#JfBoIhOGt9RbC@)8CUp>|yK z0!?+(1Ys+Je0-AieePuftb=kncHdnSRpY@?tH>|s5gHOqAiA&U)OM}PO-vZNUHsw? zw=Z#={eF8b8jcg%DTFdfypYXXsAz_^y38Vrp-~KHl4!})-d3}7 h2A7fX`Rwf3#_5oy&+ zQXC`6-r?c9INX14HCf{5=3O_AAxP}R3EE&1-9 A=BBZ7U#vtD~8 zYp!1w$wKA#BFNFTVg>JYBXz%tK3OEmOSw|&OY~*|s8mYq(P5K3LZ5-9U~ff@eBsCS zX9V3-vL? > a-!|hp8KzwHz@cPDD)&`m-NPe3pNya_pKL(MSbJUJ2juz*7 z%H_d0JxA^i2M1`v;FH|EqjlTz;Z{=K!I!YjCR>i~e`V4OpsNd!2dr^&&yHKK2+8j0 z=^OZHb-W=c`mVe|xDGm4mM#=CIX#kb&mh+UqZkSxcr`}VwD>=;44PT-?gLo>0000< KMNUMnLSTYQV%ksu diff --git a/src/App.tsx b/src/App.tsx index 853bdf2..fd09441 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,8 +1,7 @@ import './App.css'; -import { Map, ZoomControl } from 'react-kakao-maps-sdk'; import useGeoLocation from './hooks/useGeolocation'; -import CurrentLocation from './components/currentLocation'; -import Markers from './components/markers'; +import MainPage from './components/mainPage'; +import Loading from './components/loading'; function App() { const location = useGeoLocation(); @@ -10,30 +9,24 @@ function App() { location.loaded; //위치데이터 가져오기 - if (location.coordinates) { + if (location.coordinates?.lat) { nowLocation = { lat: location.coordinates.lat, lng: location.coordinates.lng, }; - } - return ( - <> - - > - ); + return ( + <> + + > + ); + } else { + return ( + <> + + > + ); + } } export default App; diff --git a/src/components/currentLocation.tsx b/src/components/currentLocation.tsx index aa44cf5..b49cde3 100644 --- a/src/components/currentLocation.tsx +++ b/src/components/currentLocation.tsx @@ -7,10 +7,7 @@ function CurrentLocation(props: any) { return ( + ); +} +export default Loading; diff --git a/src/components/mainPage.tsx b/src/components/mainPage.tsx new file mode 100644 index 0000000..51db958 --- /dev/null +++ b/src/components/mainPage.tsx @@ -0,0 +1,27 @@ +import { Map, ZoomControl } from 'react-kakao-maps-sdk'; +import CurrentLocation from '../components/currentLocation'; +import Markers from '../components/markers'; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function MainPage(props: any) { + console.log('main component', props.data); + return ( + <> + + > + ); +} + +export default MainPage; From ee41e58498f74bff235542659acbb44953f05975 Mon Sep 17 00:00:00 2001 From: Minnnning <6alswjd6@gmail.com> Date: Wed, 16 Aug 2023 02:00:58 +0900 Subject: [PATCH 09/48] =?UTF-8?q?feat:=20test=20data=EC=B6=94=EA=B0=80=20m?= =?UTF-8?q?arker=20=EC=97=AC=EB=9F=AC=EA=B0=9C=20=EC=B6=9C=EB=A0=A5=20?= =?UTF-8?q?=EA=B0=80=EB=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/marker.tsx | 70 +++++++++++++++++++++++++++++ src/components/markers.tsx | 75 +++++++------------------------ src/test.json | 90 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 177 insertions(+), 58 deletions(-) create mode 100644 src/components/marker.tsx create mode 100644 src/test.json diff --git a/src/components/marker.tsx b/src/components/marker.tsx new file mode 100644 index 0000000..981b581 --- /dev/null +++ b/src/components/marker.tsx @@ -0,0 +1,70 @@ +import { useState } from 'react'; +import { MapMarker, CustomOverlayMap } from 'react-kakao-maps-sdk'; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function Marker(props: any) { + const [isOpen, setIsOpen] = useState(false); + const data = props.data; + + const markerPosition = { + lat: data.lat, + lng: data.lng, + }; + + return ( + <> ++ Loading
++
setIsOpen(true)} /> + {isOpen && ( + + + )} + > + ); +} +export default Marker; diff --git a/src/components/markers.tsx b/src/components/markers.tsx index 64332fb..502bec1 100644 --- a/src/components/markers.tsx +++ b/src/components/markers.tsx @@ -1,66 +1,25 @@ -import { useState } from 'react'; -import { MapMarker, CustomOverlayMap } from 'react-kakao-maps-sdk'; +import React from 'react'; +import Marker from './marker'; // 파일명 대소문자를 확인하여 수정 +import markerData from '../test.json'; function Markers() { - const [isOpen, setIsOpen] = useState(false); - - const markerPosition = { - lat: 36.6282457054, - lng: 127.468385476, - }; - return ( <> -++ ; ++++ {data.tag ||+} +setIsOpen(false)}> +++
++ {data.img && ( // 여기서 data.img 값이 null이 아닌 경우에만 아래 div를 출력 ++++ )} ++
++{data.content}+setIsOpen(true)} /> - {isOpen && ( - - - )} + {markerData.map((item, index) => ( +-- ; ---- 나우 휘트니스 --setIsOpen(false)}> ---
------
--제가 다니는 헬스장 입니다-+ ))} > ); } + export default Markers; diff --git a/src/test.json b/src/test.json new file mode 100644 index 0000000..65115a6 --- /dev/null +++ b/src/test.json @@ -0,0 +1,90 @@ +[ + { + "tag": "쓰레기통", + "content": "안녕하세요 테스트 데이터입니다", + "writer": "anyone", + "lat": 36.628, + "lng": 127.46988, + "img": "//t1.daumcdn.net/thumb/C84x76/?fname=http://t1.daumcdn.net/cfile/2170353A51B82DE005" + }, + { + "tag": "쓰레기통", + "content": "안녕하세요 테스트 데이터입니다", + "writer": "anyone", + "lat": 36.63, + "lng": 127.4811, + "img": null + }, + { + "tag": "쓰레기통", + "content": "안녕하세요 테스트 데이터입니다", + "writer": "anyone", + "lat": 36.3, + "lng": 127.4702, + "img": "//t1.daumcdn.net/thumb/C84x76/?fname=http://t1.daumcdn.net/cfile/2170353A51B82DE005" + }, + { + "tag": "화장실", + "content": "안녕하세요 테스트 데이터입니다", + "writer": "anyone", + "lat": 36.628, + "lng": 127.475, + "img": null + }, + { + "tag": "공사중", + "content": "안녕하세요 테스트 데이터입니다", + "writer": "anyone", + "lat": 36.628, + "lng": 127.5, + "img": null + }, + { + "tag": null, + "content": "안녕하세요 테스트 데이터입니다", + "writer": "anyone", + "lat": 36.626, + "lng": 127.46988, + "img": "//t1.daumcdn.net/thumb/C84x76/?fname=http://t1.daumcdn.net/cfile/2170353A51B82DE005" + }, + { + "tag": null, + "content": "안녕하세요 테스트 데이터입니다", + "writer": "anyone", + "lat": 36.626, + "lng": 127.341, + "img": null + }, + { + "tag": null, + "content": "안녕하세요 테스트 데이터입니다", + "writer": "anyone", + "lat": 36.625, + "lng": 127.46988, + "img": null + }, + { + "tag": "화장실", + "content": "안녕하세요 테스트 데이터입니다", + "writer": "anyone", + "lat": 36.2323, + "lng": 127.341, + "img": "//t1.daumcdn.net/thumb/C84x76/?fname=http://t1.daumcdn.net/cfile/2170353A51B82DE005" + }, + { + "tag": null, + "content": "안녕하세요 테스트 데이터입니다", + "writer": "anyone", + "lat": 36.623, + "lng": 127.463, + "img": "//t1.daumcdn.net/thumb/C84x76/?fname=http://t1.daumcdn.net/cfile/2170353A51B82DE005" + }, + { + "tag": null, + "content": "안녕하세요 테스트 데이터입니다", + "writer": "anyone", + "lat": 36.6279, + "lng": 127.464, + "img": null + } +] From 80fb79899d213dabb2e66ce63ffa6653db701204 Mon Sep 17 00:00:00 2001 From: Minnnning <6alswjd6@gmail.com> Date: Wed, 16 Aug 2023 18:27:37 +0900 Subject: [PATCH 10/48] =?UTF-8?q?chore:=20=EB=A1=9C=EB=94=A9=ED=99=94?= =?UTF-8?q?=EB=A9=B4=20=EC=A4=91=EC=95=99=EC=9C=BC=EB=A1=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/loading.tsx | 11 ++++++++++- src/components/mainPage.tsx | 5 +---- src/components/marker.tsx | 2 ++ src/test.json | 33 ++++++++++++++++++++++----------- 4 files changed, 35 insertions(+), 16 deletions(-) diff --git a/src/components/loading.tsx b/src/components/loading.tsx index 4bcc09b..edb0096 100644 --- a/src/components/loading.tsx +++ b/src/components/loading.tsx @@ -1,6 +1,14 @@ function Loading() { return ( - +diff --git a/src/test.json b/src/test.json index 65115a6..09c58a8 100644 --- a/src/test.json +++ b/src/test.json @@ -5,7 +5,8 @@ "writer": "anyone", "lat": 36.628, "lng": 127.46988, - "img": "//t1.daumcdn.net/thumb/C84x76/?fname=http://t1.daumcdn.net/cfile/2170353A51B82DE005" + "img": "//t1.daumcdn.net/thumb/C84x76/?fname=http://t1.daumcdn.net/cfile/2170353A51B82DE005", + "date": "2023-08-15" }, { "tag": "쓰레기통", @@ -13,7 +14,8 @@ "writer": "anyone", "lat": 36.63, "lng": 127.4811, - "img": null + "img": null, + "date": "2023-08-15" }, { "tag": "쓰레기통", @@ -21,7 +23,8 @@ "writer": "anyone", "lat": 36.3, "lng": 127.4702, - "img": "//t1.daumcdn.net/thumb/C84x76/?fname=http://t1.daumcdn.net/cfile/2170353A51B82DE005" + "img": "//t1.daumcdn.net/thumb/C84x76/?fname=http://t1.daumcdn.net/cfile/2170353A51B82DE005", + "date": "2023-08-15" }, { "tag": "화장실", @@ -29,7 +32,8 @@ "writer": "anyone", "lat": 36.628, "lng": 127.475, - "img": null + "img": null, + "date": "2023-08-15" }, { "tag": "공사중", @@ -37,7 +41,8 @@ "writer": "anyone", "lat": 36.628, "lng": 127.5, - "img": null + "img": null, + "date": "2023-08-15" }, { "tag": null, @@ -45,7 +50,8 @@ "writer": "anyone", "lat": 36.626, "lng": 127.46988, - "img": "//t1.daumcdn.net/thumb/C84x76/?fname=http://t1.daumcdn.net/cfile/2170353A51B82DE005" + "img": "//t1.daumcdn.net/thumb/C84x76/?fname=http://t1.daumcdn.net/cfile/2170353A51B82DE005", + "date": "2023-08-15" }, { "tag": null, @@ -53,7 +59,8 @@ "writer": "anyone", "lat": 36.626, "lng": 127.341, - "img": null + "img": null, + "date": "2023-08-15" }, { "tag": null, @@ -61,7 +68,8 @@ "writer": "anyone", "lat": 36.625, "lng": 127.46988, - "img": null + "img": null, + "date": "2023-08-15" }, { "tag": "화장실", @@ -69,7 +77,8 @@ "writer": "anyone", "lat": 36.2323, "lng": 127.341, - "img": "//t1.daumcdn.net/thumb/C84x76/?fname=http://t1.daumcdn.net/cfile/2170353A51B82DE005" + "img": "//t1.daumcdn.net/thumb/C84x76/?fname=http://t1.daumcdn.net/cfile/2170353A51B82DE005", + "date": "2023-08-15" }, { "tag": null, @@ -77,7 +86,8 @@ "writer": "anyone", "lat": 36.623, "lng": 127.463, - "img": "//t1.daumcdn.net/thumb/C84x76/?fname=http://t1.daumcdn.net/cfile/2170353A51B82DE005" + "img": "//t1.daumcdn.net/thumb/C84x76/?fname=http://t1.daumcdn.net/cfile/2170353A51B82DE005", + "date": "2023-08-15" }, { "tag": null, @@ -85,6 +95,7 @@ "writer": "anyone", "lat": 36.6279, "lng": 127.464, - "img": null + "img": null, + "date": "2023-08-15" } ] From b4b3bb13975c6ed8985f36cb1b68d9fc3f7bf505 Mon Sep 17 00:00:00 2001 From: Minnnning <6alswjd6@gmail.com> Date: Wed, 16 Aug 2023 18:47:41 +0900 Subject: [PATCH 11/48] =?UTF-8?q?feat:=20=EB=A7=88=EC=BB=A4=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1=EC=9E=90=20=EB=82=A0=EC=A7=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/marker.tsx | 15 +++++++++++++-- src/components/markers.tsx | 1 + 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/components/marker.tsx b/src/components/marker.tsx index 7f45d32..495ab02 100644 --- a/src/components/marker.tsx +++ b/src/components/marker.tsx @@ -5,6 +5,7 @@ import { MapMarker, CustomOverlayMap } from 'react-kakao-maps-sdk'; function Marker(props: any) { const [isOpen, setIsOpen] = useState(false); const data = props.data; + console.log(data); const markerPosition = { lat: data.lat, @@ -56,10 +57,20 @@ function Marker(props: any) { /> )} -Loading
); } + export default Loading; diff --git a/src/components/mainPage.tsx b/src/components/mainPage.tsx index 51db958..077e0a4 100644 --- a/src/components/mainPage.tsx +++ b/src/components/mainPage.tsx @@ -4,16 +4,13 @@ import Markers from '../components/markers'; // eslint-disable-next-line @typescript-eslint/no-explicit-any function MainPage(props: any) { - console.log('main component', props.data); return ( <>
+diff --git a/src/components/markers.tsx b/src/components/markers.tsx index 502bec1..c87053d 100644 --- a/src/components/markers.tsx +++ b/src/components/markers.tsx @@ -15,6 +15,7 @@ function Markers() { lat: item.lat, lng: item.lng, writer: item.writer, + date: item.date, }} /> ))} From 1190633bf5236fc18df785a9e73b586682efd4ff Mon Sep 17 00:00:00 2001 From: Minjeong Kim <80758613+Minnnning@users.noreply.github.com> Date: Thu, 17 Aug 2023 13:18:20 +0900 Subject: [PATCH 12/48] Chore/readme modify (#1) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: 리드미 수정 * chore: 리드미 수정 --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3d4dac4..28c21f9 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,8 @@ -# 층북대 여름방학 몰입교육 2023 +# 충북대 여름방학 몰입교육 2023 + + ## mapping + 지도에 간단한 메모를 남겨서 여러 사용자들과 정보를 공유할 수 있는 웹앱입니다 +kakapmap을 이용 \ No newline at end of file From c10d56be5f517a8635f86fe2b48b9e6586cd7836 Mon Sep 17 00:00:00 2001 From: Minjeong Kim <80758613+Minnnning@users.noreply.github.com> Date: Fri, 18 Aug 2023 09:59:33 +0900 Subject: [PATCH 13/48] Feature/add memo btn (#2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: 리드미 수정 * chore: 리드미 수정 * add menu button * menu css modify * memo secoll feature * marker click event * readme modify --- README.md | 3 ++- src/components/buttons.tsx | 37 +++++++++++++++++++++++++++++++++++++ src/components/css/menu.css | 15 +++++++++++++++ src/components/mainPage.tsx | 14 ++++++++++++-- src/components/marker.tsx | 16 ++++++++++++---- src/test.json | 2 +- 6 files changed, 79 insertions(+), 8 deletions(-) create mode 100644 src/components/buttons.tsx create mode 100644 src/components/css/menu.css diff --git a/README.md b/README.md index 28c21f9..17508c2 100644 --- a/README.md +++ b/README.md @@ -5,4 +5,5 @@ ## mapping 지도에 간단한 메모를 남겨서 여러 사용자들과 정보를 공유할 수 있는 웹앱입니다 -kakapmap을 이용 \ No newline at end of file +kakapmap을 이용 +초기 설치시 `npm install --legacy-peer-deps` diff --git a/src/components/buttons.tsx b/src/components/buttons.tsx new file mode 100644 index 0000000..0d80dad --- /dev/null +++ b/src/components/buttons.tsx @@ -0,0 +1,37 @@ +import './css/menu.css'; +import { MapMarker } from 'react-kakao-maps-sdk'; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function Buttons(props: any) { + const location = props.data; + return ( +- {data.date}{data.content}++ {data.date} ++ + + + {location &&+ ); +} +export default Buttons; diff --git a/src/components/css/menu.css b/src/components/css/menu.css new file mode 100644 index 0000000..6bf4b3c --- /dev/null +++ b/src/components/css/menu.css @@ -0,0 +1,15 @@ +.customButton { + position: absolute; + z-index: 3; + right: 0.5em; + float: left; + width: 32px; + height: 32px; + border-top: none; + border-right: none; + border-bottom: 1px solid rgb(226, 226, 226); + border-left: none; + border-image: initial; + border-radius: 3px 3px 3px 3px; + /* Add other properties as needed */ +} diff --git a/src/components/mainPage.tsx b/src/components/mainPage.tsx index 077e0a4..e9b42de 100644 --- a/src/components/mainPage.tsx +++ b/src/components/mainPage.tsx @@ -1,21 +1,31 @@ import { Map, ZoomControl } from 'react-kakao-maps-sdk'; import CurrentLocation from '../components/currentLocation'; import Markers from '../components/markers'; +import Buttons from '../components/buttons'; +import { useState } from 'react'; // eslint-disable-next-line @typescript-eslint/no-explicit-any function MainPage(props: any) { + const [position, setPosition] = useState({ lat: 36, lng: 237 }); + return ( <> > ); diff --git a/src/components/marker.tsx b/src/components/marker.tsx index 495ab02..c974d30 100644 --- a/src/components/marker.tsx +++ b/src/components/marker.tsx @@ -23,15 +23,17 @@ function Marker(props: any) { style={{ backgroundColor: 'white', borderRadius: '10px', - border: '1px solid #ccc', + border: '2px solid #ccc', }} >} + {data.tag ||-} @@ -45,7 +47,6 @@ function Marker(props: any) { />
{data.img && ( // 여기서 data.img 값이 null이 아닌 경우에만 아래 div를 출력@@ -64,9 +65,16 @@ function Marker(props: any) { flexDirection: 'column', justifyContent: 'space-between', margin: '0.5em', + maxHeight: '6.3em', + width: '12em', }} > -{data.content}++ {data.content} +{data.date}diff --git a/src/test.json b/src/test.json index 09c58a8..838c15b 100644 --- a/src/test.json +++ b/src/test.json @@ -1,7 +1,7 @@ [ { "tag": "쓰레기통", - "content": "안녕하세요 테스트 데이터입니다", + "content": "곳이 이 낙원을 피다. 대중을 그것을 보는 하는 새가 위하여, 없으면 있음으로써 아니다. 하였으며, 꾸며 이상, 뜨고, 붙잡아 든 위하여서. 현저하게 쓸쓸한 피부가 얼마나 그리하였는가? 것은 용감하고 그들의 관현악이며, 행복스럽고 실로 보이는 철환하였는가? 같이, 열락의 길지 같이, 힘있다. 피에 이 그들의 않는 영락과 우리는 목숨을 찾아 그들에게 철환하였는가? 원질이 옷을 지혜는 몸이 이 없으면, 이는 너의 것이다. 목숨이 보이는 풀밭에 풀이 구하지 것이다.", "writer": "anyone", "lat": 36.628, "lng": 127.46988, From b7b30e861023ff05e494e1746e555515a862ae18 Mon Sep 17 00:00:00 2001 From: Doyoung01 <74997144+Doyoung01@users.noreply.github.com> Date: Mon, 21 Aug 2023 20:05:50 +0900 Subject: [PATCH 14/48] Make files for login (#3) --- src/components/user/Signin.tsx | 68 ++++++++++++++++++++ src/components/user/Signup.tsx | 110 +++++++++++++++++++++++++++++++++ src/components/user/user.css | 90 +++++++++++++++++++++++++++ 3 files changed, 268 insertions(+) create mode 100644 src/components/user/Signin.tsx create mode 100644 src/components/user/Signup.tsx create mode 100644 src/components/user/user.css diff --git a/src/components/user/Signin.tsx b/src/components/user/Signin.tsx new file mode 100644 index 0000000..b8eafd5 --- /dev/null +++ b/src/components/user/Signin.tsx @@ -0,0 +1,68 @@ +import './user.css'; + +// 로그인 +function Signin() { + return ( + <> +++ > + ); +} + +export default Signin; + +/* +로그인
+ + +++*/ diff --git a/src/components/user/Signup.tsx b/src/components/user/Signup.tsx new file mode 100644 index 0000000..dc2ab77 --- /dev/null +++ b/src/components/user/Signup.tsx @@ -0,0 +1,110 @@ +import './user.css'; + +// 회원가입 +function Signup() { + return ( +++ +++로그인
++ + 아이디/비밀번호 찾기 ++++ ); +} + +export default Signup; + +/* +회원가입
+ + +++*/ + +/* +회원가입
+ ++
+ + +- + + SIGN UP + +
+++*/ diff --git a/src/components/user/user.css b/src/components/user/user.css new file mode 100644 index 0000000..590b4cb --- /dev/null +++ b/src/components/user/user.css @@ -0,0 +1,90 @@ +body { + font-family: "Montserrat", sans-serif; + background: white; +} + +.container { + display: block; + max-width: 680px; + width: 80%; + margin: 120px auto; +} + +h1 { + color: #e91e63; + font-size: 48px; + letter-spacing: -3px; + text-align: center; + margin: 120px 0 80px 0; + transition: 0.2s linear; +} + +form { + width: 100%; + max-width: 680px; + margin: 40px auto 10px; +} +form .input__block { + margin: 20px auto; + display: block; + position: relative; +} +form .input__block input { + display: block; + width: 90%; + max-width: 680px; + height: 50px; + margin: 0 auto; + border-radius: 8px; + border: none; + background: rgba(15, 19, 42, 0.1); + color: rgba(15, 19, 42, 0.3); + padding: 0 0 0 15px; + font-size: 14px; + font-family: "Montserrat", sans-serif; +} + +form .input__block input.repeat__password { + opacity: 0; + display: none; + transition: 0.2s linear; +} +form .signin__btn { + background: #e91e63; + color: white; + display: block; + width: 92.5%; + max-width: 680px; + height: 50px; + border-radius: 8px; + margin: 0 auto; + border: none; + cursor: pointer; + font-size: 14px; + font-family: "Montserrat", sans-serif; + box-shadow: 0 15px 30px rgba(233, 30, 99, 0.36); + transition: 0.2s linear; +} +form .signin__btn:hover { + box-shadow: 0 0 0 rgba(233, 30, 99, 0); +} + +form .signup__btn { + background: #e91e63; + color: white; + display: block; + width: 92.5%; + max-width: 680px; + height: 50px; + border-radius: 8px; + margin: 0 auto; + border: none; + cursor: pointer; + font-size: 14px; + font-family: "Montserrat", sans-serif; + box-shadow: 0 15px 30px rgba(233, 30, 99, 0.36); + transition: 0.2s linear; + } + form .signup__btn:hover { + box-shadow: 0 0 0 rgba(233, 30, 99, 0); + } \ No newline at end of file From 0c89abcef077b206384e99f24bd1c72f23e7b344 Mon Sep 17 00:00:00 2001 From: Minjeong Kim <80758613+Minnnning@users.noreply.github.com> Date: Tue, 22 Aug 2023 02:42:18 +0900 Subject: [PATCH 15/48] Feature/memo btn feature (#4) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: 리드미 수정 * chore: 리드미 수정 * add menu button * menu css modify * memo secoll feature * marker click event * readme modify * location add button toggle * loation add marker img * react-modal 라이브러리 추가 * 모달창 추가 태그 이미지 추가 필요 * 모달창 추가 --- package-lock.json | 47 ++++++++++++ package.json | 2 + public/public_assets/addMarker.png | Bin 0 -> 114297 bytes src/components/buttons.tsx | 77 ++++++++++++++++--- src/components/css/modal.css | 45 +++++++++++ src/components/modalOpen.tsx | 118 +++++++++++++++++++++++++++++ 6 files changed, 280 insertions(+), 9 deletions(-) create mode 100644 public/public_assets/addMarker.png create mode 100644 src/components/css/modal.css create mode 100644 src/components/modalOpen.tsx diff --git a/package-lock.json b/package-lock.json index f5d8549..a6880c1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-kakao-maps-sdk": "^1.1.11", + "react-modal": "^3.16.1", "react-scripts": "5.0.1", "typescript": "^4.9.5", "web-vitals": "^2.1.4", @@ -35,6 +36,7 @@ "workbox-streams": "^6.6.0" }, "devDependencies": { + "@types/react-modal": "^3.16.0", "@typescript-eslint/eslint-plugin": "^6.3.0", "@typescript-eslint/parser": "^6.3.0", "eslint": "^8.46.0", @@ -4075,6 +4077,15 @@ "@types/react": "*" } }, + "node_modules/@types/react-modal": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/@types/react-modal/-/react-modal-3.16.0.tgz", + "integrity": "sha512-iphdqXAyUfByLbxJn5j6d+yh93dbMgshqGP0IuBeaKbZXx0aO+OXsvEkt6QctRdxjeM9/bR+Gp3h9F9djVWTQQ==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/resolve": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", @@ -8252,6 +8263,11 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/exenv": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", + "integrity": "sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==" + }, "node_modules/exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -14923,6 +14939,29 @@ "react-dom": ">=16.9.0" } }, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "node_modules/react-modal": { + "version": "3.16.1", + "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.16.1.tgz", + "integrity": "sha512-VStHgI3BVcGo7OXczvnJN7yT2TWHJPDXZWyI/a0ssFNhGZWsPmB8cF0z33ewDXq4VfYMO1vXgiv/g8Nj9NDyWg==", + "dependencies": { + "exenv": "^1.2.0", + "prop-types": "^15.7.2", + "react-lifecycles-compat": "^3.0.0", + "warning": "^4.0.3" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "react": "^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18", + "react-dom": "^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18" + } + }, "node_modules/react-refresh": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", @@ -17073,6 +17112,14 @@ "makeerror": "1.0.12" } }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/watchpack": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", diff --git a/package.json b/package.json index 9ce45b5..fb2bcaa 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-kakao-maps-sdk": "^1.1.11", + "react-modal": "^3.16.1", "react-scripts": "5.0.1", "typescript": "^4.9.5", "web-vitals": "^2.1.4", @@ -54,6 +55,7 @@ ] }, "devDependencies": { + "@types/react-modal": "^3.16.0", "@typescript-eslint/eslint-plugin": "^6.3.0", "@typescript-eslint/parser": "^6.3.0", "eslint": "^8.46.0", diff --git a/public/public_assets/addMarker.png b/public/public_assets/addMarker.png new file mode 100644 index 0000000000000000000000000000000000000000..b6cbb91cd7bf11ae57582726f1cf839a9d789e1f GIT binary patch literal 114297 zcmV)jK%u{hP)++ +++회원가입
+Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR93(4YeV1ONa40RR91-2eap0LRXl2LJ#-07*naRCodGy$N&UN|GiR0KrSt zeWawkGv875>gej~p6c4Rwl )gjC46zlll_L{I*p`+|2=egb zM-x4Nu5ldGMq;OFw^yR-Y&WyO%mNd%Kr#+ZkmI9Z#c}zz!fo-sExxy9huh>kv&C&% zcRb$L#bM)=8;7=6`kR#P=_uKxBTailQ{7pZSzu;?FVg}K1n}S1_2{ 9S3;{x@ykn}W 1f z*Ll~8Jl90|yc3o^Cn$MQd$F8vl#B8CLNRw-DZ0D!75Dv8#k`-JGduZ$IY6 S01jE`PKOg{A<{IPobjCf{&nFS_lfd>L)2kCs**NfY%?>2c4vfq8APeRX0@VF1% zA3~is0jlGc9ff`rnqhXmX?gRIK=xFh7zuFB{prw@O6z9+aL=rtH_Wp}Eqc>zM{nU> zepPR{PiysXqgpqMwPw3qZAOJUrfSsu*ad)g8-DDx0wCPTHJF}Zf+#kAfCM0Dc%K2F zU6aQI4+80e8=F$ziHq=4&zGFIoHx;Y$qVL-PJ6zbzgV1ePb>4zZYdxCRLYqj7mMx> z#X0jH(>y+}E}OHL#?;ZXz}!R+sS^x48)kW5h6Nrtu=_F^slS%fGKSx^9Cuw`f9v0V z>V4~Z-}T?Vg>SEh8-vLqqD_MLxID(Cx8h&7+|+~VsXRFn;Ou>WY)TMt=?tLxq;0-F zIx*kvpN2o*I||+&o`;*&W<1~YokG(ObAISJZA{JZ!9XjZ%&rZ0Z4lQ)E@Q)B)~fzdjQn{+R |{bg91I;kcv&@|{d z4KhsLvi&)JNxJs8!2P9O8%PcidD8rPtC=MK8}XV}95q!ZlLgKv#+3JVn=89j@A+vh z{KZMb{O!?&`Nd(?eR*&et{$8PrK5W2oiswHjY$*0!U#aTZVq!OfRO=-wY30_F`=1C z#+>+!Y0C**HZJFIkeHbc=ouFZrb`lz5>Bij4h3L)0NmxAiI$3Pyk5z-HdgZIPnMnC z)%oa$ 4m#kaSfagHY@(|v&KsW>@!@%|S$eCIJ$Bl67Z@ws_< zcohEZ$4}MY?w`cJ{&ecUJ!!bhwRXOE9^~CRUj5^gj5Yu+W;3I)5}*u^avGo+ursD< z5Hf>?09XLDf@9K&M_LL1WIF)hSjYpi$Wj~;_I%UO!JcU`J=Wv{zVuRi*otms<~YqG z9|cSKpt({pCz~toPn)a7e|@%D{{Qg8;UAwam=8;VIsM}wP3yn@*BOu&bI*S6#R4;s zd@p7nR4GP~S-3?De5v-mE4}Zko?Gl96Jb3u0GLQKX?|oo4$s?e*KuU&*Fe`Qe_P=C zwvE-#0BKrsL3cj`i=G~urNaxeeQ@mma_=Pi-QH>Ro1KH!>)q3Eb*~zfYC+CzIR(du zmpR0|We4*ru!x2@o(Yi!DAU^vz)X)afiC-v9@6IOO?Ek>0(rpTnBGBfOgeG^fQA=3 z22VJvB}GW-eP$X6>FVa5pgjb-j>FL8B24kX+l+-ch!+cPw6T QG-@W8;boUIeKgPhqD fn(aa|eveU;ZEf3 zI7Vrd3rs6&Acp$FJSJXy#tn0(fa4+<%mGm^mx9*XTnLY}`SJCW;=jDwF8|+8R?Q#q zvf<~SFBq)8XZ%SuBDI=@nFWSf;DG_^VXDmXz6=W_gZP)B>^*6D+cv&!{`X Z*fi$OZ*iAA(7sLA;VFC$XP>e&*#6ccj>zr{QD1FNgJk$B8ZI;VX zuwDt8+bhoAvt{p(TWj9`*j{!2pUoxj&&%`XX#YP ?vr3nF!Nh z0lg4RMiP7BnGCmXE|ZkAoAb?%rd6(+X*Im`ZMO69nrFGRz*zQwkN}$C`SWK}I$bhL zJD<#}KYcd8{csrl?!(^s-yT){7iX=)Le2N`bxefziGndz1NfQm1_Cq_IMYUICl~-o z)t;wB*hvnMuTu5cGX>B>nu2CM;xE9k?vf (wLJS z!L1!)5j)K25E^{o5c8z5REXE~S4v@RYq|LT*?Q^!{boD=f4yAG{p+)*W@qM&PRu>q zJqQcTK=y-ZrkRj43tZO%_M&>-^0RVxXMrA&bFGRWLwk>Hhe-iwI&p73@S^*F!gq}I zoXh9F+4#$U2H(El3;yA!1Mi @mdRV4ViSZXS{^L+ABGh0aN` z AVx|8>v&`cLm$|M-`W z7r*~pEqzsO6&LGaAs^(h$Z`(iz_sgm0Ht0CaEk8-VxuJpoa302pb4cFye8i)K|cRr zL(b!%DaAWYc$=grS*byUA$fLs4vR@~LEloL0ArRR7yfD>EGI)IK_=9NZyW-VhmZ NTUgVM=An+HfBfUhfU98i6$02;CpJQsf0GmGy}%!|M5`oI0t=kTB3 z?FWDN@yK~zZHJYXgSYQo{aT63InF47+0WSEah8=a2$*%Tx=7G9)_O(?!ETJD=SXD( z(}-=eEhTZ7$KqnrGL1Z (>^6JB zkcJ*Hz+P-pyRkzs-n%C^o5nZ;=@ HTQOZvnTJkHCegGEobR%dAqmi!}jCQ4&!ql zc{j0jR^D-JFoA&Z5X}HyY7BieWUW61dmbc>ZQBux(D^OLFv8n_R{qp zXX%IKW$7jrzYAO5w2qsWAJl=k;T)8GeKTNJ{Ucb0a8??9b*?fCEs89Dx zA0-WlOb{DsIY)rU-1E!P+-w|+vvD1^(Uu&(H2@7EI8C_t@1M-tZq =j)dc0eR4A5XAH@6sX9=5{3J8Jmz?a$3O_$+zJZx!e8&SAxk^8eyD%}-x#nlsq1 zJ &$4N{17KS=J=pFst@XrX-HWb>P4Ga9z3Qk zc-*mv=2~6#D3{tqk2}A#Y3C@RMg#Sx^&YF9-O3KKE6eiTgx)aBUcIzAF7wkTgrT-6 z?b{ooD63o6)}&;fmQg#h4|QzIA;R+0w(9gbwuvo6n(j8>`xjBtKW!)N9@(@nbf>Ys z!6~iN*4^1#UYgR~z8$J@V%lfA`Hohea$dIgRb{g_y^406{LANUwsd*{;yJ?42T0&v z`zx*-=*BkQNoU_CvF&%AIBC)El#%>)>fm9v9>(=t;kaaZkqXyXUSK73pGTTT`m4`F z(z4(7>Hd~Y+CS5TOho%Yrw?bcZV>G~*T_G6E)Hi65Yk03sIT|eIeY$fvFSSCIcs(A z%192F-!FX jt;}j^#2b<>cnrh=rx3;i*avo%J_I=Pv zA19p+*);O8=_*HOTvIyoz?VG$j4|Cdz