From fb01c54696235e356e61ba11bf65df0ba1b39bbb Mon Sep 17 00:00:00 2001 From: RyuDongHo Date: Mon, 4 Nov 2024 16:11:20 +0900 Subject: [PATCH 01/15] =?UTF-8?q?mission:=20chapter04=20=EC=B6=94=EA=B0=80?= =?UTF-8?q?=20=EC=9E=91=EC=97=85=20chapter04=20=EB=AF=B8=EC=85=98=ED=95=98?= =?UTF-8?q?=EB=A9=B4=EC=84=9C=20=EA=B0=9C=EC=9D=B8=EC=A0=81=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EC=B6=94=EA=B0=80=ED=96=88=EB=8D=98=20=EB=AC=B4?= =?UTF-8?q?=ED=95=9C=EC=8A=A4=ED=81=AC=EB=A1=A4=20=EA=B8=B0=EB=8A=A5?= =?UTF-8?q?=EC=97=90=20throttling=EC=9C=BC=EB=A1=9C=20=EB=A0=8C=EB=8D=94?= =?UTF-8?q?=EB=A7=81=20=EC=B5=9C=EC=A0=81=ED=99=94=20=EB=A5=BC=20=EC=8B=9C?= =?UTF-8?q?=EB=8F=84=ED=96=88=EC=8A=B5=EB=8B=88=EB=8B=A4.=20=EC=95=84?= =?UTF-8?q?=EC=A7=81=20=EC=B6=94=EA=B0=80=20=EC=88=98=EC=A0=95=EC=9D=B4=20?= =?UTF-8?q?=ED=95=84=EC=9A=94=ED=95=A9=EB=8B=88=EB=8B=A4.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mission/chapter04/mission/package-lock.json | 16 +++++++ mission/chapter04/mission/package.json | 1 + .../ui/MovieList/api/useMovieList.js | 15 +++---- .../MovieListPage/ui/MovieList/index.jsx | 42 ++++++++----------- .../ui/MovieList/ui/Movie/index.jsx | 4 +- .../mission/src/3_Shared/lib/useThrottle.js | 15 +++++++ 6 files changed, 60 insertions(+), 33 deletions(-) create mode 100644 mission/chapter04/mission/src/3_Shared/lib/useThrottle.js diff --git a/mission/chapter04/mission/package-lock.json b/mission/chapter04/mission/package-lock.json index 59bec67..d4929b1 100644 --- a/mission/chapter04/mission/package-lock.json +++ b/mission/chapter04/mission/package-lock.json @@ -11,6 +11,7 @@ "react": "^18.3.1", "react-dom": "^18.3.1", "react-icons": "^5.3.0", + "react-intersection-observer": "^9.13.1", "react-router-dom": "^6.26.2", "styled-components": "^6.1.13", "styled-reset": "^4.5.2" @@ -3699,6 +3700,21 @@ "react": "*" } }, + "node_modules/react-intersection-observer": { + "version": "9.13.1", + "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.13.1.tgz", + "integrity": "sha512-tSzDaTy0qwNPLJHg8XZhlyHTgGW6drFKTtvjdL+p6um12rcnp8Z5XstE+QNBJ7c64n5o0Lj4ilUleA41bmDoMw==", + "license": "MIT", + "peerDependencies": { + "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", diff --git a/mission/chapter04/mission/package.json b/mission/chapter04/mission/package.json index 6eaa146..a673e24 100644 --- a/mission/chapter04/mission/package.json +++ b/mission/chapter04/mission/package.json @@ -13,6 +13,7 @@ "react": "^18.3.1", "react-dom": "^18.3.1", "react-icons": "^5.3.0", + "react-intersection-observer": "^9.13.1", "react-router-dom": "^6.26.2", "styled-components": "^6.1.13", "styled-reset": "^4.5.2" diff --git a/mission/chapter04/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js b/mission/chapter04/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js index ecf93f4..80f3f04 100644 --- a/mission/chapter04/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js +++ b/mission/chapter04/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js @@ -13,15 +13,16 @@ const useMovieList = (category, page) => { "GET", `${BASE_URL}/movie/${category}?language=ko-KR&page=${page}` ); - result.results.forEach(e => { + result.results.forEach((e) => { e.poster_path = `${BASE_IMG_URL}${BASE_IMG_SIZE}${e.poster_path}`; }); - - setMovieList((prevList) => [ - ...prevList, - ...result.results - ]); - + // if(page % 5 == 0){ + // window.scrollTo({ top: 0}); + // setMovieList(result.results); + // } else{ + // setMovieList((prevList) => [...prevList, ...result.results]); + // } + setMovieList((prevList) => [...prevList, ...result.results]); setLoading(false); }; diff --git a/mission/chapter04/mission/src/1_Page/MovieListPage/ui/MovieList/index.jsx b/mission/chapter04/mission/src/1_Page/MovieListPage/ui/MovieList/index.jsx index a0c10a4..3a2db6f 100644 --- a/mission/chapter04/mission/src/1_Page/MovieListPage/ui/MovieList/index.jsx +++ b/mission/chapter04/mission/src/1_Page/MovieListPage/ui/MovieList/index.jsx @@ -2,46 +2,40 @@ import useMovieList from "./api/useMovieList"; import STYLE from "./style"; import React from "react"; import Movie from "./ui/Movie"; +import useThrottle from "../../../../3_Shared/lib/useThrottle"; import { useParams } from "react-router-dom"; -const MovieList = React.memo(() => { +const MovieList = () => { const { category } = useParams(); const [page, setPage] = React.useState(1); const [movieList, loading] = useMovieList(category, page); const observer = React.useRef(); - // const lastMovieElementRef = React.useCallback( - // (node) => { - // if (loading) return; - // if (observer.current) observer.current.disconnect(); - // observer.current = new IntersectionObserver((entries) => { - // if (entries[0].isIntersecting) { - // setPage((prevPage) => prevPage + 1); // 페이지 증가 - // } - // }); - // if (node) observer.current.observe(node); - // }, - // [loading] - // ); - const lastMovieElementRef = (node) => { + const observerFunc = useThrottle((node) => { if (loading) return; + console.log(node); + if (observer.current) observer.current.disconnect(); observer.current = new IntersectionObserver((entries) => { - if (entries[0].isIntersecting) { - setPage((prevPage) => prevPage + 1); // 페이지 증가 + if (entries[0].isIntersecting ) { + setPage((prevPage) => prevPage + 1) + // 페이지 증가 } }); if (node) observer.current.observe(node); - } - if (loading) return
still loading...
; + }, 1000) + + + if (loading) return
still loading...
; // API loading + return ( {movieList.map((elem, index) => { - // 마지막 아이템에 ref 추가하여 관찰 - console.log(index + "렌더링"); return ( @@ -50,7 +44,7 @@ const MovieList = React.memo(() => { {loading &&
Loading more movies...
}
); -}); -MovieList.displayName= "MovieList" +}; +MovieList.displayName = "MovieList"; export default MovieList; diff --git a/mission/chapter04/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/index.jsx b/mission/chapter04/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/index.jsx index 62e5948..8c00071 100644 --- a/mission/chapter04/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/index.jsx +++ b/mission/chapter04/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/index.jsx @@ -2,11 +2,11 @@ import STYLE from "./style"; import { useNavigate } from "react-router-dom"; import { handleNavigation } from "../../../../../../3_Shared/model/handleNavigate"; const Movie = (props) => { - const { lastMovieElementRef, data} = props; + const { observerFunc, data} = props; const { poster_path, title, release_date, id } = data; const navigate = useNavigate(); return ( - {handleNavigation(navigate, `/movie-detail/${id}`);}}> + {handleNavigation(navigate, `/movie-detail/${id}`);}}> diff --git a/mission/chapter04/mission/src/3_Shared/lib/useThrottle.js b/mission/chapter04/mission/src/3_Shared/lib/useThrottle.js new file mode 100644 index 0000000..ea5203b --- /dev/null +++ b/mission/chapter04/mission/src/3_Shared/lib/useThrottle.js @@ -0,0 +1,15 @@ +import React from "react"; +const useThrottle = (callback, delay = 1000) => { + let lastCallTime = React.useRef(Date.now()); + + return () => { + // const timeElapsed = Date.now() - lastCallTime.current; + // if(timeElapsed >= delay) { + // callback(); + // lastCallTime.current = Date.now(); + // } + callback(); + } +}; + +export default useThrottle; From 4c98bbfbfd4b86acf14c25487c932231fac72749 Mon Sep 17 00:00:00 2001 From: RyuDongHo Date: Mon, 4 Nov 2024 18:01:03 +0900 Subject: [PATCH 02/15] =?UTF-8?q?refactor:=20mission04=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EB=B3=B4=EC=99=84=20=EB=AC=B4=ED=95=9C=20=EC=8A=A4?= =?UTF-8?q?=ED=81=AC=EB=A1=A4=20=EA=B8=B0=EB=8A=A5=EC=9D=84=20react-inters?= =?UTF-8?q?ection-observer=20=ED=8C=A8=ED=82=A4=EC=A7=80=EB=A5=BC=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=ED=95=98=EC=97=AC=20=EA=B5=AC=ED=98=84?= =?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95=ED=96=88?= =?UTF-8?q?=EC=8A=B5=EB=8B=88=EB=8B=A4.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MovieDetailPage/api/useMovieProvider.js | 2 +- .../ui/MovieList/api/useMovieList.js | 1 + .../MovieListPage/ui/MovieList/index.jsx | 29 +++++++------------ .../ui/MovieList/ui/Movie/index.jsx | 4 +-- .../mission/src/3_Shared/lib/useThrottle.js | 11 ++++--- 5 files changed, 19 insertions(+), 28 deletions(-) diff --git a/mission/chapter04/mission/src/1_Page/MovieDetailPage/api/useMovieProvider.js b/mission/chapter04/mission/src/1_Page/MovieDetailPage/api/useMovieProvider.js index 5c23ae0..ef4e0b9 100644 --- a/mission/chapter04/mission/src/1_Page/MovieDetailPage/api/useMovieProvider.js +++ b/mission/chapter04/mission/src/1_Page/MovieDetailPage/api/useMovieProvider.js @@ -28,4 +28,4 @@ const useMovieProvider = (id) => { }, [id]); return [movieProvider, loading]; }; -export default useMovieProvider; +export default useMovieProvider; diff --git a/mission/chapter04/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js b/mission/chapter04/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js index 80f3f04..3bcd724 100644 --- a/mission/chapter04/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js +++ b/mission/chapter04/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js @@ -24,6 +24,7 @@ const useMovieList = (category, page) => { // } setMovieList((prevList) => [...prevList, ...result.results]); setLoading(false); + console.log(page, "page") }; fetchMovie(); diff --git a/mission/chapter04/mission/src/1_Page/MovieListPage/ui/MovieList/index.jsx b/mission/chapter04/mission/src/1_Page/MovieListPage/ui/MovieList/index.jsx index 3a2db6f..8707a04 100644 --- a/mission/chapter04/mission/src/1_Page/MovieListPage/ui/MovieList/index.jsx +++ b/mission/chapter04/mission/src/1_Page/MovieListPage/ui/MovieList/index.jsx @@ -2,30 +2,23 @@ import useMovieList from "./api/useMovieList"; import STYLE from "./style"; import React from "react"; import Movie from "./ui/Movie"; -import useThrottle from "../../../../3_Shared/lib/useThrottle"; import { useParams } from "react-router-dom"; +import { useInView } from "react-intersection-observer"; const MovieList = () => { const { category } = useParams(); const [page, setPage] = React.useState(1); const [movieList, loading] = useMovieList(category, page); - const observer = React.useRef(); - const observerFunc = useThrottle((node) => { - if (loading) return; - console.log(node); - - if (observer.current) observer.current.disconnect(); - observer.current = new IntersectionObserver((entries) => { - if (entries[0].isIntersecting ) { - setPage((prevPage) => prevPage + 1) - // 페이지 증가 - } - }); - if (node) observer.current.observe(node); + const { ref, inView } = useInView({ + threshold: 0, + }); - }, 1000) + React.useEffect(() =>{ + if(inView && !loading){ + setPage((prev) => prev+1); + } + }, [inView, loading]) - if (loading) return
still loading...
; // API loading return ( @@ -33,9 +26,7 @@ const MovieList = () => { {movieList.map((elem, index) => { return ( diff --git a/mission/chapter04/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/index.jsx b/mission/chapter04/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/index.jsx index 8c00071..3a3b42e 100644 --- a/mission/chapter04/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/index.jsx +++ b/mission/chapter04/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/index.jsx @@ -2,11 +2,11 @@ import STYLE from "./style"; import { useNavigate } from "react-router-dom"; import { handleNavigation } from "../../../../../../3_Shared/model/handleNavigate"; const Movie = (props) => { - const { observerFunc, data} = props; + const { observe, data} = props; const { poster_path, title, release_date, id } = data; const navigate = useNavigate(); return ( - {handleNavigation(navigate, `/movie-detail/${id}`);}}> + {handleNavigation(navigate, `/movie-detail/${id}`);}}> diff --git a/mission/chapter04/mission/src/3_Shared/lib/useThrottle.js b/mission/chapter04/mission/src/3_Shared/lib/useThrottle.js index ea5203b..055bcd3 100644 --- a/mission/chapter04/mission/src/3_Shared/lib/useThrottle.js +++ b/mission/chapter04/mission/src/3_Shared/lib/useThrottle.js @@ -3,12 +3,11 @@ const useThrottle = (callback, delay = 1000) => { let lastCallTime = React.useRef(Date.now()); return () => { - // const timeElapsed = Date.now() - lastCallTime.current; - // if(timeElapsed >= delay) { - // callback(); - // lastCallTime.current = Date.now(); - // } - callback(); + const timeElapsed = Date.now() - lastCallTime.current; + if(timeElapsed >= delay) { + callback(); + lastCallTime.current = Date.now(); + } } }; From 698fcf0ecea47d3c9fb818bca080026878b6c5a7 Mon Sep 17 00:00:00 2001 From: RyuDongHo Date: Tue, 5 Nov 2024 09:10:48 +0900 Subject: [PATCH 03/15] =?UTF-8?q?mission:=20feat=20form=20form=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EC=82=AC=EC=9A=A9=ED=95=A0=20=EC=9A=94=EC=86=8C?= =?UTF-8?q?=EB=93=A4=EC=9D=84=20=EB=A7=8C=EB=93=A4=EC=97=88=EC=8A=B5?= =?UTF-8?q?=EB=8B=88=EB=8B=A4=20useform=EB=B0=A9=EC=8B=9D=20=EC=99=B8?= =?UTF-8?q?=EC=97=90=EB=8F=84=20=ED=95=98=EB=93=9C=EC=BD=94=EB=94=A9?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EB=A8=BC=EC=A0=80=20=EA=B5=AC=ED=98=84?= =?UTF-8?q?=ED=96=88=EC=8A=B5=EB=8B=88=EB=8B=A4.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mission/chapter05/mission/.gitignore | 25 + mission/chapter05/mission/README.md | 8 + mission/chapter05/mission/eslint.config.js | 39 + mission/chapter05/mission/index.html | 13 + mission/chapter05/mission/package-lock.json | 4642 +++++++++++++++++ mission/chapter05/mission/package.json | 35 + .../mission/src/0_App/globalStyle.js | 64 + mission/chapter05/mission/src/0_App/index.jsx | 20 + mission/chapter05/mission/src/0_App/theme.js | 22 + .../src/0_App/ui/Navbar/assets/logo.svg | 18 + .../mission/src/0_App/ui/Navbar/index.jsx | 33 + .../mission/src/0_App/ui/Navbar/style.js | 54 + .../categoryCardImg/background_image_1.png | Bin 0 -> 112808 bytes .../categoryCardImg/background_image_2.png | Bin 0 -> 89042 bytes .../categoryCardImg/background_image_3.png | Bin 0 -> 73434 bytes .../categoryCardImg/background_image_4.png | Bin 0 -> 110061 bytes .../assets/categoryCardImg/index.js | 13 + .../mission/src/1_Page/CategoryPage/index.jsx | 17 + .../mission/src/1_Page/CategoryPage/style.js | 26 + .../mission/src/1_Page/LoginPage/index.jsx | 21 + .../mission/src/1_Page/LoginPage/style.js | 25 + .../MovieDetailPage/api/useMovieDetail.js | 27 + .../MovieDetailPage/api/useMovieProvider.js | 31 + .../src/1_Page/MovieDetailPage/index.jsx | 48 + .../src/1_Page/MovieDetailPage/style.js | 49 + .../src/1_Page/MovieListPage/index.jsx | 11 + .../ui/MovieList/api/useMovieList.js | 35 + .../MovieListPage/ui/MovieList/index.jsx | 41 + .../MovieListPage/ui/MovieList/style.js | 44 + .../ui/MovieList/ui/Movie/index.jsx | 20 + .../ui/MovieList/ui/Movie/style.js | 44 + .../mission/src/1_Page/SearchPage/index.jsx | 9 + .../mission/src/1_Page/SignUpPage/index.jsx | 9 + .../chapter05/mission/src/1_Page/index.jsx | 29 + mission/chapter05/mission/src/1_Page/style.js | 10 + .../src/1_Page/ui/Sidebar/assets/shorts.svg | 1 + .../mission/src/1_Page/ui/Sidebar/index.jsx | 29 + .../mission/src/1_Page/ui/Sidebar/style.js | 22 + .../src/2_Widget/Input/EmailInput/index.jsx | 40 + .../src/2_Widget/Input/EmailInput/style.js | 25 + .../src/2_Widget/Input/IdInput/index.jsx | 42 + .../src/2_Widget/Input/IdInput/style.js | 25 + .../src/2_Widget/Input/PwInput/index.jsx | 42 + .../src/2_Widget/Input/PwInput/style.js | 25 + .../mission/src/2_Widget/Input/const/regex.js | 7 + .../mission/src/2_Widget/Input/index.jsx | 4 + .../mission/src/3_Shared/config/apiConfig.js | 37 + .../mission/src/3_Shared/lib/useThrottle.js | 14 + .../src/3_Shared/model/handleNavigate.js | 3 + mission/chapter05/mission/src/index.jsx | 9 + mission/chapter05/mission/vite.config.js | 7 + 51 files changed, 5814 insertions(+) create mode 100644 mission/chapter05/mission/.gitignore create mode 100644 mission/chapter05/mission/README.md create mode 100644 mission/chapter05/mission/eslint.config.js create mode 100644 mission/chapter05/mission/index.html create mode 100644 mission/chapter05/mission/package-lock.json create mode 100644 mission/chapter05/mission/package.json create mode 100644 mission/chapter05/mission/src/0_App/globalStyle.js create mode 100644 mission/chapter05/mission/src/0_App/index.jsx create mode 100644 mission/chapter05/mission/src/0_App/theme.js create mode 100644 mission/chapter05/mission/src/0_App/ui/Navbar/assets/logo.svg create mode 100644 mission/chapter05/mission/src/0_App/ui/Navbar/index.jsx create mode 100644 mission/chapter05/mission/src/0_App/ui/Navbar/style.js create mode 100644 mission/chapter05/mission/src/1_Page/CategoryPage/assets/categoryCardImg/background_image_1.png create mode 100644 mission/chapter05/mission/src/1_Page/CategoryPage/assets/categoryCardImg/background_image_2.png create mode 100644 mission/chapter05/mission/src/1_Page/CategoryPage/assets/categoryCardImg/background_image_3.png create mode 100644 mission/chapter05/mission/src/1_Page/CategoryPage/assets/categoryCardImg/background_image_4.png create mode 100644 mission/chapter05/mission/src/1_Page/CategoryPage/assets/categoryCardImg/index.js create mode 100644 mission/chapter05/mission/src/1_Page/CategoryPage/index.jsx create mode 100644 mission/chapter05/mission/src/1_Page/CategoryPage/style.js create mode 100644 mission/chapter05/mission/src/1_Page/LoginPage/index.jsx create mode 100644 mission/chapter05/mission/src/1_Page/LoginPage/style.js create mode 100644 mission/chapter05/mission/src/1_Page/MovieDetailPage/api/useMovieDetail.js create mode 100644 mission/chapter05/mission/src/1_Page/MovieDetailPage/api/useMovieProvider.js create mode 100644 mission/chapter05/mission/src/1_Page/MovieDetailPage/index.jsx create mode 100644 mission/chapter05/mission/src/1_Page/MovieDetailPage/style.js create mode 100644 mission/chapter05/mission/src/1_Page/MovieListPage/index.jsx create mode 100644 mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js create mode 100644 mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/index.jsx create mode 100644 mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/style.js create mode 100644 mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/index.jsx create mode 100644 mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/style.js create mode 100644 mission/chapter05/mission/src/1_Page/SearchPage/index.jsx create mode 100644 mission/chapter05/mission/src/1_Page/SignUpPage/index.jsx create mode 100644 mission/chapter05/mission/src/1_Page/index.jsx create mode 100644 mission/chapter05/mission/src/1_Page/style.js create mode 100644 mission/chapter05/mission/src/1_Page/ui/Sidebar/assets/shorts.svg create mode 100644 mission/chapter05/mission/src/1_Page/ui/Sidebar/index.jsx create mode 100644 mission/chapter05/mission/src/1_Page/ui/Sidebar/style.js create mode 100644 mission/chapter05/mission/src/2_Widget/Input/EmailInput/index.jsx create mode 100644 mission/chapter05/mission/src/2_Widget/Input/EmailInput/style.js create mode 100644 mission/chapter05/mission/src/2_Widget/Input/IdInput/index.jsx create mode 100644 mission/chapter05/mission/src/2_Widget/Input/IdInput/style.js create mode 100644 mission/chapter05/mission/src/2_Widget/Input/PwInput/index.jsx create mode 100644 mission/chapter05/mission/src/2_Widget/Input/PwInput/style.js create mode 100644 mission/chapter05/mission/src/2_Widget/Input/const/regex.js create mode 100644 mission/chapter05/mission/src/2_Widget/Input/index.jsx create mode 100644 mission/chapter05/mission/src/3_Shared/config/apiConfig.js create mode 100644 mission/chapter05/mission/src/3_Shared/lib/useThrottle.js create mode 100644 mission/chapter05/mission/src/3_Shared/model/handleNavigate.js create mode 100644 mission/chapter05/mission/src/index.jsx create mode 100644 mission/chapter05/mission/vite.config.js diff --git a/mission/chapter05/mission/.gitignore b/mission/chapter05/mission/.gitignore new file mode 100644 index 0000000..f8155a1 --- /dev/null +++ b/mission/chapter05/mission/.gitignore @@ -0,0 +1,25 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? +*.env \ No newline at end of file diff --git a/mission/chapter05/mission/README.md b/mission/chapter05/mission/README.md new file mode 100644 index 0000000..f768e33 --- /dev/null +++ b/mission/chapter05/mission/README.md @@ -0,0 +1,8 @@ +# React + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh diff --git a/mission/chapter05/mission/eslint.config.js b/mission/chapter05/mission/eslint.config.js new file mode 100644 index 0000000..be0ee6d --- /dev/null +++ b/mission/chapter05/mission/eslint.config.js @@ -0,0 +1,39 @@ +import js from '@eslint/js' +import globals from 'globals' +import react from 'eslint-plugin-react' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' + +export default [ + { ignores: ['dist'] }, + { + files: ['**/*.{js,jsx}'], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + parserOptions: { + ecmaVersion: 'latest', + ecmaFeatures: { jsx: true }, + sourceType: 'module', + }, + }, + settings: { react: { version: '18.3' } }, + plugins: { + react, + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...js.configs.recommended.rules, + ...react.configs.recommended.rules, + ...react.configs['jsx-runtime'].rules, + ...reactHooks.configs.recommended.rules, + 'react/jsx-no-target-blank': 'off', + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + "react/prop-types": "off" + }, + }, +] diff --git a/mission/chapter05/mission/index.html b/mission/chapter05/mission/index.html new file mode 100644 index 0000000..18ae92e --- /dev/null +++ b/mission/chapter05/mission/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + React + + +
+ + + diff --git a/mission/chapter05/mission/package-lock.json b/mission/chapter05/mission/package-lock.json new file mode 100644 index 0000000..5add22f --- /dev/null +++ b/mission/chapter05/mission/package-lock.json @@ -0,0 +1,4642 @@ +{ + "name": "mission", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "mission", + "version": "0.0.0", + "dependencies": { + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-hook-form": "^7.53.1", + "react-icons": "^5.3.0", + "react-intersection-observer": "^9.13.1", + "react-router-dom": "^6.26.2", + "styled-components": "^6.1.13", + "styled-reset": "^4.5.2", + "yup": "^1.4.0" + }, + "devDependencies": { + "@eslint/js": "^9.11.1", + "@types/react": "^18.3.10", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.2", + "eslint": "^9.11.1", + "eslint-plugin-react": "^7.37.0", + "eslint-plugin-react-hooks": "^5.1.0-rc.0", + "eslint-plugin-react-refresh": "^0.4.12", + "globals": "^15.9.0", + "vite": "^5.4.8" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz", + "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.25.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.7.tgz", + "integrity": "sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.7.tgz", + "integrity": "sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helpers": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/template": "^7.25.7", + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz", + "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz", + "integrity": "sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.7", + "@babel/helper-validator-option": "^7.25.7", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz", + "integrity": "sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz", + "integrity": "sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.7", + "@babel/helper-simple-access": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", + "@babel/traverse": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz", + "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", + "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", + "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", + "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz", + "integrity": "sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.7.tgz", + "integrity": "sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.7", + "@babel/types": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz", + "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.7.tgz", + "integrity": "sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.7.tgz", + "integrity": "sha512-JD9MUnLbPL0WdVK8AWC7F7tTG2OS6u/AKKnsK+NdRhUiVdnzyR1S3kKQCaRLOiaULvUiqK6Z4JQE635VgtCFeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.7.tgz", + "integrity": "sha512-S/JXG/KrbIY06iyJPKfxr0qRxnhNOdkNXYBl/rmwgDd72cQLH9tEGkDm/yJPGvcSIUoikzfjMios9i+xT/uv9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz", + "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/types": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz", + "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/template": "^7.25.7", + "@babel/types": "^7.25.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.7.tgz", + "integrity": "sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", + "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.8.1" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==", + "license": "MIT" + }, + "node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==", + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", + "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", + "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.6.0.tgz", + "integrity": "sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.12.0.tgz", + "integrity": "sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz", + "integrity": "sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.0.tgz", + "integrity": "sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.5", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.5.tgz", + "integrity": "sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.0", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@remix-run/router": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.19.2.tgz", + "integrity": "sha512-baiMx18+IMuD1yyvOGaHM9QrVUPGGG0jC+z+IPHnRJWUAUvaKuWKyE8gjDj2rzv3sz9zOGoRSPgeBVHRhZnBlA==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", + "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", + "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", + "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", + "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", + "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", + "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", + "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", + "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", + "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", + "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", + "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", + "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", + "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", + "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", + "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", + "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.13", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.11", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.11.tgz", + "integrity": "sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/stylis": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.5.tgz", + "integrity": "sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==", + "license": "MIT" + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.2.tgz", + "integrity": "sha512-hieu+o05v4glEBucTcKMK3dlES0OeJlD9YVOAPraVMOInBCwzumaIFiUjr4bHK7NPgnAHgiskUoceKercrN8vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.2", + "@babel/plugin-transform-react-jsx-self": "^7.24.7", + "@babel/plugin-transform-react-jsx-source": "^7.24.7", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0" + } + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/browserslist": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001667", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", + "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/css-to-react-native": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", + "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "license": "MIT", + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.32", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.32.tgz", + "integrity": "sha512-M+7ph0VGBQqqpTT2YrabjNKSQ2fEl9PVx6AK3N558gDH9NO8O6XN9SXXFWRo9u9PbEg/bWq+tjXQr+eXmxubCw==", + "dev": true, + "license": "ISC" + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", + "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.12.0.tgz", + "integrity": "sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.11.0", + "@eslint/config-array": "^0.18.0", + "@eslint/core": "^0.6.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.12.0", + "@eslint/plugin-kit": "^0.2.0", + "@humanfs/node": "^0.16.5", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.3.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.1.0", + "eslint-visitor-keys": "^4.1.0", + "espree": "^10.2.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.1.tgz", + "integrity": "sha512-xwTnwDqzbDRA8uJ7BMxPs/EXRB3i8ZfnOIp8BsxEQkT0nHPp+WWceqGgo6rKb9ctNi8GJLDT4Go5HAWELa/WMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.19", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.1.0-rc-fb9a90fa48-20240614", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0-rc-fb9a90fa48-20240614.tgz", + "integrity": "sha512-xsiRwaDNF5wWNC4ZHLut+x/YcAxksUd9Rizt7LaEn3bV8VyYRpXnRJQlLOfYaVy9esk4DFP4zPPnoNVjq5Gc0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.12.tgz", + "integrity": "sha512-9neVjoGv20FwYtCP6CB1dzR1vr57ZDNOXst21wd2xJ/cTlM2xLq0GWVlSNTdMn/4BtP6cHYBMCSp1wFBJ9jBsg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-scope": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.1.0.tgz", + "integrity": "sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz", + "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.2.0.tgz", + "integrity": "sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.12.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "15.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.10.0.tgz", + "integrity": "sha512-tqFIbz83w4Y5TCbtgjZjApohbuh7K9BxGYFm7ifwDR240tvdb7P9x+/9VvUKlmkPoiknoJtanI8UOrqxS3a7lQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true, + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "license": "ISC" + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/property-expr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz", + "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==", + "license": "MIT" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-hook-form": { + "version": "7.53.1", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.53.1.tgz", + "integrity": "sha512-6aiQeBda4zjcuaugWvim9WsGqisoUk+etmFEsSUMm451/Ic8L/UAb7sRtMj3V+Hdzm6mMjU1VhiSzYUZeBm0Vg==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18 || ^19" + } + }, + "node_modules/react-icons": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.3.0.tgz", + "integrity": "sha512-DnUk8aFbTyQPSkCfF8dbX6kQjXA9DktMeJqfjrg6cK9vwQVMxmcA3BfP4QoiztVmEHtwlTgLFsPuH2NskKT6eg==", + "license": "MIT", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-intersection-observer": { + "version": "9.13.1", + "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.13.1.tgz", + "integrity": "sha512-tSzDaTy0qwNPLJHg8XZhlyHTgGW6drFKTtvjdL+p6um12rcnp8Z5XstE+QNBJ7c64n5o0Lj4ilUleA41bmDoMw==", + "license": "MIT", + "peerDependencies": { + "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.26.2.tgz", + "integrity": "sha512-tvN1iuT03kHgOFnLPfLJ8V95eijteveqdOSk+srqfePtQvqCExB8eHOYnlilbOcyJyKnYkr1vJvf7YqotAJu1A==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.19.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.26.2.tgz", + "integrity": "sha512-z7YkaEW0Dy35T3/QKPYB1LjMK2R1fxnHO8kWpUMTBdfVzZrWOiY9a7CtN8HqdWtDUWd5FY6Dl8HFsqVwH4uOtQ==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.19.2", + "react-router": "6.26.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/rollup": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", + "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.24.0", + "@rollup/rollup-android-arm64": "4.24.0", + "@rollup/rollup-darwin-arm64": "4.24.0", + "@rollup/rollup-darwin-x64": "4.24.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", + "@rollup/rollup-linux-arm-musleabihf": "4.24.0", + "@rollup/rollup-linux-arm64-gnu": "4.24.0", + "@rollup/rollup-linux-arm64-musl": "4.24.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", + "@rollup/rollup-linux-riscv64-gnu": "4.24.0", + "@rollup/rollup-linux-s390x-gnu": "4.24.0", + "@rollup/rollup-linux-x64-gnu": "4.24.0", + "@rollup/rollup-linux-x64-musl": "4.24.0", + "@rollup/rollup-win32-arm64-msvc": "4.24.0", + "@rollup/rollup-win32-ia32-msvc": "4.24.0", + "@rollup/rollup-win32-x64-msvc": "4.24.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/styled-components": { + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.13.tgz", + "integrity": "sha512-M0+N2xSnAtwcVAQeFEsGWFFxXDftHUD7XrKla06QbpUMmbmtFBMMTcKWvFXtWxuD5qQkB8iU5gk6QASlx2ZRMw==", + "license": "MIT", + "dependencies": { + "@emotion/is-prop-valid": "1.2.2", + "@emotion/unitless": "0.8.1", + "@types/stylis": "4.2.5", + "css-to-react-native": "3.2.0", + "csstype": "3.1.3", + "postcss": "8.4.38", + "shallowequal": "1.1.0", + "stylis": "4.3.2", + "tslib": "2.6.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/styled-components" + }, + "peerDependencies": { + "react": ">= 16.8.0", + "react-dom": ">= 16.8.0" + } + }, + "node_modules/styled-components/node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/styled-reset": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/styled-reset/-/styled-reset-4.5.2.tgz", + "integrity": "sha512-dbAaaVEhweBs2FGfqGBdW6oMcMK8238C2X5KCxBhUQJX92m/QyUfzRADOXhdXiXNkIPELtMCd72YY9eCdORfIw==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "styled-components": ">=4.0.0 || >=5.0.0 || >=6.0.0" + } + }, + "node_modules/stylis": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz", + "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==", + "license": "MIT" + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/tiny-case": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", + "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==", + "license": "MIT" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", + "license": "MIT" + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vite": { + "version": "5.4.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz", + "integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", + "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", + "dev": true, + "license": "MIT", + "dependencies": { + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yup": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/yup/-/yup-1.4.0.tgz", + "integrity": "sha512-wPbgkJRCqIf+OHyiTBQoJiP5PFuAXaWiJK6AmYkzQAh5/c2K9hzSApBZG5wV9KoKSePF7sAxmNSvh/13YHkFDg==", + "license": "MIT", + "dependencies": { + "property-expr": "^2.0.5", + "tiny-case": "^1.0.3", + "toposort": "^2.0.2", + "type-fest": "^2.19.0" + } + } + } +} diff --git a/mission/chapter05/mission/package.json b/mission/chapter05/mission/package.json new file mode 100644 index 0000000..fe495ab --- /dev/null +++ b/mission/chapter05/mission/package.json @@ -0,0 +1,35 @@ +{ + "name": "mission", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-hook-form": "^7.53.1", + "react-icons": "^5.3.0", + "react-intersection-observer": "^9.13.1", + "react-router-dom": "^6.26.2", + "styled-components": "^6.1.13", + "styled-reset": "^4.5.2", + "yup": "^1.4.0" + }, + "devDependencies": { + "@eslint/js": "^9.11.1", + "@types/react": "^18.3.10", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.2", + "eslint": "^9.11.1", + "eslint-plugin-react": "^7.37.0", + "eslint-plugin-react-hooks": "^5.1.0-rc.0", + "eslint-plugin-react-refresh": "^0.4.12", + "globals": "^15.9.0", + "vite": "^5.4.8" + } +} diff --git a/mission/chapter05/mission/src/0_App/globalStyle.js b/mission/chapter05/mission/src/0_App/globalStyle.js new file mode 100644 index 0000000..8093c3c --- /dev/null +++ b/mission/chapter05/mission/src/0_App/globalStyle.js @@ -0,0 +1,64 @@ +import { createGlobalStyle } from "styled-components"; +import reset from "styled-reset"; + +const GlobalStyles = createGlobalStyle` +///////////////////////////////////////////////////////////////// reset + ${reset} + a{ + text-decoration: none; + color: inherit; + } + *{ + box-sizing: border-box; + } + input, textarea { + -moz-user-select: auto; + -webkit-user-select: auto; + -ms-user-select: auto; + user-select: auto; + } + input:focus { + outline: none; + } + p{ + padding: 0; + margin: 0; + + } + ///////////////////////////////////////////////////////////////// reset + ///////////////////////////////////////////////////////////////// custom style of project + + *{ + color: ${({ theme }) => theme.color} + } + html, body, .body{ + height: 100%; + } + .body{ + display: flex; + flex-direction: column; + } + main{ + flex-grow: 1; + } + h1 { + font-size: 2em; + font-weight: bold; + margin-bottom: 0.5em; + } + + h2 { + font-size: 1.5em; + font-weight: bold; + margin-bottom: 0.5em; + } + + h3 { + font-size: 1.17em; + font-weight: bold; + margin-bottom: 0.5em; + } + ///////////////////////////////////////////////////////////////// custom style of project +`; + +export default GlobalStyles; diff --git a/mission/chapter05/mission/src/0_App/index.jsx b/mission/chapter05/mission/src/0_App/index.jsx new file mode 100644 index 0000000..9374bd3 --- /dev/null +++ b/mission/chapter05/mission/src/0_App/index.jsx @@ -0,0 +1,20 @@ +import Page from "../1_Page"; +import { BrowserRouter } from "react-router-dom"; +import { ThemeProvider } from "styled-components"; +import GlobalStyles from "./globalStyle.js"; +import Navbar from "./ui/Navbar/index.jsx"; + +import theme from "./theme.js"; +function App() { + return ( + + + + + + + + ); +} + +export default App; diff --git a/mission/chapter05/mission/src/0_App/theme.js b/mission/chapter05/mission/src/0_App/theme.js new file mode 100644 index 0000000..67f9475 --- /dev/null +++ b/mission/chapter05/mission/src/0_App/theme.js @@ -0,0 +1,22 @@ +const defaultTheme = { + background: "#051220", + color: "white", + btnRed: "red", + midBlack: "#131517", + btnColor: "white", + btnHoverColor: "#E1BEA3" +}; + +const darkTheme = { + background: "#3C3C3C", + color: "white", + btnColor: "white", + btnHoverColor: "#E1BEA3" +}; + +const theme = { + defaultTheme, + darkTheme, +}; + +export default theme; diff --git a/mission/chapter05/mission/src/0_App/ui/Navbar/assets/logo.svg b/mission/chapter05/mission/src/0_App/ui/Navbar/assets/logo.svg new file mode 100644 index 0000000..ae7fa3d --- /dev/null +++ b/mission/chapter05/mission/src/0_App/ui/Navbar/assets/logo.svg @@ -0,0 +1,18 @@ + \ No newline at end of file diff --git a/mission/chapter05/mission/src/0_App/ui/Navbar/index.jsx b/mission/chapter05/mission/src/0_App/ui/Navbar/index.jsx new file mode 100644 index 0000000..09e4973 --- /dev/null +++ b/mission/chapter05/mission/src/0_App/ui/Navbar/index.jsx @@ -0,0 +1,33 @@ +import STYLE from "./style"; +import { handleNavigation } from "../../../3_Shared/model/handleNavigate"; +import logoImg from "./assets/logo.svg"; +import { useNavigate } from "react-router-dom"; + +const Navbar = () => { + const navigate = useNavigate(); + return ( + + { + handleNavigation(navigate, "/"); + }}/> + + { + handleNavigation(navigate, "login"); + }} + > + 로그인 + + { + handleNavigation(navigate, "signup"); + }} + > + 회원가입 + + + + ); +}; + +export default Navbar; diff --git a/mission/chapter05/mission/src/0_App/ui/Navbar/style.js b/mission/chapter05/mission/src/0_App/ui/Navbar/style.js new file mode 100644 index 0000000..24f72ab --- /dev/null +++ b/mission/chapter05/mission/src/0_App/ui/Navbar/style.js @@ -0,0 +1,54 @@ +import styled from "styled-components"; + +const STYLE = { + Nav: styled.nav` + padding: 8px 32px; + position: -webkit-sticky; + position: sticky; + top: 0; + left: 0; + right: 0; + min-height: 72px; + display: flex; + justify-content: space-between; + align-items: center; + gap: 50px; + background-color: ${({ theme }) => theme.midBlack}; + z-index: 1; + `, + Logo: styled.img` + width: 120px; + cursor: pointer; + `, + Container: styled.div` + display: flex; + gap: 4px; + `, + SignUp: styled.div` + background-color: ${({ theme }) => theme.btnRed}; + width: 80px; + height: 32px; + border-radius: 8px; + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; + &:hover{ + background-color: ${({ theme }) => theme.btnHoverColor}; + } + `, + SignIn: styled.div` + width: 80px; + height: 32px; + border-radius: 8px; + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; + &:hover{ + background-color: ${({ theme }) => theme.btnHoverColor}; + } + `, +}; + +export default STYLE; diff --git a/mission/chapter05/mission/src/1_Page/CategoryPage/assets/categoryCardImg/background_image_1.png b/mission/chapter05/mission/src/1_Page/CategoryPage/assets/categoryCardImg/background_image_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ca5c9c429524a137f1677c524f5ea0a4498f5d96 GIT binary patch literal 112808 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 literal 0 HcmV?d00001 diff --git a/mission/chapter05/mission/src/1_Page/CategoryPage/assets/categoryCardImg/background_image_2.png b/mission/chapter05/mission/src/1_Page/CategoryPage/assets/categoryCardImg/background_image_2.png new file mode 100644 index 0000000000000000000000000000000000000000..4b076756279f736fb2f06360962b9584461de530 GIT binary patch literal 89042 zcmZsDQ*>Ql)bEMi*iM7Sw$<3SZQG3+Cyi~pvEA6V)tuPLIk*4sVqX*hHmq_2Lh@9FNY~0#5B*8NYmyhCV81?S9Vv z;z%9+4MZraaoDFfcs>nw92H+u56oEYo7lSj^*prYrUJF>x#D&T+*IT5Yq^ETW`0(h zcmr9$MZ$MwM?Ne?(*GX1XG;B?-I#WJdzhf*8v>Er(~ickfRL?thH8T!x=Ek^<|Fhc z6^`os{aGw9gg@h)m6-Qwmix?}#;c;7y12NLvyW`GhVr2J+&J^D1Ife7a}To0_%fWj zU8Ho%lvT}=X~oJz)^1iuHzs&(1?g{M1M!?>z|i+f1N;;CPXYXJ zc8Grh|1ar0yxenHz^=Lp{#xtGO(9SR%ciDFyyGVA)V5Q(B_`j{K6xAuzZ~E{U1x4$ z2QvZxna?xCj`+{C|JWkWe&gu6OUd0-+D>Sx`PzElng6+E@QS{wzO{U-^;TasVfPBO z3k1@nA(x&+=CzC)23nGQR3&#U1WMhj#hg~WTcj73Ev_2m)@NQlJFr(+4d=80TVA4H zJ%l=+&eu+6f>2IIeU|RtXLIv8B2{%!_ZT4lUmbD~`u{VHU7*<6)dkR8SoNNF?j+Qf zZ+5H~Bzxao?)-wMb zgwdIHPV4&ZmE{#M021lw1+SqE+v$w+8Yms4p&oa43rQD0(g1Z#@~Y?=KPT#6v+rnf z-Wk=!>+Brr_!TDz4H^<1CKRf{QBgVfHmutce57iwwsx*?7N1m|4Ld!B_zE}G3WX~| zkwq>gj~win6&*Zo z!n-}+Tla$ebz}f|S3*|8Sp>Zr0L@hFl31cJlzc}kIKnYD8+t zq*TrUm}Dnk_7S}07+4ipvZWr!4BTDYqWOqqrE`0n)vgGjU6-&;ANlpQuVQ}Jr;J<1 z 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%0D5HLYn)YdW69hs~mwvH;BWPh_3z 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 TA~KnB00000NkvXXu0mjf*)*E# literal 0 HcmV?d00001 diff --git a/mission/chapter05/mission/src/1_Page/CategoryPage/assets/categoryCardImg/background_image_3.png b/mission/chapter05/mission/src/1_Page/CategoryPage/assets/categoryCardImg/background_image_3.png new file mode 100644 index 0000000000000000000000000000000000000000..0dda19570c1b108147dccee14ec86c6599a930e8 GIT binary patch literal 73434 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 literal 0 HcmV?d00001 diff --git a/mission/chapter05/mission/src/1_Page/CategoryPage/assets/categoryCardImg/index.js b/mission/chapter05/mission/src/1_Page/CategoryPage/assets/categoryCardImg/index.js new file mode 100644 index 0000000..7a5d6d2 --- /dev/null +++ b/mission/chapter05/mission/src/1_Page/CategoryPage/assets/categoryCardImg/index.js @@ -0,0 +1,13 @@ +import background_1 from "./background_image_1.png"; +import background_2 from "./background_image_2.png"; +import background_3 from "./background_image_3.png"; +import background_4 from "./background_image_4.png"; + +const backgroundImg = { + background_1, + background_2, + background_3, + background_4, +}; + +export default backgroundImg; \ No newline at end of file diff --git a/mission/chapter05/mission/src/1_Page/CategoryPage/index.jsx b/mission/chapter05/mission/src/1_Page/CategoryPage/index.jsx new file mode 100644 index 0000000..5f81423 --- /dev/null +++ b/mission/chapter05/mission/src/1_Page/CategoryPage/index.jsx @@ -0,0 +1,17 @@ +import { handleNavigation } from "../../3_Shared/model/handleNavigate"; +import { useNavigate } from "react-router-dom"; +import backgroundImg from "./assets/categoryCardImg"; +import STYLE from "./style"; +const CategoryPage = ()=>{ + const navigate = useNavigate(); + return ( + + {handleNavigation(navigate, "/movies/now_playing")}}>현재 상영중인 + {handleNavigation(navigate, "/movies/popular")}}>인기 있는 + {handleNavigation(navigate, "/movies/top_rated")}}>높은 평가를 받은 + {handleNavigation(navigate, "/movies/upcoming")}}>개봉 예정중인 + + ) +} + +export default CategoryPage; \ No newline at end of file diff --git a/mission/chapter05/mission/src/1_Page/CategoryPage/style.js b/mission/chapter05/mission/src/1_Page/CategoryPage/style.js new file mode 100644 index 0000000..3c9352e --- /dev/null +++ b/mission/chapter05/mission/src/1_Page/CategoryPage/style.js @@ -0,0 +1,26 @@ +import styled from "styled-components"; + +const STYLE = { + CategoryCardContainer: styled.div` + display: flex; + gap: 12px; + `, + CategoryCard: styled.div` + width: 240px; + height: 120px; + cursor: pointer; + display: flex; + align-items: end; + background-image: url(${(props) => props.backgroundImg}); + background-size: cover; + `, + CardText: styled.p` + background-color: gray; + font-size: large; + padding: 4px; + border-radius: 4px; + font-weight: 400; + ` +}; + +export default STYLE; diff --git a/mission/chapter05/mission/src/1_Page/LoginPage/index.jsx b/mission/chapter05/mission/src/1_Page/LoginPage/index.jsx new file mode 100644 index 0000000..cccd8cd --- /dev/null +++ b/mission/chapter05/mission/src/1_Page/LoginPage/index.jsx @@ -0,0 +1,21 @@ +import STYLE from "./style"; +import { useForm } from "react-hook-form"; +import { IdInput, PwInput } from "../../2_Widget/Input"; +const LoginPage = () => { + + const {register, handleSubmit} = useForm(); + const onSubmit = (data) => { + console.log(data) + } + + return ( + + {/* */} + + + + + ); +}; + +export default LoginPage; diff --git a/mission/chapter05/mission/src/1_Page/LoginPage/style.js b/mission/chapter05/mission/src/1_Page/LoginPage/style.js new file mode 100644 index 0000000..86e7150 --- /dev/null +++ b/mission/chapter05/mission/src/1_Page/LoginPage/style.js @@ -0,0 +1,25 @@ +import styled from "styled-components"; + +const STYLE = { + LoginForm: styled.form` + width: 100%; + display: flex; + flex-direction: column; + gap: 16px; + align-items: center; + justify-content: center; + border: 1px red solid; + `, + Input: styled.input` + width: 360px; + height: 60px; + border-radius: 8px; + outline: none; + color: black; + &:focus{ + background-color: cyan; + } + `, +}; + +export default STYLE; diff --git a/mission/chapter05/mission/src/1_Page/MovieDetailPage/api/useMovieDetail.js b/mission/chapter05/mission/src/1_Page/MovieDetailPage/api/useMovieDetail.js new file mode 100644 index 0000000..6b5a02a --- /dev/null +++ b/mission/chapter05/mission/src/1_Page/MovieDetailPage/api/useMovieDetail.js @@ -0,0 +1,27 @@ +import React from "react"; +import fetchData from "../../../3_Shared/config/apiConfig"; +const BASE_URL = import.meta.env.VITE_TMDB_BASE_URL; +const BASE_IMG_URL = "https://image.tmdb.org/t/p/"; +const BASE_IMG_SIZE = "original"; + +const useMovieDetail = (id) => { + const [loading, setLoading] = React.useState(true); + const [movieDetail, setMovieDetail] = React.useState([]); + React.useEffect(() => { + const fetchMovie = async () => { + let movieDetailResult = await fetchData( // 영화 정보 + "GET", + `${BASE_URL}/movie/${id}?language=ko-KR` + ); + + movieDetailResult.backdrop_path = `${BASE_IMG_URL}${BASE_IMG_SIZE}${movieDetailResult.backdrop_path}`; + setMovieDetail(movieDetailResult); + + setLoading(false); + }; + + fetchMovie(); + }, [id]); + return [movieDetail, loading]; +}; +export default useMovieDetail; diff --git a/mission/chapter05/mission/src/1_Page/MovieDetailPage/api/useMovieProvider.js b/mission/chapter05/mission/src/1_Page/MovieDetailPage/api/useMovieProvider.js new file mode 100644 index 0000000..ef4e0b9 --- /dev/null +++ b/mission/chapter05/mission/src/1_Page/MovieDetailPage/api/useMovieProvider.js @@ -0,0 +1,31 @@ +import React from "react"; +import fetchData from "../../../3_Shared/config/apiConfig"; +const BASE_URL = import.meta.env.VITE_TMDB_BASE_URL; +const BASE_IMG_URL = "https://image.tmdb.org/t/p/"; +const BASE_IMG_SIZE = "w185"; + +const useMovieProvider = (id) => { + const [loading, setLoading] = React.useState(true); + const [movieProvider, setMovieProvider] = React.useState([]); + React.useEffect(() => { + const fetchMovie = async () => { + let movieProviderResult = await fetchData( // 영화 제작진 + "GET", + `${BASE_URL}/movie/${id}/credits?language=ko-KR` + ); + + movieProviderResult.cast.forEach((element) => { + element.profile_path = `${BASE_IMG_URL}${BASE_IMG_SIZE}${element.profile_path}` + }); + movieProviderResult.crew.forEach((element) => { + element.profile_path = `${BASE_IMG_URL}${BASE_IMG_SIZE}${element.profile_path}` + }); + setMovieProvider(movieProviderResult); + setLoading(false); + }; + + fetchMovie(); + }, [id]); + return [movieProvider, loading]; +}; +export default useMovieProvider; diff --git a/mission/chapter05/mission/src/1_Page/MovieDetailPage/index.jsx b/mission/chapter05/mission/src/1_Page/MovieDetailPage/index.jsx new file mode 100644 index 0000000..cd1c0ef --- /dev/null +++ b/mission/chapter05/mission/src/1_Page/MovieDetailPage/index.jsx @@ -0,0 +1,48 @@ +import React from "react"; +import { useParams } from "react-router-dom"; +import useMovieDetail from "./api/useMovieDetail"; +import useMovieProvider from "./api/useMovieProvider"; +import STYLE from "./style"; + +const MovieDetailPage = () => { + const { id } = useParams(); + const [movieInfo, movieInfoLoading] = useMovieDetail(id); + const [movieProvider, movieProviderLoading] = useMovieProvider(id); + if (movieInfoLoading || movieProviderLoading) + return

; + return ( + + + {/* movieInfo.poster_path */} +

{movieInfo.title}

+

{movieInfo.vote_average}점

+

{movieInfo.runtime}분

+
+

출연 / 감독

+ {/* CAST */} + + {movieProvider.cast.map((elem, index) => { + return ( + + + {elem.name} + + ); + })} + + {/* CREW */} + + {movieProvider.crew.map((elem, index) => { + return ( + + + {elem.name} + + ); + })} + +
+ ); +}; + +export default MovieDetailPage; diff --git a/mission/chapter05/mission/src/1_Page/MovieDetailPage/style.js b/mission/chapter05/mission/src/1_Page/MovieDetailPage/style.js new file mode 100644 index 0000000..d2fb11f --- /dev/null +++ b/mission/chapter05/mission/src/1_Page/MovieDetailPage/style.js @@ -0,0 +1,49 @@ +import styled from "styled-components"; + +const STYLE = { + MovieDetail: styled.div` + background-color: ${({ theme }) => theme.background}; + width: 100%; + display: flex; + flex-direction: column; + gap: 16px; + `, + MovieBanner: styled.div` + display: flex; + flex-direction: column; + line-height: 24px; + height: 360px; + background-size: cover; + background-position: center -60px; + background-repeat: no-repeat; + background-image: url(${(props) => props.backgroundImg}); + `, + MovieInfoContainer: styled.div` + display: flex; + gap: 12px; + `, + MovieProviderContainer: styled.div` + display: flex; + gap: 16px; + flex-wrap: wrap; + `, + MovieProvider: styled.div` + width: 120px; + display: flex; + flex-direction: column; + gap: 4px; + align-items: center; + font-size: smaller; + `, + MovieProviderProfile: styled.div` + background-image: url(${(props) => props.profileImg}); + background-color: black; + background-size: cover; + background-position: center -8px; + width: 80px; + height: 80px; + border-radius: 50%; + `, +}; + +export default STYLE; diff --git a/mission/chapter05/mission/src/1_Page/MovieListPage/index.jsx b/mission/chapter05/mission/src/1_Page/MovieListPage/index.jsx new file mode 100644 index 0000000..2851ed6 --- /dev/null +++ b/mission/chapter05/mission/src/1_Page/MovieListPage/index.jsx @@ -0,0 +1,11 @@ +import { useParams } from "react-router-dom"; +import MovieList from "./ui/MovieList"; + +const MovieListPage = () => { + const {category} = useParams(); + return ( + + ); +}; + +export default MovieListPage; diff --git a/mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js b/mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js new file mode 100644 index 0000000..3bcd724 --- /dev/null +++ b/mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js @@ -0,0 +1,35 @@ +import React from "react"; +import fetchData from "../../../../../3_Shared/config/apiConfig"; +const BASE_URL = import.meta.env.VITE_TMDB_BASE_URL; +const BASE_IMG_URL = "https://image.tmdb.org/t/p/"; +const BASE_IMG_SIZE = "w500"; + +const useMovieList = (category, page) => { + const [loading, setLoading] = React.useState(true); + const [movieList, setMovieList] = React.useState([]); + React.useEffect(() => { + const fetchMovie = async () => { + let result = await fetchData( + "GET", + `${BASE_URL}/movie/${category}?language=ko-KR&page=${page}` + ); + result.results.forEach((e) => { + e.poster_path = `${BASE_IMG_URL}${BASE_IMG_SIZE}${e.poster_path}`; + }); + // if(page % 5 == 0){ + // window.scrollTo({ top: 0}); + // setMovieList(result.results); + // } else{ + // setMovieList((prevList) => [...prevList, ...result.results]); + // } + setMovieList((prevList) => [...prevList, ...result.results]); + setLoading(false); + console.log(page, "page") + }; + + fetchMovie(); + }, [category, page]); + + return [movieList, loading]; +}; +export default useMovieList; diff --git a/mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/index.jsx b/mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/index.jsx new file mode 100644 index 0000000..8707a04 --- /dev/null +++ b/mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/index.jsx @@ -0,0 +1,41 @@ +import useMovieList from "./api/useMovieList"; +import STYLE from "./style"; +import React from "react"; +import Movie from "./ui/Movie"; +import { useParams } from "react-router-dom"; +import { useInView } from "react-intersection-observer"; +const MovieList = () => { + const { category } = useParams(); + const [page, setPage] = React.useState(1); + const [movieList, loading] = useMovieList(category, page); + + const { ref, inView } = useInView({ + threshold: 0, + }); + + React.useEffect(() =>{ + if(inView && !loading){ + setPage((prev) => prev+1); + } + }, [inView, loading]) + + if (loading) return
still loading...
; // API loading + + return ( + + {movieList.map((elem, index) => { + return ( + + ); + })} + {loading &&
Loading more movies...
} +
+ ); +}; +MovieList.displayName = "MovieList"; + +export default MovieList; diff --git a/mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/style.js b/mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/style.js new file mode 100644 index 0000000..18e5896 --- /dev/null +++ b/mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/style.js @@ -0,0 +1,44 @@ +import styled from "styled-components"; + +const STYLE = { + MovieList: styled.div` + display: flex; + flex-wrap: wrap; + gap: 12px; + padding: 16px; + background-color: ${({ theme }) => theme.background}; + align-content: start; + `, + Movie: styled.div` + position: relative; + flex-basis: 160px; + `, + Thumbnail: styled.img` + width: 160px; + height: 240px; + border-radius: 8px; + margin: 0; + `, + ThumbnailHoverEffectDiv: styled.div` + position: absolute; + top: 0; + left: 0; + width: 160px; + height: 240px; + background-color: gray; + opacity: 0; + border-radius: 8px; + &:hover { + opacity: 0.5; + } + `, + MovieInfo: styled.div` + display: flex; + flex-direction: column; + gap: 4px; + margin: 2px; + font-size: small; + `, +}; + +export default STYLE; diff --git a/mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/index.jsx b/mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/index.jsx new file mode 100644 index 0000000..3a3b42e --- /dev/null +++ b/mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/index.jsx @@ -0,0 +1,20 @@ +import STYLE from "./style"; +import { useNavigate } from "react-router-dom"; +import { handleNavigation } from "../../../../../../3_Shared/model/handleNavigate"; +const Movie = (props) => { + const { observe, data} = props; + const { poster_path, title, release_date, id } = data; + const navigate = useNavigate(); + return ( + {handleNavigation(navigate, `/movie-detail/${id}`);}}> + + + +

{title}

+

{release_date}

+
+
+ ); +}; + +export default Movie; diff --git a/mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/style.js b/mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/style.js new file mode 100644 index 0000000..18e5896 --- /dev/null +++ b/mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/style.js @@ -0,0 +1,44 @@ +import styled from "styled-components"; + +const STYLE = { + MovieList: styled.div` + display: flex; + flex-wrap: wrap; + gap: 12px; + padding: 16px; + background-color: ${({ theme }) => theme.background}; + align-content: start; + `, + Movie: styled.div` + position: relative; + flex-basis: 160px; + `, + Thumbnail: styled.img` + width: 160px; + height: 240px; + border-radius: 8px; + margin: 0; + `, + ThumbnailHoverEffectDiv: styled.div` + position: absolute; + top: 0; + left: 0; + width: 160px; + height: 240px; + background-color: gray; + opacity: 0; + border-radius: 8px; + &:hover { + opacity: 0.5; + } + `, + MovieInfo: styled.div` + display: flex; + flex-direction: column; + gap: 4px; + margin: 2px; + font-size: small; + `, +}; + +export default STYLE; diff --git a/mission/chapter05/mission/src/1_Page/SearchPage/index.jsx b/mission/chapter05/mission/src/1_Page/SearchPage/index.jsx new file mode 100644 index 0000000..f16a469 --- /dev/null +++ b/mission/chapter05/mission/src/1_Page/SearchPage/index.jsx @@ -0,0 +1,9 @@ +const SearchPage = ()=>{ + return ( +
+ 검색페이지 +
+ ) +} + +export default SearchPage; \ No newline at end of file diff --git a/mission/chapter05/mission/src/1_Page/SignUpPage/index.jsx b/mission/chapter05/mission/src/1_Page/SignUpPage/index.jsx new file mode 100644 index 0000000..115668b --- /dev/null +++ b/mission/chapter05/mission/src/1_Page/SignUpPage/index.jsx @@ -0,0 +1,9 @@ +const SignUpPage = ()=>{ + return ( +
+ 회원가입페이지 +
+ ) +} + +export default SignUpPage; \ No newline at end of file diff --git a/mission/chapter05/mission/src/1_Page/index.jsx b/mission/chapter05/mission/src/1_Page/index.jsx new file mode 100644 index 0000000..4e5ed91 --- /dev/null +++ b/mission/chapter05/mission/src/1_Page/index.jsx @@ -0,0 +1,29 @@ +import MovieListPage from "./MovieListPage"; +import LoginPage from "./LoginPage"; +import SignUpPage from "./SignUpPage"; +import SearchPage from "./SearchPage"; +import CategoryPage from "./CategoryPage"; +import MovieDetailPage from "./MovieDetailPage"; +import { Routes, Route, Navigate } from "react-router-dom"; +import STYLE from "./style"; +import Sidebar from "./ui/Sidebar"; +const Page = () => { + return ( + + {/* main태그 flex적용 되어 있음 */} + + + } /> + } /> + } /> + } /> + } /> + } /> + } /> + {/* 에러 페이지 추가 예정 */} + + + ); +}; + +export default Page; diff --git a/mission/chapter05/mission/src/1_Page/style.js b/mission/chapter05/mission/src/1_Page/style.js new file mode 100644 index 0000000..61bb9c1 --- /dev/null +++ b/mission/chapter05/mission/src/1_Page/style.js @@ -0,0 +1,10 @@ +import styled from "styled-components"; + +const STYLE = { + Main: styled.main` + display: flex; + background-color: ${({theme}) => theme.background}; + `, +}; + +export default STYLE; diff --git a/mission/chapter05/mission/src/1_Page/ui/Sidebar/assets/shorts.svg b/mission/chapter05/mission/src/1_Page/ui/Sidebar/assets/shorts.svg new file mode 100644 index 0000000..5916d15 --- /dev/null +++ b/mission/chapter05/mission/src/1_Page/ui/Sidebar/assets/shorts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mission/chapter05/mission/src/1_Page/ui/Sidebar/index.jsx b/mission/chapter05/mission/src/1_Page/ui/Sidebar/index.jsx new file mode 100644 index 0000000..208cf9c --- /dev/null +++ b/mission/chapter05/mission/src/1_Page/ui/Sidebar/index.jsx @@ -0,0 +1,29 @@ +import STYLE from "./style"; +import { handleNavigation } from "../../../3_Shared/model/handleNavigate"; +import { useNavigate } from "react-router-dom"; +import { HiOutlineMagnifyingGlass } from "react-icons/hi2"; +import { RiMovie2Line } from "react-icons/ri"; + +const Sidebar = () => { + const navigate = useNavigate(); + return ( + + { + handleNavigation(navigate, "search"); + }} + > + 찾기 + + { + handleNavigation(navigate, "category"); + }} + > + 영화 + + + ); +}; + +export default Sidebar; diff --git a/mission/chapter05/mission/src/1_Page/ui/Sidebar/style.js b/mission/chapter05/mission/src/1_Page/ui/Sidebar/style.js new file mode 100644 index 0000000..18b6eaa --- /dev/null +++ b/mission/chapter05/mission/src/1_Page/ui/Sidebar/style.js @@ -0,0 +1,22 @@ +import styled from "styled-components"; + +const STYLE = { + Aside: styled.aside` + min-width: 240px; + padding: 8px 0 0 16px; + display: flex; + flex-direction: column; + background-color: ${({ theme }) => theme.midBlack}; + `, + AsideTab: styled.div` + height: 48px; + display: flex; + align-items: center; + padding-left: 8px; + cursor: pointer; + `, + AsideTabIcon: styled.img` + width: 24px; + ` +}; +export default STYLE; diff --git a/mission/chapter05/mission/src/2_Widget/Input/EmailInput/index.jsx b/mission/chapter05/mission/src/2_Widget/Input/EmailInput/index.jsx new file mode 100644 index 0000000..b6d5a87 --- /dev/null +++ b/mission/chapter05/mission/src/2_Widget/Input/EmailInput/index.jsx @@ -0,0 +1,40 @@ +import STYLE from "./style"; +import React from "react"; +import { idRegex, idRegexMsg } from "../const/regex"; + +const LoginPage = () => { + const [validate, setValidate] = React.useState(0); // 0 = no input, -1 = validation false, 1 = validation pass + + let input = React.useRef(); + + const handleInputChange = () => { + const inputValue = input.current.value; + if (inputValue.length === 0) { + setValidate(0); + } else if (!idRegex.test(inputValue)) { + setValidate(-1); + } else { + setValidate(1); + } + }; + + let validationMessage; + if (validate === -1) { + validationMessage = {idRegexMsg}; + } else { + validationMessage = null; + } + + return ( + + + {validationMessage} + + ); +}; + +export default LoginPage; diff --git a/mission/chapter05/mission/src/2_Widget/Input/EmailInput/style.js b/mission/chapter05/mission/src/2_Widget/Input/EmailInput/style.js new file mode 100644 index 0000000..04ce766 --- /dev/null +++ b/mission/chapter05/mission/src/2_Widget/Input/EmailInput/style.js @@ -0,0 +1,25 @@ +import styled from "styled-components"; + +const STYLE = { + Container: styled.div` + display: flex; + flex-direction: column; + gap: 4px; + `, + Input: styled.input` + width: 360px; + height: 60px; + border-radius: 8px; + outline: none; + color: black; + &:focus { + background-color: cyan; + } + `, + ErrMsg: styled.div` + font-size: small; + color: red; + `, +}; + +export default STYLE; diff --git a/mission/chapter05/mission/src/2_Widget/Input/IdInput/index.jsx b/mission/chapter05/mission/src/2_Widget/Input/IdInput/index.jsx new file mode 100644 index 0000000..112ccc4 --- /dev/null +++ b/mission/chapter05/mission/src/2_Widget/Input/IdInput/index.jsx @@ -0,0 +1,42 @@ +import STYLE from "./style"; +import React from "react"; +import { pwRegex, idRegexMsg } from "../const/regex"; + +const IdInput = () => { + const [validate, setValidate] = React.useState(0); // 0 = no input, -1 = validation false, 1 = validation pass + + let input = React.useRef(); + + const handleInputChange = () => { + const inputValue = input.current.value; + if (inputValue.length === 0) { + setValidate(0); + } else if (!pwRegex.test(inputValue)) { + setValidate(-1); + } else { + setValidate(1); + } + }; + + let validationMessage; + if (validate === -1) { + validationMessage = {idRegexMsg}; + } else { + validationMessage = null; + } + + return ( + + + {validationMessage} + + ); +}; + +export default IdInput; diff --git a/mission/chapter05/mission/src/2_Widget/Input/IdInput/style.js b/mission/chapter05/mission/src/2_Widget/Input/IdInput/style.js new file mode 100644 index 0000000..04ce766 --- /dev/null +++ b/mission/chapter05/mission/src/2_Widget/Input/IdInput/style.js @@ -0,0 +1,25 @@ +import styled from "styled-components"; + +const STYLE = { + Container: styled.div` + display: flex; + flex-direction: column; + gap: 4px; + `, + Input: styled.input` + width: 360px; + height: 60px; + border-radius: 8px; + outline: none; + color: black; + &:focus { + background-color: cyan; + } + `, + ErrMsg: styled.div` + font-size: small; + color: red; + `, +}; + +export default STYLE; diff --git a/mission/chapter05/mission/src/2_Widget/Input/PwInput/index.jsx b/mission/chapter05/mission/src/2_Widget/Input/PwInput/index.jsx new file mode 100644 index 0000000..21aea74 --- /dev/null +++ b/mission/chapter05/mission/src/2_Widget/Input/PwInput/index.jsx @@ -0,0 +1,42 @@ +import STYLE from "./style"; +import React from "react"; +import { idRegex, pwRegexMsg } from "../const/regex"; + +const PwInput = () => { + const [validate, setValidate] = React.useState(0); // 0 = no input, -1 = validation false, 1 = validation pass + + let input = React.useRef(); + + const handleInputChange = () => { + const inputValue = input.current.value; + if (inputValue.length === 0) { + setValidate(0); + } else if (!idRegex.test(inputValue)) { + setValidate(-1); + } else { + setValidate(1); + } + }; + + let validationMessage; + if (validate === -1) { + validationMessage = {pwRegexMsg}; + } else { + validationMessage = null; + } + + return ( + + + {validationMessage} + + ); +}; + +export default PwInput; diff --git a/mission/chapter05/mission/src/2_Widget/Input/PwInput/style.js b/mission/chapter05/mission/src/2_Widget/Input/PwInput/style.js new file mode 100644 index 0000000..04ce766 --- /dev/null +++ b/mission/chapter05/mission/src/2_Widget/Input/PwInput/style.js @@ -0,0 +1,25 @@ +import styled from "styled-components"; + +const STYLE = { + Container: styled.div` + display: flex; + flex-direction: column; + gap: 4px; + `, + Input: styled.input` + width: 360px; + height: 60px; + border-radius: 8px; + outline: none; + color: black; + &:focus { + background-color: cyan; + } + `, + ErrMsg: styled.div` + font-size: small; + color: red; + `, +}; + +export default STYLE; diff --git a/mission/chapter05/mission/src/2_Widget/Input/const/regex.js b/mission/chapter05/mission/src/2_Widget/Input/const/regex.js new file mode 100644 index 0000000..e1474c5 --- /dev/null +++ b/mission/chapter05/mission/src/2_Widget/Input/const/regex.js @@ -0,0 +1,7 @@ +export const idRegex = /^[a-zA-Z0-9]{6,20}$/; +export const idRegexMsg = "영어와 숫자만 사용하여 6~20 글자로 입력해주세요." +export const pwRegex = + /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[!@#$%^&*(),.?":{}|<>])[a-zA-Z\d!@#$%^&*(),.?":{}|<>]{6,20}$/; +export const pwRegexMsg = "영어, 숫자, 특수기호 를 포함하여 6~20 글자로 입력해주세요." +export const hpRegex = /^010-\d{4}-\d{4}/; +export const nameRegex = /^[가-힣a-zA-Z]{2,20}$/; \ No newline at end of file diff --git a/mission/chapter05/mission/src/2_Widget/Input/index.jsx b/mission/chapter05/mission/src/2_Widget/Input/index.jsx new file mode 100644 index 0000000..4d76bb4 --- /dev/null +++ b/mission/chapter05/mission/src/2_Widget/Input/index.jsx @@ -0,0 +1,4 @@ +import IdInput from "./IdInput"; +import PwInput from "./PwInput" + +export { IdInput, PwInput }; diff --git a/mission/chapter05/mission/src/3_Shared/config/apiConfig.js b/mission/chapter05/mission/src/3_Shared/config/apiConfig.js new file mode 100644 index 0000000..bdfb7be --- /dev/null +++ b/mission/chapter05/mission/src/3_Shared/config/apiConfig.js @@ -0,0 +1,37 @@ +const API_TOKEN = import.meta.env.VITE_TMDB_API_TOKEN; + +const apiConfig = (method) => { + return { + method: method, + headers: { + //"Content-Type": "application/json", + accept: "application/json", + Authorization: `Bearer ${API_TOKEN}`, + }, + }; +}; + +const fetchData = async (method, url) => { + try { + const response = await fetch(url, apiConfig(method)); + + let result; + switch (response.status) { + case 200: + result = await response.json(); + break; + default: + alert("API error"); // 상태 코드가 200이 아닌 경우 경고 + result = null; + break; + } + + return result; + } catch (error) { + console.error("Network or fetch error:", error); // 네트워크 오류 등 처리 + alert("Network error occurred"); + return null; + } +}; + +export default fetchData; diff --git a/mission/chapter05/mission/src/3_Shared/lib/useThrottle.js b/mission/chapter05/mission/src/3_Shared/lib/useThrottle.js new file mode 100644 index 0000000..055bcd3 --- /dev/null +++ b/mission/chapter05/mission/src/3_Shared/lib/useThrottle.js @@ -0,0 +1,14 @@ +import React from "react"; +const useThrottle = (callback, delay = 1000) => { + let lastCallTime = React.useRef(Date.now()); + + return () => { + const timeElapsed = Date.now() - lastCallTime.current; + if(timeElapsed >= delay) { + callback(); + lastCallTime.current = Date.now(); + } + } +}; + +export default useThrottle; diff --git a/mission/chapter05/mission/src/3_Shared/model/handleNavigate.js b/mission/chapter05/mission/src/3_Shared/model/handleNavigate.js new file mode 100644 index 0000000..a5c6bb9 --- /dev/null +++ b/mission/chapter05/mission/src/3_Shared/model/handleNavigate.js @@ -0,0 +1,3 @@ +export const handleNavigation = (navigate, path) => { + navigate(path); +}; diff --git a/mission/chapter05/mission/src/index.jsx b/mission/chapter05/mission/src/index.jsx new file mode 100644 index 0000000..6439db0 --- /dev/null +++ b/mission/chapter05/mission/src/index.jsx @@ -0,0 +1,9 @@ +import { StrictMode } from 'react' +import { createRoot } from 'react-dom/client' +import App from './0_App' + +createRoot(document.getElementById('root')).render( + <> + + +) diff --git a/mission/chapter05/mission/vite.config.js b/mission/chapter05/mission/vite.config.js new file mode 100644 index 0000000..5a33944 --- /dev/null +++ b/mission/chapter05/mission/vite.config.js @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}) From 1f6be4184ae23773ba6afd7140de31be01d3a4f0 Mon Sep 17 00:00:00 2001 From: RyuDongHo Date: Wed, 6 Nov 2024 21:35:46 +0900 Subject: [PATCH 04/15] =?UTF-8?q?mission:=205=EC=A3=BC=EC=B0=A8=20?= =?UTF-8?q?=EB=AF=B8=EC=85=98=20=EC=99=84=EB=A3=8C=20=EB=B0=8F=20api?= =?UTF-8?q?=EC=88=98=EC=A0=95=205=EC=A3=BC=EC=B0=A8=20=EC=9A=94=EA=B5=AC?= =?UTF-8?q?=EC=82=AC=ED=95=AD=EC=9D=80=20=EB=8B=A4=20=EB=A7=9E=EC=B7=84?= =?UTF-8?q?=EA=B3=A0,=20api=EC=84=A4=EC=A0=95=EC=9D=84=20=EB=A6=AC?= =?UTF-8?q?=ED=8C=A9=ED=86=A0=EB=A7=81=ED=95=98=EB=A9=B4=EC=84=9C=20signup?= =?UTF-8?q?Page=EB=A5=BC=20=EC=99=84=EC=84=B1=ED=95=B4=EC=84=9C=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=20=ED=96=88=EC=8A=B5=EB=8B=88?= =?UTF-8?q?=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mission/chapter05/mission/package-lock.json | 10 +++ mission/chapter05/mission/package.json | 1 + .../mission/src/1_Page/LoginPage/index.jsx | 42 ++++++++++--- .../mission/src/1_Page/LoginPage/style.js | 11 ---- .../MovieDetailPage/api/useMovieDetail.js | 9 ++- .../MovieDetailPage/api/useMovieProvider.js | 8 ++- .../ui/MovieList/api/useMovieList.js | 10 +-- .../src/1_Page/SignUpPage/api/authSignUp.js | 22 +++++++ .../mission/src/1_Page/SignUpPage/index.jsx | 61 +++++++++++++++--- .../mission/src/1_Page/SignUpPage/style.js | 14 +++++ .../src/2_Widget/Input/EmailInput/index.jsx | 40 ------------ .../src/2_Widget/Input/EmailInput/style.js | 25 -------- .../src/2_Widget/Input/IdInput/index.jsx | 17 +++-- .../mission/src/3_Shared/config/apiConfig.js | 62 +++++++++++-------- .../mission/src/3_Shared/ui/Input/index.jsx | 2 + .../mission/src/3_Shared/ui/Input/style.js | 39 ++++++++++++ .../src/3_Shared/validation/yupSchema.js | 39 ++++++++++++ 17 files changed, 273 insertions(+), 139 deletions(-) create mode 100644 mission/chapter05/mission/src/1_Page/SignUpPage/api/authSignUp.js create mode 100644 mission/chapter05/mission/src/1_Page/SignUpPage/style.js delete mode 100644 mission/chapter05/mission/src/2_Widget/Input/EmailInput/index.jsx delete mode 100644 mission/chapter05/mission/src/2_Widget/Input/EmailInput/style.js create mode 100644 mission/chapter05/mission/src/3_Shared/ui/Input/index.jsx create mode 100644 mission/chapter05/mission/src/3_Shared/ui/Input/style.js create mode 100644 mission/chapter05/mission/src/3_Shared/validation/yupSchema.js diff --git a/mission/chapter05/mission/package-lock.json b/mission/chapter05/mission/package-lock.json index 5add22f..ac29c53 100644 --- a/mission/chapter05/mission/package-lock.json +++ b/mission/chapter05/mission/package-lock.json @@ -8,6 +8,7 @@ "name": "mission", "version": "0.0.0", "dependencies": { + "@hookform/resolvers": "^3.9.1", "react": "^18.3.1", "react-dom": "^18.3.1", "react-hook-form": "^7.53.1", @@ -903,6 +904,15 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@hookform/resolvers": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.9.1.tgz", + "integrity": "sha512-ud2HqmGBM0P0IABqoskKWI6PEf6ZDDBZkFqe2Vnl+mTHCEHzr3ISjjZyCwTjC/qpL25JC9aIDkloQejvMeq0ug==", + "license": "MIT", + "peerDependencies": { + "react-hook-form": "^7.0.0" + } + }, "node_modules/@humanfs/core": { "version": "0.19.0", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.0.tgz", diff --git a/mission/chapter05/mission/package.json b/mission/chapter05/mission/package.json index fe495ab..6e4797b 100644 --- a/mission/chapter05/mission/package.json +++ b/mission/chapter05/mission/package.json @@ -10,6 +10,7 @@ "preview": "vite preview" }, "dependencies": { + "@hookform/resolvers": "^3.9.1", "react": "^18.3.1", "react-dom": "^18.3.1", "react-hook-form": "^7.53.1", diff --git a/mission/chapter05/mission/src/1_Page/LoginPage/index.jsx b/mission/chapter05/mission/src/1_Page/LoginPage/index.jsx index cccd8cd..1eac6e4 100644 --- a/mission/chapter05/mission/src/1_Page/LoginPage/index.jsx +++ b/mission/chapter05/mission/src/1_Page/LoginPage/index.jsx @@ -1,19 +1,45 @@ import STYLE from "./style"; import { useForm } from "react-hook-form"; -import { IdInput, PwInput } from "../../2_Widget/Input"; +import { + emailSchema, + passwordSchema, +} from "../../3_Shared/validation/yupSchema"; +import { yupResolver } from "@hookform/resolvers/yup"; +import * as Input from "../../3_Shared/ui/Input/"; const LoginPage = () => { + const yupSchema = emailSchema.concat(passwordSchema); + // prettier-ignore + const { register, handleSubmit, formState: { errors, isValid } } = useForm({ + mode: "onChange", resolver: yupResolver(yupSchema), + }); - const {register, handleSubmit} = useForm(); const onSubmit = (data) => { - console.log(data) - } + console.log(data); + }; return ( - {/* */} - - - +

로그인

+ + email + + {errors.email?.message} + + + + password + + {errors.password?.message} + +
); }; diff --git a/mission/chapter05/mission/src/1_Page/LoginPage/style.js b/mission/chapter05/mission/src/1_Page/LoginPage/style.js index 86e7150..ead6c04 100644 --- a/mission/chapter05/mission/src/1_Page/LoginPage/style.js +++ b/mission/chapter05/mission/src/1_Page/LoginPage/style.js @@ -8,17 +8,6 @@ const STYLE = { gap: 16px; align-items: center; justify-content: center; - border: 1px red solid; - `, - Input: styled.input` - width: 360px; - height: 60px; - border-radius: 8px; - outline: none; - color: black; - &:focus{ - background-color: cyan; - } `, }; diff --git a/mission/chapter05/mission/src/1_Page/MovieDetailPage/api/useMovieDetail.js b/mission/chapter05/mission/src/1_Page/MovieDetailPage/api/useMovieDetail.js index 6b5a02a..4744b25 100644 --- a/mission/chapter05/mission/src/1_Page/MovieDetailPage/api/useMovieDetail.js +++ b/mission/chapter05/mission/src/1_Page/MovieDetailPage/api/useMovieDetail.js @@ -1,5 +1,5 @@ import React from "react"; -import fetchData from "../../../3_Shared/config/apiConfig"; +import {TMDB_fetchRequest} from "../../../3_Shared/config/apiConfig"; const BASE_URL = import.meta.env.VITE_TMDB_BASE_URL; const BASE_IMG_URL = "https://image.tmdb.org/t/p/"; const BASE_IMG_SIZE = "original"; @@ -9,9 +9,12 @@ const useMovieDetail = (id) => { const [movieDetail, setMovieDetail] = React.useState([]); React.useEffect(() => { const fetchMovie = async () => { - let movieDetailResult = await fetchData( // 영화 정보 + let movieDetailResult = await TMDB_fetchRequest( + // 영화 정보 "GET", - `${BASE_URL}/movie/${id}?language=ko-KR` + `${BASE_URL}/movie/${id}?language=ko-KR`, + null, + true ); movieDetailResult.backdrop_path = `${BASE_IMG_URL}${BASE_IMG_SIZE}${movieDetailResult.backdrop_path}`; diff --git a/mission/chapter05/mission/src/1_Page/MovieDetailPage/api/useMovieProvider.js b/mission/chapter05/mission/src/1_Page/MovieDetailPage/api/useMovieProvider.js index ef4e0b9..e291497 100644 --- a/mission/chapter05/mission/src/1_Page/MovieDetailPage/api/useMovieProvider.js +++ b/mission/chapter05/mission/src/1_Page/MovieDetailPage/api/useMovieProvider.js @@ -1,5 +1,5 @@ import React from "react"; -import fetchData from "../../../3_Shared/config/apiConfig"; +import {TMDB_fetchRequest} from "../../../3_Shared/config/apiConfig"; const BASE_URL = import.meta.env.VITE_TMDB_BASE_URL; const BASE_IMG_URL = "https://image.tmdb.org/t/p/"; const BASE_IMG_SIZE = "w185"; @@ -9,9 +9,11 @@ const useMovieProvider = (id) => { const [movieProvider, setMovieProvider] = React.useState([]); React.useEffect(() => { const fetchMovie = async () => { - let movieProviderResult = await fetchData( // 영화 제작진 + let movieProviderResult = await TMDB_fetchRequest( // 영화 제작진 "GET", - `${BASE_URL}/movie/${id}/credits?language=ko-KR` + `${BASE_URL}/movie/${id}/credits?language=ko-KR`, + null, + true ); movieProviderResult.cast.forEach((element) => { diff --git a/mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js b/mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js index 3bcd724..df2a1e7 100644 --- a/mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js +++ b/mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js @@ -1,5 +1,5 @@ import React from "react"; -import fetchData from "../../../../../3_Shared/config/apiConfig"; +import { TMDB_fetchRequest, fetchRequest } from "../../../../../3_Shared/config/apiConfig"; const BASE_URL = import.meta.env.VITE_TMDB_BASE_URL; const BASE_IMG_URL = "https://image.tmdb.org/t/p/"; const BASE_IMG_SIZE = "w500"; @@ -9,19 +9,13 @@ const useMovieList = (category, page) => { const [movieList, setMovieList] = React.useState([]); React.useEffect(() => { const fetchMovie = async () => { - let result = await fetchData( + let result = await TMDB_fetchRequest( "GET", `${BASE_URL}/movie/${category}?language=ko-KR&page=${page}` ); result.results.forEach((e) => { e.poster_path = `${BASE_IMG_URL}${BASE_IMG_SIZE}${e.poster_path}`; }); - // if(page % 5 == 0){ - // window.scrollTo({ top: 0}); - // setMovieList(result.results); - // } else{ - // setMovieList((prevList) => [...prevList, ...result.results]); - // } setMovieList((prevList) => [...prevList, ...result.results]); setLoading(false); console.log(page, "page") diff --git a/mission/chapter05/mission/src/1_Page/SignUpPage/api/authSignUp.js b/mission/chapter05/mission/src/1_Page/SignUpPage/api/authSignUp.js new file mode 100644 index 0000000..223f1eb --- /dev/null +++ b/mission/chapter05/mission/src/1_Page/SignUpPage/api/authSignUp.js @@ -0,0 +1,22 @@ +import {fetchRequest} from "../../../3_Shared/config/apiConfig"; +const BASE_URL = import.meta.env.VITE_UMC_BASE_URL; + +const authSignUp = (data) => { + const { email, password, passwordCheck } = data; + const body = { + "email": email, + "password": password, + "passwordCheck": passwordCheck, + }; + const signUp = async () => { + const signUpResultResult = await fetchRequest( + "POST", + `${BASE_URL}/auth/register`, + body + ); + + return signUpResultResult; + }; + return signUp(); +}; +export default authSignUp; diff --git a/mission/chapter05/mission/src/1_Page/SignUpPage/index.jsx b/mission/chapter05/mission/src/1_Page/SignUpPage/index.jsx index 115668b..5dbf87f 100644 --- a/mission/chapter05/mission/src/1_Page/SignUpPage/index.jsx +++ b/mission/chapter05/mission/src/1_Page/SignUpPage/index.jsx @@ -1,9 +1,56 @@ -const SignUpPage = ()=>{ +import STYLE from "./style"; +import { useForm } from "react-hook-form"; +import { emailSchema, passwordSchema, passwordCheckSchema } from "../../3_Shared/validation/yupSchema"; +import { yupResolver } from "@hookform/resolvers/yup"; +import authSignUp from "./api/authSignUp"; +import * as Input from "../../3_Shared/ui/Input/"; +const SignUpPage = () => { + const yupSchema = emailSchema.concat(passwordSchema.concat(passwordCheckSchema)); + // prettier-ignore + const { register, handleSubmit, formState: { errors, isValid } } = useForm({ + mode: "onChange", resolver: yupResolver(yupSchema), + }); + + const onSubmit = async (data) => { + const signUpResult = await authSignUp(data); + console.log(signUpResult); + }; + return ( -
- 회원가입페이지 -
- ) -} + +

회원가입

+ + email + + {errors.email?.message} + + + + password + + {errors.password?.message} + + + + confirm password + + {errors.passwordCheck?.message} + + +
+ ); +}; -export default SignUpPage; \ No newline at end of file +export default SignUpPage; diff --git a/mission/chapter05/mission/src/1_Page/SignUpPage/style.js b/mission/chapter05/mission/src/1_Page/SignUpPage/style.js new file mode 100644 index 0000000..22dc8b8 --- /dev/null +++ b/mission/chapter05/mission/src/1_Page/SignUpPage/style.js @@ -0,0 +1,14 @@ +import styled from "styled-components"; + +const STYLE = { + SignUpForm: styled.form` + width: 100%; + display: flex; + flex-direction: column; + gap: 16px; + align-items: center; + justify-content: center; + `, +}; + +export default STYLE; diff --git a/mission/chapter05/mission/src/2_Widget/Input/EmailInput/index.jsx b/mission/chapter05/mission/src/2_Widget/Input/EmailInput/index.jsx deleted file mode 100644 index b6d5a87..0000000 --- a/mission/chapter05/mission/src/2_Widget/Input/EmailInput/index.jsx +++ /dev/null @@ -1,40 +0,0 @@ -import STYLE from "./style"; -import React from "react"; -import { idRegex, idRegexMsg } from "../const/regex"; - -const LoginPage = () => { - const [validate, setValidate] = React.useState(0); // 0 = no input, -1 = validation false, 1 = validation pass - - let input = React.useRef(); - - const handleInputChange = () => { - const inputValue = input.current.value; - if (inputValue.length === 0) { - setValidate(0); - } else if (!idRegex.test(inputValue)) { - setValidate(-1); - } else { - setValidate(1); - } - }; - - let validationMessage; - if (validate === -1) { - validationMessage = {idRegexMsg}; - } else { - validationMessage = null; - } - - return ( - - - {validationMessage} - - ); -}; - -export default LoginPage; diff --git a/mission/chapter05/mission/src/2_Widget/Input/EmailInput/style.js b/mission/chapter05/mission/src/2_Widget/Input/EmailInput/style.js deleted file mode 100644 index 04ce766..0000000 --- a/mission/chapter05/mission/src/2_Widget/Input/EmailInput/style.js +++ /dev/null @@ -1,25 +0,0 @@ -import styled from "styled-components"; - -const STYLE = { - Container: styled.div` - display: flex; - flex-direction: column; - gap: 4px; - `, - Input: styled.input` - width: 360px; - height: 60px; - border-radius: 8px; - outline: none; - color: black; - &:focus { - background-color: cyan; - } - `, - ErrMsg: styled.div` - font-size: small; - color: red; - `, -}; - -export default STYLE; diff --git a/mission/chapter05/mission/src/2_Widget/Input/IdInput/index.jsx b/mission/chapter05/mission/src/2_Widget/Input/IdInput/index.jsx index 112ccc4..41583b4 100644 --- a/mission/chapter05/mission/src/2_Widget/Input/IdInput/index.jsx +++ b/mission/chapter05/mission/src/2_Widget/Input/IdInput/index.jsx @@ -1,20 +1,20 @@ import STYLE from "./style"; import React from "react"; -import { pwRegex, idRegexMsg } from "../const/regex"; +import { idRegex, idRegexMsg } from "../const/regex"; const IdInput = () => { + console.log("render") const [validate, setValidate] = React.useState(0); // 0 = no input, -1 = validation false, 1 = validation pass - let input = React.useRef(); - + let input = React.useRef({value: ""}); const handleInputChange = () => { const inputValue = input.current.value; if (inputValue.length === 0) { - setValidate(0); - } else if (!pwRegex.test(inputValue)) { - setValidate(-1); + validate != 0 && setValidate(0); + } else if (!idRegex.test(inputValue)) { + validate != -1 && setValidate(-1); } else { - setValidate(1); + validate != 1 && setValidate(1); } }; @@ -28,8 +28,7 @@ const IdInput = () => { return ( { - return { +const handleStatus = async (response) => { + switch (response.status) { + case 200: + return await response.json(); + case 201: + return await response.json(); + default: + alert("API error"); // 상태 코드가 200이 아닌 경우 경고 + return null; + } +}; + +const apiConfig = (method, bodyData = null) => { + const config = { method: method, headers: { - //"Content-Type": "application/json", - accept: "application/json", - Authorization: `Bearer ${API_TOKEN}`, + "Content-Type": "application/json", }, + body: bodyData ? JSON.stringify(bodyData) : null, }; + return config; }; -const fetchData = async (method, url) => { - try { - const response = await fetch(url, apiConfig(method)); +const TMDB_apiConfig = (method) => { + const config = { + method: method, + headers: { + "Content-Type": "application/json", + Authorization: `Bearer ${API_TOKEN}`, + }, + }; + return config; +}; - let result; - switch (response.status) { - case 200: - result = await response.json(); - break; - default: - alert("API error"); // 상태 코드가 200이 아닌 경우 경고 - result = null; - break; - } +export const fetchRequest = async (method, url, bodyData = null) => { + const response = await fetch(url, apiConfig(method, bodyData)); - return result; - } catch (error) { - console.error("Network or fetch error:", error); // 네트워크 오류 등 처리 - alert("Network error occurred"); - return null; - } + let result = handleStatus(response); + return result; }; -export default fetchData; +export const TMDB_fetchRequest = async (method, url) => { + const response = await fetch(url, TMDB_apiConfig(method)); + + let result = handleStatus(response); + return result; +}; diff --git a/mission/chapter05/mission/src/3_Shared/ui/Input/index.jsx b/mission/chapter05/mission/src/3_Shared/ui/Input/index.jsx new file mode 100644 index 0000000..a8d13e6 --- /dev/null +++ b/mission/chapter05/mission/src/3_Shared/ui/Input/index.jsx @@ -0,0 +1,2 @@ +import { Container, Label, DefaultInput, SubmitInput, InputErrMsg } from "./style" +export { Container, Label, DefaultInput, SubmitInput, InputErrMsg } \ No newline at end of file diff --git a/mission/chapter05/mission/src/3_Shared/ui/Input/style.js b/mission/chapter05/mission/src/3_Shared/ui/Input/style.js new file mode 100644 index 0000000..e5466a6 --- /dev/null +++ b/mission/chapter05/mission/src/3_Shared/ui/Input/style.js @@ -0,0 +1,39 @@ +import styled from "styled-components"; + +export const Container = styled.div` + display: flex; + flex-direction: column; + gap: 4px; +`; +export const Label = styled.p` + font-size: large; + padding-left: 8px; +`; + +export const DefaultInput = styled.input` + width: 360px; + height: 50px; + border-radius: 8px; + outline: none; + color: black; + &:focus { + background-color: cyan; + } +`; + +export const SubmitInput = styled.input` + width: 360px; + height: 50px; + border-radius: 8px; + outline: none; + color: black; + background-color: ${(props) => (props.disabled ? "gray" : "red")}; + &:focus { + background-color: cyan; + } +`; + +export const InputErrMsg = styled.p` + font-size: smaller; + color: red; +`; diff --git a/mission/chapter05/mission/src/3_Shared/validation/yupSchema.js b/mission/chapter05/mission/src/3_Shared/validation/yupSchema.js new file mode 100644 index 0000000..5a64f3e --- /dev/null +++ b/mission/chapter05/mission/src/3_Shared/validation/yupSchema.js @@ -0,0 +1,39 @@ +import * as yup from "yup"; + +export const emailSchema = yup.object({ + email: yup + .string() + .matches( + /^[^\u3131-\u3163\uac00-\ud7a3]*$/, + "email에 한글을 사용할 수 없습니다." + ) // 한글 입력 차단 + .email("유효한 이메일을 입력하세요.") // 이메일 형식 유효성 검사 메시지 + .min(6, "이메일은 최소 6자 이상이어야 합니다.") // 최소 길이 제한 + .max(24, "이메일은 최대 24자까지 가능합니다.") // 최대 길이 제한 + .required("이메일은 필수 입력 사항입니다."), // 필수 입력 메시지 +}); +export const idSchema = yup.object({ + id: yup + .string() + .matches(/^[a-zA-Z0-9]*$/, "아이디는 영어와 숫자만 포함해야 합니다.") // 영어 및 숫자만 허용 + .matches( + /^[^\u3131-\u3163\uac00-\ud7a3]*$/, + "아이디에 한글을 사용할 수 없습니다." + ) // 한글 입력 차단 + .min(6, "아이디는 최소 6자 이상이어야 합니다.") // 최소 길이 제한 + .max(20, "아이디는 최대 20자까지 가능합니다.") // 최대 길이 제한 + .required("아이디는 필수 입력 사항입니다."), // 필수 입력 메시지 +}); +export const passwordSchema = yup.object({ + password: yup + .string() + .min(8, "비밀번호는 최소 8자 이상이어야 합니다.") // 최소 길이 제한 + .max(16, "비밀번호는 최대 16자까지 가능합니다.") // 최대 길이 제한 + .required("비밀번호는 필수 입력 사항입니다."), // 필수 입력 메시지 +}); +export const passwordCheckSchema = yup.object({ + passwordCheck: yup + .string() + .oneOf([yup.ref('password'), null], "비밀번호가 일치하지 않습니다.") + .required("비밀번호 확인은 필수 입력 항목입니다."), +}) From e6d8bf1791d18d72fb16b6d67ca7aaa31cadab53 Mon Sep 17 00:00:00 2001 From: RyuDongHo Date: Sun, 10 Nov 2024 14:02:25 +0900 Subject: [PATCH 05/15] =?UTF-8?q?mission:=20chapter06=20mission=20init=20c?= =?UTF-8?q?hapter06=EC=9D=98=20=EB=AF=B8=EC=85=98=20=EC=B4=88=EA=B8=B0=20?= =?UTF-8?q?=ED=94=84=EB=A1=9C=EC=A0=9D=ED=8A=B8=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/MovieList/api/useMovieList.js | 2 +- mission/chapter06/mission/.gitignore | 25 + mission/chapter06/mission/README.md | 8 + mission/chapter06/mission/eslint.config.js | 39 + mission/chapter06/mission/index.html | 13 + mission/chapter06/mission/package-lock.json | 4652 +++++++++++++++++ mission/chapter06/mission/package.json | 36 + .../mission/src/0_App/globalStyle.js | 64 + mission/chapter06/mission/src/0_App/index.jsx | 20 + mission/chapter06/mission/src/0_App/theme.js | 22 + .../src/0_App/ui/Navbar/assets/logo.svg | 18 + .../mission/src/0_App/ui/Navbar/index.jsx | 33 + .../mission/src/0_App/ui/Navbar/style.js | 54 + .../categoryCardImg/background_image_1.png | Bin 0 -> 112808 bytes .../categoryCardImg/background_image_2.png | Bin 0 -> 89042 bytes .../categoryCardImg/background_image_3.png | Bin 0 -> 73434 bytes .../categoryCardImg/background_image_4.png | Bin 0 -> 110061 bytes .../assets/categoryCardImg/index.js | 13 + .../mission/src/1_Page/CategoryPage/index.jsx | 17 + .../mission/src/1_Page/CategoryPage/style.js | 26 + .../mission/src/1_Page/LoginPage/index.jsx | 47 + .../mission/src/1_Page/LoginPage/style.js | 14 + .../MovieDetailPage/api/useMovieDetail.js | 30 + .../MovieDetailPage/api/useMovieProvider.js | 33 + .../src/1_Page/MovieDetailPage/index.jsx | 48 + .../src/1_Page/MovieDetailPage/style.js | 49 + .../src/1_Page/MovieListPage/index.jsx | 11 + .../ui/MovieList/api/useMovieList.js | 29 + .../MovieListPage/ui/MovieList/index.jsx | 41 + .../MovieListPage/ui/MovieList/style.js | 44 + .../ui/MovieList/ui/Movie/index.jsx | 20 + .../ui/MovieList/ui/Movie/style.js | 44 + .../mission/src/1_Page/SearchPage/index.jsx | 9 + .../src/1_Page/SignUpPage/api/authSignUp.js | 22 + .../mission/src/1_Page/SignUpPage/index.jsx | 56 + .../mission/src/1_Page/SignUpPage/style.js | 14 + .../chapter06/mission/src/1_Page/index.jsx | 29 + mission/chapter06/mission/src/1_Page/style.js | 10 + .../src/1_Page/ui/Sidebar/assets/shorts.svg | 1 + .../mission/src/1_Page/ui/Sidebar/index.jsx | 29 + .../mission/src/1_Page/ui/Sidebar/style.js | 22 + .../src/2_Widget/Input/IdInput/index.jsx | 41 + .../src/2_Widget/Input/IdInput/style.js | 25 + .../src/2_Widget/Input/PwInput/index.jsx | 42 + .../src/2_Widget/Input/PwInput/style.js | 25 + .../mission/src/2_Widget/Input/const/regex.js | 7 + .../mission/src/2_Widget/Input/index.jsx | 4 + .../mission/src/3_Shared/config/apiConfig.js | 49 + .../mission/src/3_Shared/lib/useThrottle.js | 14 + .../src/3_Shared/model/handleNavigate.js | 3 + .../mission/src/3_Shared/ui/Input/index.jsx | 2 + .../mission/src/3_Shared/ui/Input/style.js | 39 + .../src/3_Shared/validation/yupSchema.js | 39 + mission/chapter06/mission/src/index.jsx | 9 + mission/chapter06/mission/vite.config.js | 7 + 55 files changed, 5949 insertions(+), 1 deletion(-) create mode 100644 mission/chapter06/mission/.gitignore create mode 100644 mission/chapter06/mission/README.md create mode 100644 mission/chapter06/mission/eslint.config.js create mode 100644 mission/chapter06/mission/index.html create mode 100644 mission/chapter06/mission/package-lock.json create mode 100644 mission/chapter06/mission/package.json create mode 100644 mission/chapter06/mission/src/0_App/globalStyle.js create mode 100644 mission/chapter06/mission/src/0_App/index.jsx create mode 100644 mission/chapter06/mission/src/0_App/theme.js create mode 100644 mission/chapter06/mission/src/0_App/ui/Navbar/assets/logo.svg create mode 100644 mission/chapter06/mission/src/0_App/ui/Navbar/index.jsx create mode 100644 mission/chapter06/mission/src/0_App/ui/Navbar/style.js create mode 100644 mission/chapter06/mission/src/1_Page/CategoryPage/assets/categoryCardImg/background_image_1.png create mode 100644 mission/chapter06/mission/src/1_Page/CategoryPage/assets/categoryCardImg/background_image_2.png create mode 100644 mission/chapter06/mission/src/1_Page/CategoryPage/assets/categoryCardImg/background_image_3.png create mode 100644 mission/chapter06/mission/src/1_Page/CategoryPage/assets/categoryCardImg/background_image_4.png create mode 100644 mission/chapter06/mission/src/1_Page/CategoryPage/assets/categoryCardImg/index.js create mode 100644 mission/chapter06/mission/src/1_Page/CategoryPage/index.jsx create mode 100644 mission/chapter06/mission/src/1_Page/CategoryPage/style.js create mode 100644 mission/chapter06/mission/src/1_Page/LoginPage/index.jsx create mode 100644 mission/chapter06/mission/src/1_Page/LoginPage/style.js create mode 100644 mission/chapter06/mission/src/1_Page/MovieDetailPage/api/useMovieDetail.js create mode 100644 mission/chapter06/mission/src/1_Page/MovieDetailPage/api/useMovieProvider.js create mode 100644 mission/chapter06/mission/src/1_Page/MovieDetailPage/index.jsx create mode 100644 mission/chapter06/mission/src/1_Page/MovieDetailPage/style.js create mode 100644 mission/chapter06/mission/src/1_Page/MovieListPage/index.jsx create mode 100644 mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js create mode 100644 mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/index.jsx create mode 100644 mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/style.js create mode 100644 mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/index.jsx create mode 100644 mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/style.js create mode 100644 mission/chapter06/mission/src/1_Page/SearchPage/index.jsx create mode 100644 mission/chapter06/mission/src/1_Page/SignUpPage/api/authSignUp.js create mode 100644 mission/chapter06/mission/src/1_Page/SignUpPage/index.jsx create mode 100644 mission/chapter06/mission/src/1_Page/SignUpPage/style.js create mode 100644 mission/chapter06/mission/src/1_Page/index.jsx create mode 100644 mission/chapter06/mission/src/1_Page/style.js create mode 100644 mission/chapter06/mission/src/1_Page/ui/Sidebar/assets/shorts.svg create mode 100644 mission/chapter06/mission/src/1_Page/ui/Sidebar/index.jsx create mode 100644 mission/chapter06/mission/src/1_Page/ui/Sidebar/style.js create mode 100644 mission/chapter06/mission/src/2_Widget/Input/IdInput/index.jsx create mode 100644 mission/chapter06/mission/src/2_Widget/Input/IdInput/style.js create mode 100644 mission/chapter06/mission/src/2_Widget/Input/PwInput/index.jsx create mode 100644 mission/chapter06/mission/src/2_Widget/Input/PwInput/style.js create mode 100644 mission/chapter06/mission/src/2_Widget/Input/const/regex.js create mode 100644 mission/chapter06/mission/src/2_Widget/Input/index.jsx create mode 100644 mission/chapter06/mission/src/3_Shared/config/apiConfig.js create mode 100644 mission/chapter06/mission/src/3_Shared/lib/useThrottle.js create mode 100644 mission/chapter06/mission/src/3_Shared/model/handleNavigate.js create mode 100644 mission/chapter06/mission/src/3_Shared/ui/Input/index.jsx create mode 100644 mission/chapter06/mission/src/3_Shared/ui/Input/style.js create mode 100644 mission/chapter06/mission/src/3_Shared/validation/yupSchema.js create mode 100644 mission/chapter06/mission/src/index.jsx create mode 100644 mission/chapter06/mission/vite.config.js diff --git a/mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js b/mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js index df2a1e7..ad8f63e 100644 --- a/mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js +++ b/mission/chapter05/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js @@ -1,5 +1,5 @@ import React from "react"; -import { TMDB_fetchRequest, fetchRequest } from "../../../../../3_Shared/config/apiConfig"; +import { TMDB_fetchRequest } from "../../../../../3_Shared/config/apiConfig"; const BASE_URL = import.meta.env.VITE_TMDB_BASE_URL; const BASE_IMG_URL = "https://image.tmdb.org/t/p/"; const BASE_IMG_SIZE = "w500"; diff --git a/mission/chapter06/mission/.gitignore b/mission/chapter06/mission/.gitignore new file mode 100644 index 0000000..f8155a1 --- /dev/null +++ b/mission/chapter06/mission/.gitignore @@ -0,0 +1,25 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? +*.env \ No newline at end of file diff --git a/mission/chapter06/mission/README.md b/mission/chapter06/mission/README.md new file mode 100644 index 0000000..f768e33 --- /dev/null +++ b/mission/chapter06/mission/README.md @@ -0,0 +1,8 @@ +# React + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh diff --git a/mission/chapter06/mission/eslint.config.js b/mission/chapter06/mission/eslint.config.js new file mode 100644 index 0000000..be0ee6d --- /dev/null +++ b/mission/chapter06/mission/eslint.config.js @@ -0,0 +1,39 @@ +import js from '@eslint/js' +import globals from 'globals' +import react from 'eslint-plugin-react' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' + +export default [ + { ignores: ['dist'] }, + { + files: ['**/*.{js,jsx}'], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + parserOptions: { + ecmaVersion: 'latest', + ecmaFeatures: { jsx: true }, + sourceType: 'module', + }, + }, + settings: { react: { version: '18.3' } }, + plugins: { + react, + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...js.configs.recommended.rules, + ...react.configs.recommended.rules, + ...react.configs['jsx-runtime'].rules, + ...reactHooks.configs.recommended.rules, + 'react/jsx-no-target-blank': 'off', + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + "react/prop-types": "off" + }, + }, +] diff --git a/mission/chapter06/mission/index.html b/mission/chapter06/mission/index.html new file mode 100644 index 0000000..18ae92e --- /dev/null +++ b/mission/chapter06/mission/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + React + + +
+ + + diff --git a/mission/chapter06/mission/package-lock.json b/mission/chapter06/mission/package-lock.json new file mode 100644 index 0000000..ac29c53 --- /dev/null +++ b/mission/chapter06/mission/package-lock.json @@ -0,0 +1,4652 @@ +{ + "name": "mission", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "mission", + "version": "0.0.0", + "dependencies": { + "@hookform/resolvers": "^3.9.1", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-hook-form": "^7.53.1", + "react-icons": "^5.3.0", + "react-intersection-observer": "^9.13.1", + "react-router-dom": "^6.26.2", + "styled-components": "^6.1.13", + "styled-reset": "^4.5.2", + "yup": "^1.4.0" + }, + "devDependencies": { + "@eslint/js": "^9.11.1", + "@types/react": "^18.3.10", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.2", + "eslint": "^9.11.1", + "eslint-plugin-react": "^7.37.0", + "eslint-plugin-react-hooks": "^5.1.0-rc.0", + "eslint-plugin-react-refresh": "^0.4.12", + "globals": "^15.9.0", + "vite": "^5.4.8" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz", + "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.25.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.7.tgz", + "integrity": "sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.7.tgz", + "integrity": "sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helpers": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/template": "^7.25.7", + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz", + "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz", + "integrity": "sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.7", + "@babel/helper-validator-option": "^7.25.7", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz", + "integrity": "sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz", + "integrity": "sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.7", + "@babel/helper-simple-access": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", + "@babel/traverse": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz", + "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", + "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", + "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", + "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz", + "integrity": "sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.7.tgz", + "integrity": "sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.7", + "@babel/types": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz", + "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.7.tgz", + "integrity": "sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.7.tgz", + "integrity": "sha512-JD9MUnLbPL0WdVK8AWC7F7tTG2OS6u/AKKnsK+NdRhUiVdnzyR1S3kKQCaRLOiaULvUiqK6Z4JQE635VgtCFeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.7.tgz", + "integrity": "sha512-S/JXG/KrbIY06iyJPKfxr0qRxnhNOdkNXYBl/rmwgDd72cQLH9tEGkDm/yJPGvcSIUoikzfjMios9i+xT/uv9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz", + "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/types": "^7.25.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz", + "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/template": "^7.25.7", + "@babel/types": "^7.25.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.25.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.7.tgz", + "integrity": "sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", + "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.8.1" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==", + "license": "MIT" + }, + "node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==", + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", + "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", + "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.6.0.tgz", + "integrity": "sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.12.0.tgz", + "integrity": "sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz", + "integrity": "sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@hookform/resolvers": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.9.1.tgz", + "integrity": "sha512-ud2HqmGBM0P0IABqoskKWI6PEf6ZDDBZkFqe2Vnl+mTHCEHzr3ISjjZyCwTjC/qpL25JC9aIDkloQejvMeq0ug==", + "license": "MIT", + "peerDependencies": { + "react-hook-form": "^7.0.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.0.tgz", + "integrity": "sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.5", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.5.tgz", + "integrity": "sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.0", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@remix-run/router": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.19.2.tgz", + "integrity": "sha512-baiMx18+IMuD1yyvOGaHM9QrVUPGGG0jC+z+IPHnRJWUAUvaKuWKyE8gjDj2rzv3sz9zOGoRSPgeBVHRhZnBlA==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", + "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", + "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", + "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", + "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", + "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", + "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", + "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", + "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", + "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", + "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", + "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", + "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", + "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", + "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", + "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", + "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.13", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.11", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.11.tgz", + "integrity": "sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/stylis": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.5.tgz", + "integrity": "sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==", + "license": "MIT" + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.2.tgz", + "integrity": "sha512-hieu+o05v4glEBucTcKMK3dlES0OeJlD9YVOAPraVMOInBCwzumaIFiUjr4bHK7NPgnAHgiskUoceKercrN8vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.2", + "@babel/plugin-transform-react-jsx-self": "^7.24.7", + "@babel/plugin-transform-react-jsx-source": "^7.24.7", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0" + } + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/browserslist": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001667", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", + "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/css-to-react-native": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", + "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "license": "MIT", + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.32", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.32.tgz", + "integrity": "sha512-M+7ph0VGBQqqpTT2YrabjNKSQ2fEl9PVx6AK3N558gDH9NO8O6XN9SXXFWRo9u9PbEg/bWq+tjXQr+eXmxubCw==", + "dev": true, + "license": "ISC" + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", + "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.12.0.tgz", + "integrity": "sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.11.0", + "@eslint/config-array": "^0.18.0", + "@eslint/core": "^0.6.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.12.0", + "@eslint/plugin-kit": "^0.2.0", + "@humanfs/node": "^0.16.5", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.3.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.1.0", + "eslint-visitor-keys": "^4.1.0", + "espree": "^10.2.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.1.tgz", + "integrity": "sha512-xwTnwDqzbDRA8uJ7BMxPs/EXRB3i8ZfnOIp8BsxEQkT0nHPp+WWceqGgo6rKb9ctNi8GJLDT4Go5HAWELa/WMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.19", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.1.0-rc-fb9a90fa48-20240614", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0-rc-fb9a90fa48-20240614.tgz", + "integrity": "sha512-xsiRwaDNF5wWNC4ZHLut+x/YcAxksUd9Rizt7LaEn3bV8VyYRpXnRJQlLOfYaVy9esk4DFP4zPPnoNVjq5Gc0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.12.tgz", + "integrity": "sha512-9neVjoGv20FwYtCP6CB1dzR1vr57ZDNOXst21wd2xJ/cTlM2xLq0GWVlSNTdMn/4BtP6cHYBMCSp1wFBJ9jBsg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-scope": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.1.0.tgz", + "integrity": "sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz", + "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.2.0.tgz", + "integrity": "sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.12.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "15.10.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.10.0.tgz", + "integrity": "sha512-tqFIbz83w4Y5TCbtgjZjApohbuh7K9BxGYFm7ifwDR240tvdb7P9x+/9VvUKlmkPoiknoJtanI8UOrqxS3a7lQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true, + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "license": "ISC" + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/property-expr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz", + "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==", + "license": "MIT" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-hook-form": { + "version": "7.53.1", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.53.1.tgz", + "integrity": "sha512-6aiQeBda4zjcuaugWvim9WsGqisoUk+etmFEsSUMm451/Ic8L/UAb7sRtMj3V+Hdzm6mMjU1VhiSzYUZeBm0Vg==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18 || ^19" + } + }, + "node_modules/react-icons": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.3.0.tgz", + "integrity": "sha512-DnUk8aFbTyQPSkCfF8dbX6kQjXA9DktMeJqfjrg6cK9vwQVMxmcA3BfP4QoiztVmEHtwlTgLFsPuH2NskKT6eg==", + "license": "MIT", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-intersection-observer": { + "version": "9.13.1", + "resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.13.1.tgz", + "integrity": "sha512-tSzDaTy0qwNPLJHg8XZhlyHTgGW6drFKTtvjdL+p6um12rcnp8Z5XstE+QNBJ7c64n5o0Lj4ilUleA41bmDoMw==", + "license": "MIT", + "peerDependencies": { + "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.26.2.tgz", + "integrity": "sha512-tvN1iuT03kHgOFnLPfLJ8V95eijteveqdOSk+srqfePtQvqCExB8eHOYnlilbOcyJyKnYkr1vJvf7YqotAJu1A==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.19.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.26.2.tgz", + "integrity": "sha512-z7YkaEW0Dy35T3/QKPYB1LjMK2R1fxnHO8kWpUMTBdfVzZrWOiY9a7CtN8HqdWtDUWd5FY6Dl8HFsqVwH4uOtQ==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.19.2", + "react-router": "6.26.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/rollup": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", + "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.24.0", + "@rollup/rollup-android-arm64": "4.24.0", + "@rollup/rollup-darwin-arm64": "4.24.0", + "@rollup/rollup-darwin-x64": "4.24.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", + "@rollup/rollup-linux-arm-musleabihf": "4.24.0", + "@rollup/rollup-linux-arm64-gnu": "4.24.0", + "@rollup/rollup-linux-arm64-musl": "4.24.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", + "@rollup/rollup-linux-riscv64-gnu": "4.24.0", + "@rollup/rollup-linux-s390x-gnu": "4.24.0", + "@rollup/rollup-linux-x64-gnu": "4.24.0", + "@rollup/rollup-linux-x64-musl": "4.24.0", + "@rollup/rollup-win32-arm64-msvc": "4.24.0", + "@rollup/rollup-win32-ia32-msvc": "4.24.0", + "@rollup/rollup-win32-x64-msvc": "4.24.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/styled-components": { + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.13.tgz", + "integrity": "sha512-M0+N2xSnAtwcVAQeFEsGWFFxXDftHUD7XrKla06QbpUMmbmtFBMMTcKWvFXtWxuD5qQkB8iU5gk6QASlx2ZRMw==", + "license": "MIT", + "dependencies": { + "@emotion/is-prop-valid": "1.2.2", + "@emotion/unitless": "0.8.1", + "@types/stylis": "4.2.5", + "css-to-react-native": "3.2.0", + "csstype": "3.1.3", + "postcss": "8.4.38", + "shallowequal": "1.1.0", + "stylis": "4.3.2", + "tslib": "2.6.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/styled-components" + }, + "peerDependencies": { + "react": ">= 16.8.0", + "react-dom": ">= 16.8.0" + } + }, + "node_modules/styled-components/node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/styled-reset": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/styled-reset/-/styled-reset-4.5.2.tgz", + "integrity": "sha512-dbAaaVEhweBs2FGfqGBdW6oMcMK8238C2X5KCxBhUQJX92m/QyUfzRADOXhdXiXNkIPELtMCd72YY9eCdORfIw==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "styled-components": ">=4.0.0 || >=5.0.0 || >=6.0.0" + } + }, + "node_modules/stylis": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz", + "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==", + "license": "MIT" + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/tiny-case": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", + "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==", + "license": "MIT" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", + "license": "MIT" + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vite": { + "version": "5.4.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz", + "integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", + "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", + "dev": true, + "license": "MIT", + "dependencies": { + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yup": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/yup/-/yup-1.4.0.tgz", + "integrity": "sha512-wPbgkJRCqIf+OHyiTBQoJiP5PFuAXaWiJK6AmYkzQAh5/c2K9hzSApBZG5wV9KoKSePF7sAxmNSvh/13YHkFDg==", + "license": "MIT", + "dependencies": { + "property-expr": "^2.0.5", + "tiny-case": "^1.0.3", + "toposort": "^2.0.2", + "type-fest": "^2.19.0" + } + } + } +} diff --git a/mission/chapter06/mission/package.json b/mission/chapter06/mission/package.json new file mode 100644 index 0000000..6e4797b --- /dev/null +++ b/mission/chapter06/mission/package.json @@ -0,0 +1,36 @@ +{ + "name": "mission", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "@hookform/resolvers": "^3.9.1", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-hook-form": "^7.53.1", + "react-icons": "^5.3.0", + "react-intersection-observer": "^9.13.1", + "react-router-dom": "^6.26.2", + "styled-components": "^6.1.13", + "styled-reset": "^4.5.2", + "yup": "^1.4.0" + }, + "devDependencies": { + "@eslint/js": "^9.11.1", + "@types/react": "^18.3.10", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.2", + "eslint": "^9.11.1", + "eslint-plugin-react": "^7.37.0", + "eslint-plugin-react-hooks": "^5.1.0-rc.0", + "eslint-plugin-react-refresh": "^0.4.12", + "globals": "^15.9.0", + "vite": "^5.4.8" + } +} diff --git a/mission/chapter06/mission/src/0_App/globalStyle.js b/mission/chapter06/mission/src/0_App/globalStyle.js new file mode 100644 index 0000000..8093c3c --- /dev/null +++ b/mission/chapter06/mission/src/0_App/globalStyle.js @@ -0,0 +1,64 @@ +import { createGlobalStyle } from "styled-components"; +import reset from "styled-reset"; + +const GlobalStyles = createGlobalStyle` +///////////////////////////////////////////////////////////////// reset + ${reset} + a{ + text-decoration: none; + color: inherit; + } + *{ + box-sizing: border-box; + } + input, textarea { + -moz-user-select: auto; + -webkit-user-select: auto; + -ms-user-select: auto; + user-select: auto; + } + input:focus { + outline: none; + } + p{ + padding: 0; + margin: 0; + + } + ///////////////////////////////////////////////////////////////// reset + ///////////////////////////////////////////////////////////////// custom style of project + + *{ + color: ${({ theme }) => theme.color} + } + html, body, .body{ + height: 100%; + } + .body{ + display: flex; + flex-direction: column; + } + main{ + flex-grow: 1; + } + h1 { + font-size: 2em; + font-weight: bold; + margin-bottom: 0.5em; + } + + h2 { + font-size: 1.5em; + font-weight: bold; + margin-bottom: 0.5em; + } + + h3 { + font-size: 1.17em; + font-weight: bold; + margin-bottom: 0.5em; + } + ///////////////////////////////////////////////////////////////// custom style of project +`; + +export default GlobalStyles; diff --git a/mission/chapter06/mission/src/0_App/index.jsx b/mission/chapter06/mission/src/0_App/index.jsx new file mode 100644 index 0000000..9374bd3 --- /dev/null +++ b/mission/chapter06/mission/src/0_App/index.jsx @@ -0,0 +1,20 @@ +import Page from "../1_Page"; +import { BrowserRouter } from "react-router-dom"; +import { ThemeProvider } from "styled-components"; +import GlobalStyles from "./globalStyle.js"; +import Navbar from "./ui/Navbar/index.jsx"; + +import theme from "./theme.js"; +function App() { + return ( + + + + + + + + ); +} + +export default App; diff --git a/mission/chapter06/mission/src/0_App/theme.js b/mission/chapter06/mission/src/0_App/theme.js new file mode 100644 index 0000000..67f9475 --- /dev/null +++ b/mission/chapter06/mission/src/0_App/theme.js @@ -0,0 +1,22 @@ +const defaultTheme = { + background: "#051220", + color: "white", + btnRed: "red", + midBlack: "#131517", + btnColor: "white", + btnHoverColor: "#E1BEA3" +}; + +const darkTheme = { + background: "#3C3C3C", + color: "white", + btnColor: "white", + btnHoverColor: "#E1BEA3" +}; + +const theme = { + defaultTheme, + darkTheme, +}; + +export default theme; diff --git a/mission/chapter06/mission/src/0_App/ui/Navbar/assets/logo.svg b/mission/chapter06/mission/src/0_App/ui/Navbar/assets/logo.svg new file mode 100644 index 0000000..ae7fa3d --- /dev/null +++ b/mission/chapter06/mission/src/0_App/ui/Navbar/assets/logo.svg @@ -0,0 +1,18 @@ + \ No newline at end of file diff --git a/mission/chapter06/mission/src/0_App/ui/Navbar/index.jsx b/mission/chapter06/mission/src/0_App/ui/Navbar/index.jsx new file mode 100644 index 0000000..09e4973 --- /dev/null +++ b/mission/chapter06/mission/src/0_App/ui/Navbar/index.jsx @@ -0,0 +1,33 @@ +import STYLE from "./style"; +import { handleNavigation } from "../../../3_Shared/model/handleNavigate"; +import logoImg from "./assets/logo.svg"; +import { useNavigate } from "react-router-dom"; + +const Navbar = () => { + const navigate = useNavigate(); + return ( + + { + handleNavigation(navigate, "/"); + }}/> + + { + handleNavigation(navigate, "login"); + }} + > + 로그인 + + { + handleNavigation(navigate, "signup"); + }} + > + 회원가입 + + + + ); +}; + +export default Navbar; diff --git a/mission/chapter06/mission/src/0_App/ui/Navbar/style.js b/mission/chapter06/mission/src/0_App/ui/Navbar/style.js new file mode 100644 index 0000000..24f72ab --- /dev/null +++ b/mission/chapter06/mission/src/0_App/ui/Navbar/style.js @@ -0,0 +1,54 @@ +import styled from "styled-components"; + +const STYLE = { + Nav: styled.nav` + padding: 8px 32px; + position: -webkit-sticky; + position: sticky; + top: 0; + left: 0; + right: 0; + min-height: 72px; + display: flex; + justify-content: space-between; + align-items: center; + gap: 50px; + background-color: ${({ theme }) => theme.midBlack}; + z-index: 1; + `, + Logo: styled.img` + width: 120px; + cursor: pointer; + `, + Container: styled.div` + display: flex; + gap: 4px; + `, + SignUp: styled.div` + background-color: ${({ theme }) => theme.btnRed}; + width: 80px; + height: 32px; + border-radius: 8px; + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; + &:hover{ + background-color: ${({ theme }) => theme.btnHoverColor}; + } + `, + SignIn: styled.div` + width: 80px; + height: 32px; + border-radius: 8px; + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; + &:hover{ + background-color: ${({ theme }) => theme.btnHoverColor}; + } + `, +}; + +export default STYLE; diff --git a/mission/chapter06/mission/src/1_Page/CategoryPage/assets/categoryCardImg/background_image_1.png b/mission/chapter06/mission/src/1_Page/CategoryPage/assets/categoryCardImg/background_image_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ca5c9c429524a137f1677c524f5ea0a4498f5d96 GIT binary patch literal 112808 zcmafZWlS7E*X|<4-K`XNTO5kJ`$Ewoi@O#pE{nTEaa-J-LUCB!-Jw`1P@wqj`@PA{ z{qZF?Imyf<?cfaX3 zwPimEJRQk&uLbHgO>eac-75)8bJpIi`qg$=eSC}%duhlY#;X|LyYE}Of0kIoueoi4 zZ=U|cW)q4bZW%Dt#+5}e`I_o8(=iR_fP!efAGPzN7(<9zZBtrE0BM$ zV#NLOluhfbE$)u67sRp|67#6udLtA2vSR@Me>>X4yI?N=lixyU%ZNMwoz$J+ZUqp( zsLI)vL3m61;l!jHjWuAz{<5_AC6)7jz|ovocMs3QQDkITlmgw}6%S?P*8RM*ruQDM zf8b6)-0RtX-)H6QcY&#=sNSA9<-+3!(vc>lDsL-3z_DbOc*4d#!q)oQyAKOOpMM?y zfA=DGya$M%=4-xwu}Hr;Ap3=>`}H8bvdd)eQi%hK%$1joF3;dzFaOMl!8Q* zlie;sFMaE%lrJaU5hG|iw*d~B|8u{ji23d&63Z?qM)N`clr;UWJst30EsDwSQla)e zF?=v=`eSz7`Je*x+`3*~KD$}P$X7iJ95tfsJ@+=c*tiu8LI&l0342;UYau(bKl8a1 zDicxb{ePzU-?8BBzjc9p*w&jovfcJc^+@!`z`d@JQ*U!}jI`eKpq~A^x+R`Z_TP`b zJezvVc@tfZMl7d(Ry2MZ8R@c>v9+ZN z!lZ_)#BX;Gy$1rPD{cX)__*%#bt43J zZg&1Zpc09j|c}08%(OLnIG6sEXj9ehi4_ z0L98VI+|}A$JYbi5-)>H2eLr_hag0Frwk6mCLwHah~Qcd4_*mTR2MqGkcL#m9Z7MR z%&*iwaY1=6QXkE)jomJ4;v#dTmzGpt5FoaLq19(VhI_2shKA?~9t9Y`Nueu;d*=QY z?#&dHt*dCga@@xE-NpzECP0ZRXR#eTAy^)fiut-17QuLMpTRng)9h|Lm~>L&rW|=* ztth%!G%hn^YF$80eb^m!3cZ*{lE)aQO;!2HB0W?(x#C{rRsWl!V%Kye0yj6 zm>Z3Ls3+%_2e!>2ClD9+q70UhRY-SgPhyky%GyV{i#x^_#l79c@>D2NYIzGCS9*_` z7FKCvEVSou7eyD zVrFZE4Xp|X2*j6A_#GCk7>t>Sap(@A!6lQ4*i_@?J0Cq4Glqk+;TOck8+xDrI`HAu zI^X{aOW~W(HM5nNkWhz@mz$egLa2LK)8Pv_RI|WQ+3p$~W7+=2H%-~?Fd(_TRl%kaAx1*J;20a9^rxX*bfjyZ(-=pG-ivFRlK5T*XQ#3=6Cd$xW3xZHE5 z>iqR?3BT{1m!Zv?1)ld$#2`YcTp)3<#h0n_?c1KfyCOf9@Tv5py*-*ioRwHOW<{E! z(c7}sqCX{BZ_z+qS;qlsAg(4;jMF_PyHtZEeG%^=7oz12_cCm_DZwyvnkC_plwmwf zuhi&z!z8&v&H47V<+}54kgJIk-%Y+^$t?3>`aU1i&rX|=sBTS;sEW}FeLJM1=878M zV9#AK&QIv$CM$j^koQ+DsPsc!71g5hP##|>{`{@h89s`~E5?kWU2yoz`N zS0`ciZ>%;w1q$g4=DCCj$V^TSoj^hWo?crbr`)@P&CR)S1LB=Vz`$g+5dkjv;D zJ{ibD_PZsxh)aqxYYm4%&)2IMQT7jiUfEaOFH~|)8-iWjD4OrW?W_=YRLr1{V!!1+f&)tfy$+n8Kh$XqsHkXZw=8Em{w|laU5E zS@1FhM~}4YOrWNK%0_sDS_(L73$Ioa2ECCi0q!X~*N7I^XA0^dV&34GS{qc97=KY* zCcumoVB?I)Ca7=?aWtfJCkUQOi;#2hU0o%V3WR7TW$ai6#et)9v09fU9OvB+mZ5i% z*pbMRsw&f`u!>ndGgccz398|uPE5f9c_LKU$Zp&krO8o1|EzY;FceAfv618Nkl_~D z;hE*=(Q}2{2=?1v_;WM~di@w+Q%TFDVj1N9C<6FYqKrx{lTsSHPs(Rya^$6Q5X-D` z80Kf7I;4`=v8ZVWJ1@hbI~&iGqB51E)TXY4ekK&N=$w&lz{#l%JI++0B??D`G1=Q>}Dr#0s zFqFR+$W!a6Y6E3waN_E1OH#&5N>$932OWl^&t$*K$Jo#!F!KPpEh#P>Xp7}1(aF@I zgzDt3JXX&6R1i-&8OUJ3NYKMkskVs$E3PBz-yatPADo{jw_m$qe*mIKlvyO3oZyDrRSD*Pk{r?M2WrAc@JL zwySY)QWqburdlaZ(-=u9Bkhos3@VJL33|D7(PMO)H37B?X#Wx?--K%eNDr%Cr7~=z zGcYF1x{fWuSSha2Tm=0^0m02OiGiOvZ<#@brYQ`7EDa%HVNoM}H|O3P$J73@bmZwh zuM=@e*6^I1F6oxUtc-V5`Y+lmeLudCGwiuB9!uBQpK(xXi>C98iE4+iS*7t+^OU;U z2PGjVf!vOSm#w}#5N9$sGg6oOn#+II+H>G#M1vJ`8_1*$e_21Srlt5SV<+bZFXVq& zPc+WUs+Zazj!$3eO9Jl>(UcA6rH7M?wIT{}g^N*^?dpy#Vr67doLsZY8sK1#yb4KW zb?^?PIh`fT6Y%UF9j#8((qv1BKx0~{B%SbuRAi}VhC`$vP?lsJ)neObyT>~v=qXiI zzmo^XwGY!)hO&6YOsK-m4L@#LJr2G9qh}A z7a;yJ{V*IQkqM!Z#joN^(U;R%H1P$jU!-TLJ8zK86%18HO_G_gd3<}JZbFH|gNYsf zWoFbQu{c;Z69EDm0m@v2a-qK5>xf*1SMa&K*XN9o9!hu2O#KMNAb927nWkTY#X19t zcF`!B^zNx85=sQ)C&!wvOs^9cf~e3+H&x4nBYHhcG%xiAk|nOENQ*k%nk_#wb~_ok zy#gq>T@EAxlml?9r~@NWs7lQ?x_-DZl^IJha>$<8W1Q!Ce^#9e@?a6N68%d zZg|witX`cUR$o(5F=(_}g#rP9dlE@05etlk9zl^2qV0xm*0iUuQx`TYZ_La%_MQ+K zHD*&6CrBDwKQZCq(!Xzp@P4~*B+Vp?v?cIijn-hY^*|n?tLH9E%+no@en+LO*HLOr zq)8R7+BWbjj5hB~yUnTeBeCRHXYF=8)SxhWG?FOzA16m_pRtfoqGQXLxoB;!)W*tr zBtR*DvN$sNyzbn0#VzAuXyVGgM4z?gKx1i83gw0u5xukM6>Z#oBeKP72#(Og> z!q7)ptiFhq$)#6P)F5E^!9Z(3;SE`c7lb3iPc`PPm~yFA8V|i1*Q<-yaMq)+E>$uW zd=Esx5e=(!q)M><%BLcTB*B$xKqMY3T>4CHfpi?gWS(n^qN%TwCWLr22>%uEW~Vji!{41c0uYw29$!LqnLN`C+M~kF6beNhS7}9ZPIqxoJHVVMux({ zezejxm!cZ=kW1iKCV^&qP*Ae$&2e+?9hRb6m0d%XEHw&FN<1Xggl80~vD$Xg00*PM;Al zFV&@{Per8DB8u*)`fZoXGivOE45Z@~>ePG#ROfX|Nq3KPw`A<0#k9h}9q-A6rV zS=?#9`^#_F`PyU@Pj4=TzGY>ne+i}EE3Q7BoB(+{aEQC$4_!wz&5e3m^f_pp%+ZAK zJ}+nc*!MSJ?BIPfkZ3%jjHDP*0Yp$!GvjL(;2;1iXPnv)OhstX%*i4TG)&x*k#%t% z_jq5vXKe}kjfocYN!c_>ZFBg$1E6AsrXTjnRob>(#93DYuPxKso)>;0f4!NTG#(i8 z!BClz6~NSCof1XIui|7kzb~D9M$N@8Hj_@EkmzC1Y0a@>Kzw72JWn!8Z@bD^_b>)j zGDTMNXAY#{0lMG?oHwHz_J4U~D3D~szA2VXW{~#Os4o*b^B2%Bx0E(P@N%2im72q( z@6o(Ll&Pwk??|Mb|iPP->#D& zmj3NFc|6QP0BqWdeweUoYW26O(CkdUC>pDkFXbh>?Xyg324(w$>l%V`?o*-0<>rAm zZQU4T64bIr4bixKqCp=DX00uDAZ81ri*(7>o4B^A%LKHSIMYa&j+gN>GzR}#ZHTTp z%?G46KOpi%wMAON^C#mB%wU&&_yo3)hA>I(m2ULE^m*8&B1h3jSzjg5+qt5qu20!x z{CF+YUE0o7TOzAE<-%ZOWMrma?P89^@P1o}wemavjJ!9(!^cp=1ZKcry-5)lxiwlM z-drEM!ia>d5IxyMi0=PUUGsSlOs4xGV;sAF!B4dRu$!>W=v^3g)~!o+c|1;>qq?)Z z<-{O8AGy(##KpCl0DZurb6I35pm{%^h)BV*ZjaZurY%QJE?3uB8yD!*>+AIrC8X%} zp7gR0xDJDvy$r(WBU<_|A8aq!Sa75iDt&`MkIk@0Td&xh@p^nppM=_@WM&v%HRTU8 z+$6`PlhswPt~lzjTiG0UITz*TzjrgI83`;XqNB{%S1fgtR zu%C?H5!%!Ii5t$el4_hwXN*b1|I4pylkCb#=zikE=Z!{D+I%*(O@`?Q)%c6G$`yp8 z>7$T1^49Auj!|kZRAKV((=>v5hw3kjwKv~V&i!h8^of%Z*qam@Sl(^jcgIJVlacj& z<#yqDKvltt6z;h(P~H}Mv_gnV8tXu zpxV#=wW#Ylla29*RZ1QdI7R6AA3Q;S&~je{t_82$LGb?I3zrae%z)uK8*Zid{F@B& z8TGNVQ2o^_C|jfd0a%a>LmFEC`7P>&`ianxjOy2Rn!-X_KZQv}iPbr7QBkXwMD(nR z=4NaUao`m@Br@@HmY^iRm+sf4oMvt$KW@o=#t|pgB z1spFx5axPy!c*#x1EQ4- z%^TEHw+0zq+TGNGp0X;|Ox7!98h~}bS#6wU=h`XAlTq@3=*ymdHqW%BWm=9lH3j#jsZtJK&$Gtp!+ zp5r2S5@!guD}BXB%-qQL5FHQ6Pk-k6Xe*F4oVbrAR0~T`6ARYDv{4k zf`4U49m2uF9)Cw)iVpP!Q$nMvq?I8{>d{tum;r)EBQCd>;V7ydj z#REnI{_^^WU*d*l05Xx}=S#bPAu%3hChXbrtO3S1S5gW_NN;(LYF7;2a1Hr>b9Oa9 zKL5lwIbdTd(0SIm=|n8`DW#tEi!%c0BOCyEN)8@BL;2?=$(4JbMwXqO76)7uvLZka zjg-?}aOSA}joXmMP!l)Fj0E!Y;6NrB!&XB7?BV+1N!-NBDq)J~bGDY05-d*c=avK= zFmhm`VR6>3G;k2UGGCKslRBpVb!7aWlAG6 z+onkSz-d}r6BDk&mrmRPFsLG9JNm6X@_csfbT)diFu4zRKF!!N90wxAGFKZ}+>2f} z^E|q@u9;r7?f@gw`kZl#K13X!^|)1J=w2@ngdc$$_MdyRNjQ+|zRl|OEthi56-lKNTO08qNH+@cXDPD0aLVz)#>j1s87|0&()ecy? zPkqAW)pi61b>6*e61zgCS^X|nJj$f!Lvojt7N2CY#X&k&8Z?w!`Sq%R$6ShNA8 zwc~>@*_pLKLDjKgmEQmha0gacPsj5l#pCc#{C~b;Xy@P)XC+53QyNT((!*)XJ<16A zOeQ;SOivv^Ule541v62-)8Dif#E(l)y{w6->4hU4>RPJx43&-y7*pccMKvasqbuWv}m4lba^Ak3>k-2-^0vp`(K6Nw-tMYkoVg@uh4R&7K~+srC7tjO$P ziw1|(ep(H<#jbLt!H8}*b0$D~SA^lNEEx9PtYl;T9#SF9eI#rif6Qk}Y$hZ&>X0#* zcqz3Mrn{Ug&P7hl&wtZiFgA`#uvEMYRI2qV^4W}W)v_p)rU}Y1(6JE4C4xk|nR4kY z)Q!7H-%E{t4rPyKO75d$smYv&#Q z;SAOD(p_4Ulj$Q6^aFu(XVG~BI4th$n*4E8g6iESvlJF6DeeS_81(J#aXd)sOJ1k2 zxs|W3p$s1U;@a~AWZ>or zIEgtOQ14oHwnpaHDo(l%)1vs`LDu;!6e9bxj>zZ(*KrRx#*8TkI|h?X3Jn&tnLPv0 zbAh%i7~_#I!2G+{Z8UvQZ1HMQlSB}Fa#KK+-I$atkSj&q(jn@8xMjzno<3095wJP@ z_YYy2)o_m*x!~d;4QCX+mMfda)o(a$!syB{=hS7?k8y>vbP%y_%HeykI;4cm)tld9wXeh+!8&*%)`_;En0UbD>qdz>~H^PbDS)q;ns z%#FTi=mI41+|RF^2>iz2Ofom;LnzGU#oum$|)81S!u_`?F`(up7-tB z(NlUdG~!3p-^C_bp3UZ4u0K6EowZHZh8pjq`I*BcR7#YeH_dc>;{8X`K5Hs=SOZJ? z<43*`!>Rh(A;gUGeU1TWH*qli)NmgFR*gFSw16N&l+v-I-Bh$rzkJkuhtHb%;NjkQ z@r6MR|hzMzKMxJcLsbur_NtY zoV3tyvn3^)`@uGh%KZ*8|D^736`vZFjspNRT7~O1+2Llzj*zFBXNNE5|Ftp4Ps(jd z=+-wx?&h*6cNS(~2GebL(z>EGhga~NbhL%ntAo!*c?z=SFu+ckqUVRJMv_YZXEQyT zx0h~AgBSSr2yCH2IYH%c!*z#Ogr$kKf~|G^lwL62u9)xfFe-Pu4r9O(z|N1t?auv{ zOj`3_{5RKuXZ5bRvJ=C1NU|L5gS2=UPAm+no=iLg|V~LZYy2(`o#+yaN#cMV&^k=iU_?_TOUk;<&$1S3ng3$;rkI z&x0KuC?iVQv__+DC_q^XY_))Prw8o3C;AzliVoOibHusiRM4D zVgAng)MQZ-@LjOAl1Lt|RhqhLEENle^l^O4F-{4c%mT?C24a9hBQr-LL}KKcggs?3 zQ!%Py$&m?@S8}D~3r+Kscdw;QgS5}akB4f7$ggQluu#eD`QE0GI7Uw?`@=s7@Kjko zKz-KrmI5Wx+l(l3_0$5yg@aDI)tm0l-^h&f8W_XDD_^Iy0iPscP@3G7GrUNfSt7^R zWf(PgXa|}X=ETyPLB*#B?kPNK^D)hBMPPbVZP>`S7C|HhtKl=2Hp7U{2$1y7{3#b7 z3{8fJGjxqRoqQ^eePnI`ZuOi1!xD-Hk>AQ!RAqsZsnu~?C8kjxSc)Y;RO$?5Yx;uM zsJK5e7AXaT6|GpbO|q%EB!9iGM#Og-w{9}(QTJVougykN`|5Z6KIVY))?fEgGG#{_ zA>o%nOp4C)926p4PH?6w+L?=0|5++TO4b#39bI~VV*qI=8I zp{2?{ZfC2E4$`-!K!^^o#Tkg#1?d@;&RKSUrN;}>g^6L&3=1-0GFLK$=%Z*mieQ8? zhd?T0-s5IA0_YW4EclR*8N?kEi5sfH_0jmraSFUvjt8#tLe=aPagUPJXuyb=7_njC zCP~&WtME2%yF|-}Jw*7n`PCo&VB!2BwIEx!ec72TOO z&TqGQ_tke6@R#r9TcL+}{&KT>CA`6iG`+%w^%G!`suI6{yr#hc&d=PVcFL3X@Q+vlco}g1 ztbc`Mw%lpaa9;$vbcA;As%p_3;q1@c4?1l4V$3d$3x1Z)+jANTK%pp6Xwa7BkSqPk zo&F_;D@%E&0IHbmybpX0!&|T}{aJT}%ojTqpieNmT~S(L&~I?pVT{IJDoM24hm&8` z0>{;l0ibAIcgM^jq19BFo7RiY63|6cO0JOGQ%F*ZkFlLTV;RboZxfRVN z;PIz5zJCthSb1Qxk~h@z<9;&gFy-L5h=NFInAQ*S6_uU0rsgVw>){orF#jZ;6Qm)T z%I(MH(9RZK{&ORfiJb>$SqV*{5Wgo79d2yVbIzr8-Ycm4pu@}2wtcOpJ zhGbk1U%y=q6ZVhR|6}Isk=A9nNhLcgo){NTl+imnE}n8Gzi$QY=csQ+n0;+G)Tedkd+CsMH7l*ArTitfkjXJltZ921ucMYHt|WvYGbvPVK+=ls z`4J^nPR1dqNLQbi^0mnLb0)dyoVSep>#>UYd2*R9`e0kY3hFLUL`G&+@xY$YJajvs zOH2(qNy>^Do_3eg5u;QB*>kYAk6-d{L@E18%P@~lpJXblv#3B0r{Gssp#PosTK|m5 z;w(|Rq7ohJ`;|6Z$CQMvCOE-SIn6^eNerJKgh}CjWCT#Rl$GpA1oEI4(DaPb+;N(i zVbI_zvcO=`)yk{(8zv%QGPKJ=9}fPW&k=F{RUwz<{5S;b9GqE+Yt$O0;$2JL zn45jNCfXO0YYPvm$Z1RF`uIi%|Akv3ReL}wkxoB{AX49Faj}`YVb_RDsMPb1=59J|K zeD)i7ro@fuG0pikGqP#lSwyWNXlX2Sx1Oo0TKoJJ@p2?g@W=z^ig;~;J+0+<8jRY! z20}`B%qkQ~>dZ|FJa>J2AYiS$r-~#PGLAirnD@Zk@uxIJ8tI0{#Dkc5P9?s9$qEcL zVS)vSJbacaId{{u%xKV|=98O3y_+V{&qmjn^(Ch({FPKBYC57@SB;Q_E-I?>m)1(> zbPu<4x5|#7fV)^fFRD|};G;v~+)xAxGla~tKtRo4ZA!?vnl(M^UkICwQCz$7cK*-E>%Z;0l953UO4eq7|h}Sn^kH%~+C=YGlNG=j`PO2`{Apc%mGwy^BL#!OG zM)_4xCzz{!CwJKDY%S)pe1=_z*(bNFLKB5XNt$fmgy;0LE^*y1PE#48 zOV^NRAVaeTLt%WjgqfX|Ec;5*Ch44FcZu$rI?RmZZsjIwG`V#;k9dNrMM)^Y+x_zZ zcX7x!gYqZfAGUgESt@^ysuWFlcq`UL;|km0YUMNFK8&Hrp;js?O0tEF3pWZ99Y&(B zcdus5Hq@{am#+LBFEo|x#Ba{@L2|_KuT)f0C?0cg)_mS4A2Z69ej4*O0hd*W`Xv|Jp(bDh@py6K% zJRFG0vJPb1)+q8I6J%cB1JBeZf57!QdC;5Ya>k(8-enn4PJ@s`aIdJLi>Nr-#KHp~ z?TaV~8E2pGlY0|7T)j!O^A21N?6^M3svAt~w*bTZC?#jXg^_pMIl8ZOzR6sq=1)sDikP@mZ6}JKJT5?4zAeWIF{1~yV5feS zDL1w8RWIBbTaT2?9LpG{6h9CzH=e~~FAp^lbZUa4)t_{VVGfpjio-BJI_2O#?vM#X zX^62Q#UH;emNRex;^EF~n4fqY{Y6NsJ)=`BN;1x_Pk9o$lErFJnyEmcpZNQ5jm_+; zHrfdbeX5Pst~EGmF{=jZ$C$=wN45oGv;?{u&=R`r%$@`(6xu3m$U?YrhYD)p^D3KA zAk;*Z{OD9g<_i@u4Id(A%kKcA`UId@%Ib#o02&Yi4;D=S%c9vcUxc=`PH;5;HkY95 zkUmewH>Eyv-jm=c`@?+Yv?t^v(dxKKOMaK1k-ezQoNR$>al)wR(zN_#hR?<~zT(<` z6z_WZkHZ`d5X||`WOwiGCLfb<0dC5g{<*8&cksZ}Ci()RJ~y*Jul3o5RONZZnu;o# zApIz5U{h+zha;~2w!X)FCf+PjdCqV`J=}LXG8PyhX+AU7bb6s5jqyktcE201*ktyD zYfqG7k?6+X+o`FhAmoND*Dt%Lw9FU37KSKFq3ZuVD9THup+E3vmOVBptfk{|H=T``&Rfc8AL6-a5U47pkbSYMot;9&)_(w=lvA64ifi$AOnb6;}7fSFp>-W)zHdV z)kPYJPHL*;-fFLeY>&pdb(&}$`az3{-I69vgTV9bO6RUnd(q}V+f!xS6O0k1vszqXEQBXPrCMUSBr>yn|rqCwlKAf<^mzp4E-?o zcffZnb(FD1p=_}DmBYfh?8fCIj{G7sPs*Woj!^!?ebFaNb7Fns^x0GqV3;vkh&!F* zqZt}XdNfrj!Eh>}&+7aFvK*WT5uBe(q8IVLQ`P!xAfdG}ff#V6$wDSpt?MbFSrHf36k7Q<@eUlk z-M&EPW10R5IloI!el4OeDU-@#7l)n24=If4{ikTtqM2SsLAv#4Pq21yY zg=!Ba>1Qqg9eN(JR&wu$fA(a_MtNLdWV7O-F}+r<5!MZbebrD9zu(`|ItKad4hc*l z7eGUm6G<~izzD3D^cvsKx>Pf?l+x-LnUvap&z%t+_x?Uie#qlGeVhof4%I-RK3>R$ zXdfZMa_@XkR@C*imtS>mhy0LoIic?6z$>4tIQ!)<-$1H@`G!1mVMQS6eoK{Vp7q3w zUZGiclz$HC7n6X8KYw^V@=8*bB`yU>+tQc86?eBAm0y|jBSSkA43L+-6%{4%p-wqIT4}Q2mMJ9c21~)W4I;DBk zBuz)p+&Ee~nVUzud0r2b9VxOhjn=_rer916ymx=qc&!dAhPvEaRI$7vQ%u&8b@(XSZ#V$<4mg*}HXr2ge?88;?^B;ZI zLgjF*9F_2V3!+hCrK?F=OJ=P+(_&)*BOH&v_mzx#e)tC9)F9um{TR39PZcg9Ffv*J z%Z(2AER0h_oBF%%%ng=|0h9=<9{B0 z8(SgGfLBa(^~9en{hhmJ25F4$GB**lXU`^ai{(Dycr`&l8XxZ?+TTwj39|;MX?7?Umi*n}lN<SBxv_$JzPST}e#6Ar&(G4{ zk^4#kk!ap=9n=oIgO!IBps})_^ytJ{(3E%5yI0d>j_|IbYg~G@`2YHh%)(!ltX<(6 zIbG5cM@}_fJE`LiXdl8>mQ_Cb6Sek9%$BiHj-TOq@SD%Y!xlNlumJaJFbYpnh)p%p z#rHY_Ch{w?p87uawLR}sCoNOOxRvIkqHM|Gq{~&K90hJegFc~8HI=Mbr+td=?J!x8Jw zmy$bixQ{kl*yG4j0v_fs6GGD^^f(6EK2H=MaRDfjC|&?a_PT)2C1H6e0|=;}2@!Bj z0V~)7!0Ku_vE`WpIg^_oznCviX2o13XTA{~8|y8SNY!LfN)v>n`ljeZ|4u zAGrI?jg1(sp~$-x?eMe8d2`TdEDwNdjE!SaL;IZ zED}YR#1a2x5*E`dqW`{75cJ9IAj_uNVw%v><*Zw&2#bW>4l_TbOw{~(>9texo581a zV)h;6OZx7$j$;*3S)-4dGQ4XfO7UXMZUfytP&~7QyaL6C0_?q)AtDe4H3qDb+t|2D2j}O%qNnZJ^ zraq96RMnj+kw&3 zHTw4aC&=|UdDwSde<~dKhjzrl#Xn32`cCU?5|gy7EUrbiBu(q<;J2S0(#VT59ltu- z04Nv(P%2pZH@_&`WZ$hu$_>@UrYJ=i+o<3hW47vg@d{y=KAsBWs=MYaAiQ(Nkk*1! zMs<=z*|e=YcGiACY97r_FOpgJ0BNIgaChu2K15us$^!Ic08As#w!o|r zoYrV+dYZx70T{q?=R26jic*VPZ)k}BcZN2uG|m!l30xGrStCR6)Pt_lAaJXwj=!LHdYdhHQUcvp3OWxu9JvKa5AB)ORw!JUWBHxGMza8M@EV>P>v(z2R zzLdo=RW+Jm_mV#{<%PelkZ8dIH%A9gUuxp~8|@=8);|aPgz|44QsJNvUTG-@KcaEQ zMH#k9*M5@oFN0ywUuL02R+RStF}^E={0%T;Oh-_j&--<0n)txWBWbI^j5NW>0+6AL zF!lNI!vByBbI%qgRUR0ir)I#a_E0=O{RSt`dn%kEcJj0PEhD7DhRR$ED=hguJt~p# z;b7Z-&(L&gG)kth3@W3^04DkY{852##hp(S%~ljzmMyj(daTi0VLtO~u%w@YL9Rx~ zhJ4w?BuN@QGfSz|TbyO!^LhJz$q$m3sm2PmdM$f^Le7G~zr-jyTYc%GWL}ysV>CcW z$Rc-kk{udiOc)i4_UIi6Trd?L7sp53;HEqguJ!9f=7KAVI#TJV;UC}>wBZyjxLckR zDcrW)uk$sn?BnK=@>sgW{W&q$O-jWX(7;sd+>Ea%ObxVz8O(rWf3cf`n@8&?I6(6x z77-V@Z@`kjaGaJf;NJLG6U
iBxw=T^fIEI|z+rjxHd1nekjYCzn$J=u~o1l;Bu%mx`khP;_a-Na*Ik zA1V7u+KkwhL1vUQay*JMG1D-e_}Y?|#xQDLyP~zmMiztTm1w-CU9Zc05M9QQ&8zm% zE5FW@7;)tI9;L=?(Ws@?rl1ue>Y(w+*X>B0FeLyMP)W2h+q-dy7#3@%m1m-szxL(i zq6iNn9sA-$Y@Yk9gCNFurf~yQp)n9bHssf#rb4I3kN5%>U#9iM2J_z_9;--iLU2?p zOtF6_m#(>!Ok(?Oi@OrRXUo7x_EEd@8l^maP9nz=a)@jeDE*#AdU~ruBWO}C+%p7g z)caYuRHE`uqXb6}JuGunCD2~DjV}f_P2qOZYW}{bLM}$%R+KE+&SQDx7vx>r<+QRK zxIAEEwXgcs!&dcSc#Edc@1?&s9gqmX(~vT(e0;EdF(RhMZ`2ItlH7wr`)!2=fMnCC zqV+?Ixyyc^uSc&6f}#Zkd|rD_d353 zqYX|!ku$n43QUxPTIYtp-hF$BkR}kcP&T$vADTFuqh#A`sHp!{_3@xwTB!g2M`nyj zGoarGF}Cf}H2fcNm}h{)nRjbdJY<0N?{$^LuIUtF8n|4V%k!KzrKx4+jhTy?qrkxL zqC?T8bQXmz4HJFkBlP)pP%G?|5P~vOwk2aCSUWm@p2s(5bD4|RoKK|r!NDQxvLaE@ z9EqxePdemekGoxaJX4TvaoDrGsT_Jo!xKttvt~#a>l{y1LI18 z3Heb9dPgI1&C?7&mKR!| zoUdOb;vDoAji!4*pl~m^7vta2oS~`8+szci!a8)HKIX!bpuVloCta%P;&vpkk779Q ztn{^DQ`;>_=!4Vm2G4zF0#uRlZ7&(PI^N=O>6-K^p^!(CzhmKz_?9`DO4Lt1h=NTD zatOm>mBN38JnhqnWH~pNs<068i%6t-(?G%9G4YvC`Pc958>}bC>s=6+^_sk&Xojo3 z?iT`FVfYU1NAGmb;8dh~$q$W!Ocmmh%j zfwhCg9xicbJcndoV?>40&PD=dn9n?Xv z;9`4&wZ-k82OFKUYyo@1ItrzL4v+o)_xSMkCbQz&8_RnI&^*__DA-s=+{3^X+E&v9 z&!(S_ip1T^v6jj@wllV<$so0#>3GT{2Q99U-{fCAtFqh|oue0+FCgfY{A?X|Wmtv- zr)wM>q+u5^jX?I?r00lW8lJ}TvHmOZzE@W%j>_fb<};^HlDnA>Xug)@1!FZQ0I~dB zO?Z*n-TDC}SfPaSj~#~BL+Ope+~8Yw_D-rCO8acpiarmP!MC)FozAZc%e+ zwI#QJ+*n5gVsrqNhjE4@2D@Y_-jA8$bt?n;2G+NiXFFclF@zR}aKCkVkBV zK$R%|rn;?UAe#(m-tKm4QAM<$eaYSDfe)g_gifB7l&I@1;#ipS=eSMQSMdy%58bQ8 zykXq2Y%`{4ftabO_)s=ptE+{rn5D7cW*ZK$gfvZmm4$n0rQkjm{<0McmMULe7SNq= zt9SeB$rjU!_Aetv2G8a$80tZPQ6! z#+Z0wUyAp(Crd(1CHdFJsv|#nQVDb*Q5cjuvQO*7hYB!}r0f_?f4%?VJEB*T^8@)G#xT633mSEbZZc}#G3SKpZ zsVfpWOtefZs}hJAKjaEV5wTC6|6#{kDNE798>2716E}Yj?NByo*!H#eUzhz+&;8zN z07}Ea7BYkVa&l5hhnp7g6D|ygVGM3{w`)|SBz1%1M$3(NpWG|?CP1&Dz^;v`Pz$As ze+?S}*Rxc(L3kmM`FAW;P0ODKH}~)rvcD{z#pMXsn6;#rJnb1(RxG-ll?6$3r`9a= zA)N1FAjZ(pSzsCJoF2%^LR_AZ64%q%nq&mlbdc^hZOBrrDnsMts1$O}U@3o=T_d;O z(z*8u`(J!k&|^HS2;aROnQbVy4tS%3PWY5j;gEf|n!TW+&BSF_?x>0H@5;8omnT|GDdQ6`R0H*;Z!d*j3pr_D zQIU9Es0#kChH?-x%TJ`Led;H9mduD1V>iiORS!V1A1okTI8{SA>Rus9sH#O~G4avW z;b38NA}t~u;N07_lygzlq3_8e5>5JCNma(oOsMYjZb2@;c9JFjoO*9jqV)=;CNe-* z3W)%4cI>gADxidrEH%(!9E{g<9!`cmWZY#mLy-UyNva$}6>qY!mG%h%aRC#VUTftk zZ~b4xVhv(-ZOELim{ko zq!ft2u>9#z(?0U}yw-n8h89smc3nrFM%g|BT8?I6Vou&MB~tbMa4z!p0%SGR0d?pa zOkIvTo6|zp1ey6FPs%%-u&}r>f%3`MQmLV6%naL7r23*f(;}_ASckTFp(RhPnKN=l z7aG@?2viC=nDaN0nu$hLIWX&p=z)p5ZFNO67Sbk7s$;o%kKkCVJFG%nDdd@iVN+6v zbE){+V-gSH9@OIOU?<${5FSfb#9dWPHG@T_F^6#y?6O~=^Z+c!V^>;e;}0>8ynHFn zss%xf?OQ@l?k%-zFEUQXXa8T$55x8v42w!30#Q&5nE)p>$2=hwG8=&EYBjVg_5v!B z%Y^Dq4W|@17;3IQ5BH!MFy5btLNJHiY;9j|?CeEMRNVtam0LmGOSM2lx~qN(?XFu0 zbPSOLM~&$UGmQF6OHJ*k={kgJ=xbqQ(p#rD`w(L&{Gh*|q$M$zwtiWAcJUszcpP4+ zo04B@RXuY0coo)#;Df`#aD53qEml)^uMbSVS$HG1^~gHh!)zEPtS~VJvU&^v9H}N% zwenRl#3X&~)*5G{OB+vDW|yNGLW~)gxfl^A9cmheF4w}{>$KjMhs^gvrZpSaaCBu# z?&0FsBf1Cs2WKFxFG4}+d+KoHK5G)EvS>r!^HSp5J#g&QDlN=^*6%sH{1P}6#p{73 z2=Vw7go!Z>skg&d{K^}xR@2%QV=~qnfJ!2}hh#MrryiC-j=5dS@XSPxPs}-Q57DEU zMWOz=Xj%wt|6_|_#0t$n_PA5!b{uN0%azqEv)Z=P9+s?F`v-Gx$ogbjJE#Vyz zrIb>inAqZRM2?oS@6E8hA4VQ1W#8=(LP;gR9DXtFp?G!&m^4thY+_kvI~Jpk<=wMX&qLq))LVhM+iWbj?~+2BGTQ16JW+5ry-Mxk>Oh$KbxmP% znY!;@)GP2jORVQaO2!2md4wsNt_MX`Mbds}WHSaVnvo~kA?83#W}Z6aNcj>I z_rtdusFb{5yi5ZQ>O>XAZ`v)O4nvNh26BXUPRqdu&Gi1E^5b({W1K`8#>1spdxp38 zeGP*!Nn){x<1%+#PKD6`i}Mr}3yff54qP*DRwkojoQdc+5ePzz!M3&UIRyI;?p|14 zdz3hpJrf@h_c0lYW~-#p#pNE}LsiJkhoq{Ns`;W_0Mam2;{o;(jLKXRvxtNkbI7Vo z!?kZ-X+bArX&J3D+EI6>)a|hj#|IDLUmiLE$oMhe!D<(hOqwv>TMk^3#F|h%<-S$b zFexRmoRsYBR|+AkDvYX)U1rR^foptwbMZ|3B!Q<6qtkhno+rO9>@HC~c0{4_an!VF z+E+Cw7FixAKuqp6wI`Td7Mhwfy;>N2&j((x>PV-Wt$32Nx`P9&nQm52@LGD!!^3QDlM%Jta)}E19Rry?VIwtW=&kD-Y;Gy$Ge*T*9&~6VrER; z|4kuAVpgZ|L{X~@@iQu3VeNcfQTXxuB}z~+pw4db9+|*)ttN}+n*7qKp~gx1iHzco zjs^fnHvFu|>tGn%>3pdu3T!X#3*spqOI(*Ua0{dO0iHJjF=Aj>W zW?kH)*2KXaeRHet2`cu#x5q2&@tckzAewKeUE7@hWVhSdMe-wgNMP4B4e8|MWJp7! zCvADpV`;#H8eaX}qN)cV*eSFWP?}?zTGRvpVuT?TjK(HyXd8{ z8YQ1=9h;4xFSdB{= z7n3=ND8y*vOf8u_JV0vF?b=U#86~)C0&o;_S44P`5!d2XL9K>g3;?!64`5G8LjScs2&8Nm@9f6e`EDCSAT;U}M*~JS;tI$>O$~1g zSF_dbV{psgW=p!%QH(GFkib` zLDT+ZrcxhqOjp3j71Yc`%pn4~^x6apJ0nBiGY3iHG+GZ5_Ft;2>|_m?nPV;t>qX!s z!r2#e8hbGr*!_c@@S)TUkjAy#Hsxp?*AbxR?dp;*wv#P6tWffq7oW@HRJF%}sBm#N zwCfgQw6Z@GprztGW(UKwRw(L@NpjW$VUl0AQerh+X{r)eD`F0L3@uBJ72@GFMfGuS z2AC)VD?u`yh&jT>4d2mC2BVm}|DtcG0!;xuI@=j%AMmvF1_>W4#1lJ7M9hxc>b; zo9CPJArC5t%9G939W=a+|45h#p)59T%(;zM4RG>JW|GWYm~Z;{b{3#iG$V}l zHYpgw9D#|Iq$%V#j_S%Ift@9!i=9Zn+wDTYSR!0??y5|dIM5PoSs-q6ON+?Eq$y`f ztiKiq6$U_ECkbg7%*%}er6DCrlm)mWlmpDnn~kb+VDGN88qhI=IdA>|nPTg9P$3a3 zHW?$2*J<6Y;*cS5BY&M$`1s2%ui)i)Nl9V=^&Cpi3tHI$D;e%$jpYf-h&8(qD)hWY- zW)ZOuH1!l&nyD3sv3F&4@uA4%%9Ftn0on#hX%f3UpxIm>qH+GTf}epI4XF59X!M;C$~=CS4@`C< zBn2~(=5JWd&e6=hiWF9BtwehnM^OXJa`6op{Ut#)Ab>g|}|;^p>kjsVgyoSvPbtay@Sn8AE)Q%aG;X0zFD zx5hixXKi*hg7Q+5!%lKtY+#GF*=+9IxwF}97A394DHK7_cJolD+ehOC#6+T!hJgc} zoScYQj>FZM1r-s^rRhBTuWDMI8qY$IY4#6lt8o!i;FyNQfti?+#WyBmt#aJ{wab}) z)2Pn!T>l;>#q7Es%eM>iAnlV{JOV=;1!wr#t-R+zRMI|@lk_#04H(i8LJ*N54XoKc zPH37_9)jXtU_lNT!?cX2UK^ZRwp(4o)oH@pkgS;SWZ*ymc}DD?JQVK zWGbLRg&8r%5CcL8R;HDh0M<}>j)W?R7~aR4Tr!7a6~TG-ML-!lsa0#BR-H|ekLCOo zH9Xipi#r~Zku*vnD;iN)n@kdzlhY>EB0`HBM^5=eL>3BA)$xZMPGUwnXl=d1N>WPD zz`;x=WjY!{fMQ6=V}F~qSr@%vR6*Lp447@77Rx7d!$blYhN0^^HT|OtRv@Nqs!Z8e zzV^xF3+o;VR~iRE1j%y0J!_<9`ikncgC_gnmRL@q-@zc0I)d=YR&WscVxMwZ4p(*Xk(yt z6|)ECAd*f`H+Rp^K@y3FemFflz1R&YrL(h}l4RKJ$jmv?has^HA_F8bQH-(ccoVyu zXD4STr%&Fzb#}UW`l+Wju{%B8bb-1MyFgvng%GQAlvVwzB;n5acDLJITwGlAyNg}_ z^4&YP@7%e4arec$ckcH6%XjabZ~N05x4?lpf&wvzZo^$nY9)6G;A$+5FkUii$*TRl z*`3*HEUMHN_ctGgBw0yC;C%fpdH#r`7I~D(>-+{8>g>8s%AY#3nkE;SKPJd)?F;ju z1a-#Ma?x0qQZ>{BinXJ`B$2yT( zbmliv(|rStc>sW@nEb5e9@VahbM#NvV$E{x)X$Gb0wAJpvrz<*Vd(o}7*uujE9=BG zdzACU<38gN4zL`s)U5U7>`rj85mEreR3Ztc-dFSc&~(^thPFTFT{P9+ff*($ zFine7?_q+-MUYX6sw;nv`Lq|DO8wkRp_Tegn*?xClnxWAf~p>NMSWD~C92^v_I5%( zH6;Re+bx?aCMXAG={FdLVJCNc?T542MaGSrC$D(&xz|4Z>?@yn>V+3x^Xzj^Kl$X7 zfkQ_W!4U))1rjzNgshAi6az#7fj@XoaW6`sz!U&d&;TfqfF05R832L4bocHjKK0^9 zfBj>h_|&I=?jyhW$(L?_`qMA%2GJNJpLC~ZA#6en05izA8mpQz4Es`7p=B)(kq-)8 znK39tDq~n|T5&_%-?^l*KfCwW;sS8^_9!dePpe zTuvBj|LQV0*2zv+b?LUN>UO)md3uH# zddfsuFA!dNh#dz&xlOJIFY-3%zVM0jZSp$?AnTpn!X8#B2rwE9n(1I7UNJA4ouD=A_~X2@wn2y zIyxg>&S>l(=h{yu4|cITHWjFfjLCtQ=+GCoxJwe>)-u`H-5wK`8^5orD6BWzxuJC z`tZ;H>yQ50ul(At?_O3Yhi=oIY(PPX1q>z=K137wDU^ssOAg^^z!8>tHviCd8_XQE zl=@1=sV}whWmSCN-_PNw-*>woua&es#L9=~#Y9oj#8NGzD4-7F*gP;%O?zVs7*pKC zl%%ix(YWYDdG`t}!tYxS~1I zM)ImlLFJE9QiC~%-w2Q$#ZXNSAfh0O?1Q1!f#rD~InX?CE&d(jpJa*}Uo+b780@w< zPTvrpCnt;Sc{{x2^=wK3DF704SRuEUx~RN2mlG%lyS@MlCpO*UQmbI>CUf*O{k~Ec z+ap7F2Of7H5btk;;!#cPP;oV-@SRV zfeb+hPQzIjU;q5`Z+pWF?|R$oU-i_}&pq>u$RL_Xlw_-E2n1F{6$KI!iFOK*5D|1x z9sD^JfX(J)#wLGXC~ryK4EIxJ7YcckJm1ogOvA61$vnaS1W@X+=m6&31`H+v-{SE6 z8(;mNH$AV!cXr#m{q~oB_1Ay;Bfs=7f9@kMp6~7qLh%NlJ~apt(Wcv+-#zCLa;odz z(%*A7DKmklW>Q9Qnk&bl=WPk5G*l=^K&58GIuz8_Agp<0*&6mIulO##s49Gz)tc_e z@NyfIWeab|xLT?q8ro_+%^18yRSQu7q~a~Q4AK0}3Nocp#p-7rN^%|&B_a_ehBxQJ zA$=mM*|YK}s?$M>Ln>J%C;1gb1OUmz*@cj_w$R>s~4BOqE8>gpTRA?WE{t4RNB7OBMpZ$V&e%`y^^?A?Sx^=6Ith+M|ly=y? zsH#9xRnP0OjyE%h0ItwnbF*GpS>G>PCF^=e_xhKJRS_ zU;mqTU;gQz|HYsF$S;5R=RW%4oxV@QaMGQeohBh=;sDL{YACSf07yw01d!AShP`tE z%%N5@Z9imEp_FTd<%25r{Ckj?so?s1xVejPpsHs++KN&wqwS(o>2V|Rw$>Q>eh48} zT_R@e;NpuK;^)*vnNsXs??Xm@r38SP*3=($N|%n=X64Q6)p+IGc*jbwZVts-wFp(f zbp1E-CY2<^fyVtCi9yk5&&Pa77R>e$R-NXvU1(}nd<7ol4;#p2D zT*s`cU?ruC-LC7pB%)~yv6-7v=Ddb9-)MesU=;ze5=2vkrnD3En-fTS>3p|+>TL7d z-}L79eBQg>^1=(xKK*1QbYLJsFJ$ONcU%%)=Hln0$|z5+MZVsHz)P-fYm$O9mIBjGFyKC76wy5Kc4Vq|vybw9>r|PLybul%? z9=Hdce)D*1JU`^Ui}+NR8my_mRE5Y@19f(I|}!~ zYpfed&3;qUx{ zcmB3lJ^R#I(kGNpg*wuqKOcr|7g%&45kUNW9IofZ$N(Sl`*?t4;iTv!Q7pY3hYhjF zKm^i+1mfL>yQiK#d&9F|@MT~8u21dK&;9C0f8@u1{AYjZm-{pK%PXHWPF0-#Zd;-vlpOq8O@t=ETn7KZ> zc2Yl>1rMc+gYhQ86_J>Gr+IVbR9jknG))d*B7l4kM4TjX4jRo!-`9+^)OCw4aee@` zaVkDzA&`2#r(!Y4)>oVuuR$LCv`Eur0G=3(se>H$SErvv)oW!V3Y5vxIW*e9VjICv z5TC~Q{F`6+vbVf`ApY1VKJ|}(>|gxU&;7!$f8rAth-+)*GD@=cG0} z+kq+|$EurVBI`wGDd^Q4)_plb|7;yH5mBkmX2S@9MKuk>8Vy>LV7MeESWC@|N0JQ` z07!-;NrM*43l32Jc&KX^V>B|5_MV=u>vp?c3`XD)Ow@9efLjVNA5D&0i$Qy-Sia-| zoosggwFHSQO9r9}O?Jg&4EK*&VhFo_XL?4>1`Hd|>at9*zncOzSe_|ao$~|OF28!U z#Ab|P7*fC6g-z&yVYui5pPusDUU=Pm-~EMO@YXlq(Crz72H8l0sAx(UwYr}7eDs# zfBI7&{;~h*r#||tAEV6~PH)_}^#oCOad93`7)&bEr{T0afSAyCS0IVRE~b=*K|-|co?>_ie3pA#dq)4V?bFm+O#E8>ZWC|EinXqx1&Mxgi;W17{+X5ZFx>IG2{5xb-cs_`Xr zd2!+Ug&9;Ko*5|t*lacz=jS2Doaw%f)8z8vCMQWm1qn@dmR21 zYL4M0zm?3no4gqzilmYf!v8uw5L%qf=I>%i8nTv&IS?_58O;})EFE6TGFZ;>!0sI1 z4}=hhrNR`IGa6rA6gOT1sHi6dPDzA4<>Q)yVwAzv0;BTx3CSo#t$VCG@PMH5#OCDg z_U>u7dF69YfAv>={hMF^!kOqZC!08Ib+?7~5fqq*-9@64-R{Ej7X?y~DYIpA^hw*~ zbcetr$NQJS;_%jvkU&jp5E+I*&_11VAPi?AKKZJr-u~Jz|Ee$l@(=&&ul?vh|H%)3 zWec!ctay*!t#WLMD-!u8ZsJX^c zM)z(-;mkAyYAXaxp5itfVbU{KtXZgwK)V=4g-Y(MVMs;wZ+hm0%hXdA3n`LRC4`t& z(}(E{N9yG)!{l;81ft!r6WSL~XGQ`h&ISV_A~peQPwIiVaPoAYq`Y=A*0fC3`OkNl zGblkxiJ;6Zng9aCWWprk;%3aHl|Tq3S!79mLTfH}P2Ty^CS&0ed4SP^?=svqibCa4jRu0+s905Vj=bi$ zhnf?Ka!7C{t`=Gm8h<(I$V)vtd2^Uo*Uk|ajLcFQs_01hy3>rG73he$j*dzwQ&3eul) z%}v`iJ*i^xNbA~-T6G&;{(AjhuCyL{?niQmw*39{^>9N#&7hY1D$p!H!a2SAVP|cBbW!09!e^f6j94^@zOGg z54K**2Yy^Kh@oan95`{GN3n)kX$D zB)f^*JykX4GaqZf25zx_V8aMxcTtKsUeSbv;*jIxX8eZGOcSsl{OrbwJCnH03ov|W z0W@`qvc9BzG!1P4v6UyAA;jhLe3cRakG|MssR$}n5GJxpETTCZ377K9_QV)aP&lE*v8ITzHZjWF2nix`RPeVLw`oNdF$jg&p!2gzw}E# z?~QM|p?ZTT^g}$q4Wpfa>Od+WBg{sd#U0Z_81^H%=FcW@^r^9Q0|0^!oj}kh;zaQ) z-~G-n`hvIr>_>m?AOF~o|JYA{c({1^A3OB!0AoeyKrE|!5Uez|Pat-ky)L~J(y z!i^g*U>eZcI17oKQwg#;1NnL}HSZa+E_(+5u$_3NV{qW{|!dUYths zFMaZjuX^^Izvg{!dF6A@-8dtW4JGY+O%g*_QNIlwB;&vK4S=x{TAqNP>)N_~)&M_% zDltY)cdX3H0YlpDp5^YnZ+OGI-|)hxzxHc>^rwFMZ~vno{>|HW`0R<)oeDMtaH36i z3ZfjtOdy3GfOM+Osh;i05mi-{jL{CkjD|orUANtCH=B*+qxR1x=PaM&d%}o<{Y|NL zkS5-l<=?v6OVXj!>(1{#joz7;!y=8W*k43YD&kc~#9Dc#@B5RJlcC(i)mMzt%@Od( z2tXxts%i;WnQUJzf!->@UHs|5Q-$)%qGc;bf%oNxTkGv8p1m5Ba2XBQ^Z2SUq=hMY zQ_ZUMrH84e6EWby`m28~LQMcHB#2;D8TyM8=<{c%U;Dei@I7Dj z`9JzoKl4BQgMajimp{RqTY?RTvs&L+t%u9x01xB&TtD0OSS}grbn<~gQW(2j>#eo$ zWyNXxMz1eTNvejn6ce2KMAT5YToxt`HicoZ3MJW%V*hQOPr0s!*&Y3@ok;wZ_xH~Z zR!FD#)P@*E#LOkf;*Cq;QAz+r1dxanjbjdmGN+oH{l8dyCY-eC+^g+3ceo<^G-`B# zoj@xrql@%lG&+qU0%ogUl~j}S*JvllYGR6FU!4qTK45bio1YA3R+kJezpgO;_E`v) zcdXy-IIz__VB`I@*m6t6Z|RD4B)TG{F0SS*Kmn!-QxJucene>)7@~bo+w&(+_GBopCrB`jB=T0;^y^Bqjw?iWHGdTjgfzr>LgcU=-zM)+nQDJRT=M&UHAdMB2lE zlB@_|RyI3_m?9;mi%9%R3cvq%yzBRU;qUzM5C81n{-GcGxnKFX-g=HtZ^js2dhzAc z)6>3}$lP^ZpN5G`&-e-e1(%r+FgdXe;^XmB08{>{-b6ToyOziB#Uw`E=2UAms!&XQ zpVFwIs=A>0z0(}@!*Jmwru}cnR{zY#-hg;%Y0O3JU*Fq~e<6^wia0iF(lP9&L~=B5 zubkQ8@Q4V2a^OxwHbEPL8Zqbxv01i>8VSRU*IW%V5 z%XD*mc~suwuqR(Gb=|l)R2n$mqQD?lNdo01qogf*)jp*(#BO7S0K3hGiH4N&eN!k> z(w;=SBqxM`{u{sk{a^Uo-g=X9LMg}~yMa{{DX9XfWc#bba?0zKHLJ)aYp))62cE|h z7=;@!!*U=EKv1X*kOA7GOJDldH@@r5-~QoW|M-9RKm7e){Mbj8!p$e1IXyYKpkAb8 zk-o(Hh5Qv*JEg|S?RGnJdK34!Z&q0@J9V3`GseG;!TaOyxpb<+qqJ)5&4lDMvBX~6 zBa%X3k?iqN<~2HH__x+<;WldfT;++)W|Pu_cV;D2aQChb&$}wtu-Ubl-X}bQn!vWl zDJ7-IftYiR)K)JW{+Q4dJTL8qIL_%a2sE=CE zk%)ktjF8%Zlxz;7%%|2gL6yO{lvGf=XKNC% zjs_xsjy*S|s+-Mbx7}Gi(v(tC4lxomC4mm2Nhoze==}Wi-~RS*`TE}<``s;8N<)CM zA$^E2B%05H2B>ODgqhzd3=wYtC?D8dJewqo*971=P_jZ9hW+cemLpFAfEW1o z&Tf3so8I`2KmEPG{F}e^_kQSq{O3RQ;ZNVb6K>oJn;V0u6*4o&AJ!4edzGm`lr5HN zIb8uWLv**>buo&I)kiLqnRQ3ys+ zdTIe>Aq0StL?uN?5D^&$?B4pi*M9Ji{Jz)Tx}oQ{Z*`q+FIWxz3zJIr@~YDiCCA5? zOqh&n1V*(33r!3F*VzAFph5irE7%fCP*JI=l~*P7+W>vygRrOx4XFY)U!J=qdY094_MYk$XMbyzoh&--7@1_VhHBavoKnBg_8vs0+LdW zE^b}gmgl>mKVj8WG(6J;%Q=j3mO-o1q59|KgLUEGyGTfwsPFq2gNn-Z)wzb(nz!B_ zxBW%P7%3yk<79<+tiJNtj9Nv^7Zhp_AedH;2+&;E3qa0KxfCbqU|vgP@_mgEnaiZL zPPM8OkJ?;~k`%$Y))GLOGO6>nrLuifWunu|!#bgMcPCZjmsS7n%e>C2U{cjwnScpO zV|x86uMiPg6^lHCz@(+9skq>P5$`*1lcqd_a>yYUB113A0H2+7chB!U(S>fed-H2v z{q5iKfgloe2>nGDh|*wtsHzD{qy%R5F3Yy20w6S14;ZKg?Wi~hPYjP*S~lPB_4i+Z zRe%2@VeP*7_xhn7JI{;pn^pe zFtaJgv#T2sSy?;+&{zm27mArJv|fdBK9Y$VIXk3H)jP-r0Il^?=LR{p!)l`WEG=_p z8C8)4L{O#5K^EPYI4oaSTZ?>BBB-ci&+?6^7a5tL7F^0yVwh;|JV8WBr;cTQE>~X< zfT_3@axvXp@(7h^p&7Ql)H*-aFscHGA#AtX*mahLSJofAzbyIoWf z5{6J#o|+r(=$E~U;2M7akaWb$T7_#k9Jn$tfNBx3>Y-v{tLP)DDFxcauzBIB(?9a{ zU-K2e=S%L?#dVw>wm1R!uQiF{_#YzjdW zHDxR(*S69F5w+Bt%z?u4s1`4~DfG=fgos2c5n6^Bf+^o~F0;JmS&qGGnM;AJvRy@n zQuNFmce8No{cy!KflU@mM9h{$tsKfdPvvTmI!bv}P49c2FXtLU-)^_&SG((btJ;h? z5+{-sVQ{TyE}}!_xzwj1W~xDzjZo6+^)f@$iVK$N9RPJ}$m` z2xKBO({q{8*FE5G6)RaC^Z~owji6unrZ;{22fk^zbFsPmatx$NAPTY&P9kOVO+ty^ z4h$kjQ?RLO`S(KQRQy&Hzo2Wl2jB)>3V>{;u|voJT&bKajOnl&IBD!oUib9PfBQQ= z^s~SIEC2lu{@~C2%C8G;G;Ba1;zSX!bRa^|>U>}_!Gn@-Dl|NhXb6pZ$2H>+vI-!j zfhZAHodXXCCYr?N&}FqIXBB5J0a0afdgc}neu2|n?$&TL8X+|h&;80Tu>^YF7`~s>MC!r zA_1lb%Do*EB-}a)gza{Rz>WXDTOSL?p&5C;hQ|<8C8x_a1qp#5hR`=eAz+Z*MnVkq z`LBJ|+rItVfAk|i`#1j1Km5%X?;>g<5Mt4)v0PemYo?YtSPl0F?QTeN9#p zCNFMYJtft*r>4b6@ex{kq@JNFJWc|>4OCT@j-w~M6Cyl*a0XSfkVOSEqrB7`1|}q- zq5tmtO4S183`bPxdx@bK*G?>tPzc;Ah*i~G^8-(dac(xJ!!U@*+1c64=XakuJNwkX z{>UHywr~CX*FAr7_fCLV;-r*%?nt2KdK*Aol#Jt)OW6vh(e}ku_50%Hm4JyxXaSm= zv;47vORf5kIUI|3R@dQR$HA;$57{JUEM~~1j|AKE)4-<@U-`Coe(_u1@xwpylRxl- z|L`|%zZ6cNL%h+83`5#%PV(8x>n~{EK6jOlU5A{PW&CM!2PYF5@Ay&)$wh--@gX#u z$39Jt|2$Vi)yNnR^IUY^AUwhQ^%V2o(up1*bW z=l=Ykdqv=`-*qy;t6-F2`LvDhm;f-+yp=n)faMRu{?~AIpc7k*STrsvcn}Q2VR$-j zzUFuS&Ue23&Htaj{r7(2XMVL$dgI2e3oc3|1vS~64u!=tSu?>T$?2y1zTf|#@gENV z-ir*nMtJs{3Cr7wnFEI;$0_1H$N?@-aF}FG8P!lzku~~v#Wn!evQoBLMHB7ZRIpeE ztKof2Rc!m+=47Ly z3e8-5CUcF_e{LQyX8@ZT6cm`4l?mebdQ~A15o@pwCgiBD-o&H8ffn>m6Gf1T;TIR@ zuYKlKZ+`C9hraSF@7}(BcDfn*of0$1lC%O~i*O);6SP`2SylH_Vf_7~Is|cic-PS> zpsySbAK_}tRWGJ{7|x~OtZ1t4PZmOAK{3IziVD&$#jttpjho;9p>O+{kNx^z`CEVY zmwxM098VJ>iuJ4UJ*6CsMk3m3(JQAim)N}Sf|$C{sp|Rp`KH^zS+3ejY77X`vORC? zZHc?Tbd8F)67O%XC4*U#(ZTf6&g(Sm=Zw}fQ@<<_pr~{6C7jqNh(Had+M|!XYDKM3 zcJQj!8*PF361AN=rH!geN?JU5DwRG&{>@L>e_2$@|E)c;NSUR?0T_ouL^ekY+6o~K zA~^+HE*BSI*l|`kv_f40e})7Yb2->IlvhK*$|Qig7+K`g_w@5vxdUAHwLojI7J6))kZ#3o?z!UD?sm z=Rt`|#Vrxlag)qNmn?gOS7h7ZXJrYziZeLJ3n9cvg9=eDp8}v(6fiIax@Ik9mFC1a z`Rr4X6Z+f4gQO$`BF_3B^EMU&%qP>xzZnSfQ#q&4Cd3$%>iPNITQ_drzWrj@bT_&# z#5BD4$#4J0Z~lT8UO_M4jX6$BLBhn$!X2q3)r1;2jXWdU->m;-GPRIB@Akdwmto-o zP+|qKI*%!;ZCZY2VGn^-tCEi+Y3`eA?+=C^aNk;A8plE^Q1&i=yWoppccd!&#fH>Xc{gsT*NLu#o^n&;=Nz>?sxxx|G_`{(GUMZIz8)o)9(i2 zs4{e+>LrikG7ZtQlzc6v%5HXHXs0{N*fWjlLaCEQMOm4}k}-pY5CzwM8PHlvbn1TJD3 zMIw&Gl4UZkC7~}JVHSi(Nf~H4DNo^4^L?f2;fJCO0xFGX;*0Z(?({@ecNgay!UppE z(>LGn>>I!4J@0uYc64Xki3EXV1%+BsHU)x`=s1wIJvsu}2~~sG!}9dMRBw9?6};Zn z6SGXZ3D8XagVFbN5hW1xbx)rB(GPsX7ySG${KdcWS9^*#o_T)T58dW;dww^@RrDe) zhrY(ER=>5r?>C#x&<`lJl8ikYhP2si8j4z8sv6U2D9!VCSF27cfAQw=byQm@wSDjBL z56yuf$M5H-L{Pm5Om|<}RKuxf$?pM-_a`FthJm6Tn$QWKo3KnGgBBW)btcX&1sw0s;ryod{E;IjRqMK%s${dXn%2`Osf5zx4!V2Cqn#=Z~i7+ z3}G0~I7EgH0y6$6&yKTmClgJK2a4*|U;+nlDJoa*9ic2R9+ubA7_N19I9Hih;NbT6 z19Lg}SW>y#eq{nzqr=SyIQw_8X{uRNF_2Qn_+9UK^MCN?zyB}&%^U;I_X)AI{G z+vNPxVv!uw_;*x92*JGRv`do73LdbJVoU!sCa^ENw+{%Alx$svo$TIp@Gr1*fc$O zYbdL1f#||htL>ctu30d@^vP>@JV1(`(R_WODGYaoFP=X={k}i+2mbQk{Rcnx(;wM^ z`_vPk9Gf|24opl;DJ66EgTvR9t9RvE#NMWeVr&~(Ng`Dph7>}?%;nGW6kVFp>r$|{ z1ZGm&FHg+T*CImamd4an`C}RabNpmN_L!o|m8q5FRHerx5Uen=Rt(x`l+7(S@F?43 z)df60!}1eLi~qM70F}oj>)MJVK~~t26C?Z>Lc#d;%Vlkqk56|0qCJZ!Jl*2H5D}_9 zz-jd~yI|%1PUXaNjj)^ZM=S0xYr?Ot=sNiT zbx@<<_jVfBr{D64L4J9hNAl=$tTt>#!@gGFXpIeNmh%8stl9#D3NbpQv^yv6zw`a? z`?7a`(SP&T|K`VU-%X*T81LM<({&qGUUcqYrw&>)^H#BdnbVM}>|6A`JkJc;pb^J# zjE2KzuHymT!}6~xZHhnsn){}IDHTC^qO-~iF?&}wD}qsSma&{Z`Uwbxh;eGH3?x?XP!4+W zeoCqqbYHcWKD!7;6Vo`^QM#HKpt90HOY^cgrL)nWVJ-sSH@e=B@z;J``~LoQ8v9|D zoIh@4OER@r1yQVpJU5)~ZeM)%Gp&qGDk}SNx^1xAXQt;j0V6er%ToaQ4Apl zD>&A0*-2y=Qr{1T>rK{gQm;RVgJBYYNQ$|HZI)W*GAIC}NVVD(R?u1rc56Bjn))S^ zC=qQ!Os+gFE@OQR;?h-rSf{N{azC~AjmJmoT(oIW3p@A+RaGf?58S{!Sa58v2N{gz zXM&pKRI>NYR?YjBBNy5uEUuE5`?Ph!Vub}*+WawLcA2e#(R`&bL^1#gRNb+$=C^L{ zZUPXxj*{YT-}k$_&qO)Bxc!z_yyELV_|0#5)hl(_-A*Dyf8*qgA*4x=KnjRL0tZqk z5pt4I0ZA5(ZBlMc@)5V9UowV(6@jEZSCj?$CZbzM%|PDY87W9hq=@svEP^a=4Owr~ zD?teL1%B&&?w3PUTkBpr%cOKwl2|5&nwDrkE7Fm10Banf_$%p}G`;)p8{}=i`d~#M z3(R5a&rew2`}WuU_V4?y|K_j%_doT~PleN`wu2=o3@SNKd3EgfI!`}A%+`M*hB5_< zyqcRXj14c=0zx^o#JR$HP4l^Iifdjwu7uC8$mLK6%3k0h1QkKfg=Oz`LWUBT*m+4w zL_*{w3g~#`a-Rx|ykSz&WR9S!=A{veg;7+&6p9Ta0jwZNr8XFwmH0980@@EpsdUha zX(P2@R%9!@;V%w>L`>bh*=*{Iu##tVabQFgyV&n`wV?dLlafsJiH4Nsx=14$q!5vC z+F2rp(uNP`kR`j2hVA*wkl|Aw{iXlt|MY*9+b`Xu?&8JU7cajYnYrV5vSGVjW`oT& zyey)uu12oamHDH_sGGT)14s41<9=lw{og}ZpSdurp7v-!MUz?bfgnP#_@0FAc_2K0 zYB4bzuU#wnYrl_b1{wCPdEe;k|aW~ z?D+t+Kuf=VjzpB8Nm2lHo9^y*%Q5=S8*z2zbx-guvnA;zH!*7*9UTW)*)MX5A-0lG!jz@y^ zhz6_O&CD@KGFFdOb)It3^gk9i(8aE*TTM!+N8Qis@Ennq<=tWly8UC$;p`#1tSwF|a3G>#7-I1vIA(whz$(56O|O39>}{`l#eemm{Kuzv z&QG?xQ=#3R^UY>+dU_g9HUVUA8*X;Q;9$-(3*9c^ljSiKKGL_LoEDTtHKoP_YL7qCY#3uY>xuJ-{VC=J zn<<%eT}N%_s;+e83OtfX;LIRrwMQoDY{bm#&~=Oz0*ZX#do%r-B#B+8y5MR?%sLDL zkjO+9+mqg}H9t(VO6}+Ug|fC>t5eg;Eh=SBZEjgyP*IAkBFYqUaEDqfm>u^96F9se z36Uv+hTEUM5#{^7=X?53-|mt`sB${nbQBno12}?M1(LOs_IMY&tf(OZktAUb;A~=1 zC}X--ssq-=%>Amo($(1Enx9};;ZfG^q%;TKhjC0s!nyehG+8&i?)yk-U^Nb4-?Nv{ zqh{PgD=vnoZoA9T<^&9@lPyXx={NO+Sbk9i{Ox?-J z?Ynnw-nh}HBeE!)%3Ebj!7}&bu$;-_6vbRTWXxpEZNW$_ej@gQc2Y~~mk?|rGKQ{l zNhwRtvsh8Bh^VL~+*_&{QizxXr(sZ_1O*eok_G@ALye#=3R{RRvU3QyS`1`QH+(OF05?h%r(Xs1DE_mAB8oIq1Q$ zVEC0g({Vz)*>CP@LE>2HRhhwmR({p=@{GV2zs|#_v z-DU|uWV6{=0Ss~G0VxV4SP>^6hM19QDMt>6l(eJ|Aj+Ymm9_VSnP`}`C=Y6*InlD0 z#x4&1fQBlJ#(?^)M>Q^<&dl0!i0$pFYXWQe&~JA==gb(UclOMQC!|^Tvg)hLF?Kc5 zWJSA@i2;`m=VpdAj`IGs8HZRY4463^37`a~5J7^J)5+P*UChQxivI4!8(;B?4}Q&8 zJb|9K+q<{#K6&e@e%Mh*%%EsC37-I705LM)-IatS1Qvl+W>8h*^an3s>G*$Ca(wOq z@q$+?MU0JQshgKfd>JDQmcrw8QmmE_a7W1NR4qXn2;#e5?oUv1H_MElsUN zZJ%pw2P;@jQV{?wyL6G>_S$FvgFpYL{)@l-*Z<|Oej=PbF{tczyV!M$J?D~Tv$tFd zNn}Xr^fXwFcoi)-3sJh40xQ${(nbJZXnqUBQ+ z<6uP+ftZ6ivUARAV?#;|ShNsV<OtoDe3r0(FwYXyWjhv z_rLNqJkf>o+jnl9p6${uVW7a4;3B|$FRWLQ+S?M04r%Hb!qzq_uu!O-||2E;&%-%f0FyVCmn%=Aq+8^QBogEJ@b3O zA29nsOo2HXcIKd>qMC*w#-O5e)jxnFNmN5o-}@6QDcOH1rHVbop^iOhY7O>WpERTp zgDY_6Eq0C#T8wQrPO)gP*Bp@zj+Ow9y$@N3ThslUX=7>PYs;5s;ziCX2MIu=*^}Qi zWu=jdmgqwwwqR6EStG;*^Zz%|fy|k#zQDN#&s85;Z1kKU00k5QBvh)a=B^5wwkqyG zGA2fpET@MOk>$fA&3QstRh5(!gQO5bojb7_$DIU1Oo7kuY`b1=Mf&%?|9egoLd3uM z_-{nwvrQM7H=9$Do+v<}P_mc_$>kM<$|dza6RLo4V38pKN4Ys{~oPyVz2 ztb5`aP1q$397EUuR#ip-B^H#brvavR&pgm%2oncT0K^JNN(rQa4Og(qwiQ`O#Ttfb zvgt0XYjVK6j_yEJv6F=oXQ~|8*2YAV|A-t!MV$JmHV_gWv+NlAN1;*u|Q#!S_}xrXeqjIp$~aUo{B{0=l#A#@QJSa+CRs-v0Lg z^`H8qUB3&vyBD`#+HTK7WDc;i!6mC)v+R@>FShCcSh&1#KW65A+_dEP0gtEK&u0;M zA0iKe$?X=BL}|-<`_0ck{lEQl-+znx;ryiy;l`#r+njjcrz#MvF^)tOf*}LWN%;d0 zL#oM3YMz{_WpN2?_#TsJsbs}78GST59t?9tS2|%L<`6=RW&uvaP_RU{1J@FmRtsz; zzkpFnr2}s6V-W~emT#{8a7vQGLwY@(hhjEh0Da%CAGISX|$3SmeI&PyRHd-Ca|sw7bYS(ISll4*r)8B_rp>`)GZ{``Xai?cp` z;alGF_3!=C%?`5bhalVSHg?^~N!N9ulv<;_vINqhEOQB$r75SIttljus@%O_@BC=U z!@+_MMi)<44wXSN)=qO7vNQ)zqAareTl)BpXS{WE{z zFa718{pF9RA@p4YcbWB}0V-n>S(B32SDToSwC{(LlM_o47YbEaXnZi@zBFKHj$Rgj z;xOiF_HC*^k`F!*5uwB!IPjwNzEBPuApuYrRZ!v__QXUCTC@FMDMKVOC4Kh>mF`JO zhOn3?IY79k+Nf__A_)v21YQfWfS2jk&ro3Qx~?CF#@bm}4^_3n)$dJSiLqOvN!j8} zL;w?oNxeE1V&z+1_uQuYpTGCLf9Pwz;<-(T+uhJ_P1pJ4lTXGNilJ!%gAl>lhZ;7g zvTK%b-2XS}bLK)osA4$wa}q?s7KtqgWaMB!S)YIUcVMs_0@qCi5GUij-#|6mojf zm1s5gT%=mCMILZn7D;I+nMH_%RCQ1AI@;LC)hLJ6r&n~5t2%C{_xEW(_LCmv@lCb@ z#b4T#(y4S&au6vFvv19L&umIKKm=IxZfapob-6O0OW!(uV43HeXGt<(_x)VwemM9` zAx;`#2+~$Lbb?#pKmNfF{PmkZ_=ErS$Gfv<0(Z*1>vt9!DI`PzJl^s8uSgzRt=U(L zK2fm|qL7OHN}B_dHs&>`l#HhcWYSCB)X|VuhLpL$!uZzVBh~K5)Sg!~RAl z2FB!N#*S!TFxXWWgjtU(nL@=f<}3u!xx7L|fnyR$s(~5K1Y}yjz-)04Yj5GeyWK8^ z*rXa?Pd>G0YLlEo^_&eVl2SDT_(xpJ@l2~KG%-VT5C{t^6H!nFCkcZ*cXs37{qAoa zUb=g>IqC1*J=vTJOF&Q(%D!l8=y#^f$*J_%s1X2DZ7s6=^O56d&BtQ_r7RI(y0FhE zG3GNA=33T522A({q>s#!E;$$PpDZK(8YK)O0K468v)M?JS|qaRM^s5G@9)J3I&38O0g{X5QU~HR zNJ@NzVt42E_kGWI&h)g@I1mT&@f}+(3AEKfa`usZ?*= zym|M|9XM0LX!~RWU>PqmbGecwyL9MeoySB1I2KG1Vd+&Z>jj+Op{;mQsZP7~K_W8M zxt1d7i~Wmg3~?+Ik!D0mm<=xka$b5f@L!_Vr>E-m~jC!OOKmEV@ zzCU@|r>9Q3yDy*r=5PMyD_-@SkWelaP4)^R%gjh_E^9cw2-KYRAZ~SzZkS$%$1j+6 zqUBJ&#G3k<>>9Loq8?}PDvPYFQw0<(X*lnoO6db%`;{R1|NYaS43P*MSVW$ZD8-IJ z$Cb{U5C~HcJ-7)S4fDGeK%wi-@1BpSKd;aD$an!;R@Ke`xroI%FS`b@)vI`~k2Qbc z<&IXpGK{+B9VeJMgURn--X8K}uph*71QDZF!m0~li2zkWOghM(;y!B#z2=8nO#7El zi6kquS^RU2#ZIa5c=mH?6>|XTh~JgQ8$01ixe#iBN>2Ad&nb(V0{}&8l>RkYX`TYv-e@i{ zpTD+5hSf_Nbsw{lL9s}7md+KGeimAjl)hoxC18;L02Vfq6YL@P-=P4lDWJG-kS1s#va&o< z)a(aRxW`ulFgKX>pT^Ji&#>YwwcH8kYF3pzOmv6_rW4`FM7+PW>7GH}i?@uj5JQ_oj>uRZ+Z44#FQdq+h6pl?>3Q$z(N$(LYF-A?!w&7%}2*J4mmkNXHB{k6f`6< z8uT*DVsA0Je;6a8z?ztPtZ<=*LYnY2EibA6eunYPh8;e4fK^y_Ea?w_{nx+v>D&MO zU;W~(r(bzOQ7Q8xtgJM$29qLL6{r+K$#_3I`(>+xY1>7_60}{-)aKx?;auB1f&FFx zQm{hTS>8E3Ivao`JDqX;6XZUAc9+%+s%cE6?YiBo7XuCwj_N9N;MjE{DGf<<;NpyR z1t0_k3q@Aw-A{elyWjox*E|t+$`FpU-Sr`cE{rKmCK6RW>ymOHiN!@%dQcr0O!_9U zX3rGM{jd-5S_VRE9o&L=0$GHGBWAqv{c$(5UZ&Z1)<4xxhhLKWfd`AYb8e#9my0bw zGhjvk#@x|v=y37B__lBTum0NK{1-p{k#6(UcDUefW3EZ8EG(q32>f+%yr38vm7JD8 zCk+Dt4uQh5ZQxR>y zk_*gxP;>PO8(pjp-lxhnhwy-T1kz;&xi|$ez(Hk`@a13fMeqBPFQkhE*$HFV4uEVn z5t@k2Wpnuim$+m#q{pKQD5HKNvJ@$la~fvUe~3A^{5ln8k6ea_0INFvCI+V^IEra{ zk3%Pt$;(Rf2bIF1_LJtSn8jCorVxN-;QqWPrrn*F;|+Y*ANWA(|6f1x)4yZB zB3ew5Imqqrs00Hw>uuR>Yx=hNIe#E0nTVuBAkTZVFD>=Zr0n#nnAIh6zoxohEed>4)UuUD#*CP&CIICc z=WGU~@=E~F#0TW~X!kC{qB9u0oId|CQ-B<^Gx;&iZ~kKc<-OkaKsvs+%2riUt8bq$ z`*SN)`=*thIl$&IdG8_|9od(&z(H=T(4=j zOBN*w=QTg+t=!)x_GpG}7E}%*!b?bbX|gIhdU@0~q6$S|PP4EB--{tH4lGH4g{ovt z-cUCHFKQUSXihImNNA)G3o|lX$Ra#4%~#iTfrE&ql#a?av$k{74dW(pM+mWcP?eav zlG+q#Gq>9!;|Hr&{g6{pF z6Yar)V}2~bj<*mbsGLF12;cpoKlu4?e&MB0{>JwF?v0aE7G_~mro)`LYJsh#pBl_t zQMQMpMsJ+yrAio6UHG`R$*;DLF$BwLdgPUy8Uh#L(MSMfVa~*$;N$crYwd|=<+x`J zbly0B6Y@8z+V6JVW|PujmX<1-Eso7TR2`g`Egm>{HA1{8(;XR-K&Tf$1 z&~Ig+oLJqKOF#KzivzCelr$k=d510coUVD#784{KGi9#4%=;a zy8Dyg@rVB6|NC$K^Pl;pzVA7(f>|LX)O!Cd>02((e^J)sK^5`?_4rqW;H8?Dkpi(6Hk8deeVmq3mt}wzUL4kqwo6=GO}hRMXG##$!N{q zAh4EvNktWjSVab+8jd$>);g;#e!m9CIzI7Q`vnC0U?LBSgYvYiVnP=cZBX!Gjv}>! zLeW*`J}+%kU^X6h&b9N`t=Rw`dzfoBnlqELqAQ>&r5IVZch5HQJ3sV+JO7Wr@(aKE z8{OHhAw2+|!|Ukn-#v<#n&0vg>IV*L27v(9>_4^MQxf1}SBt!@t zayFdE5GD?i25L>#6RYbeyc>QlHOR`~%c7-(tl%7rA{axRRJIrC^z=0K>HO25{_a2i z-Er7b64mtLr#|`0SH80Ax)3Q)uSjIrUlBM6L3Aiwxd0ecvQ~kr4q5;xGW)LtXyPK@ zh*kSCROPe~tvl?p3+yVMUsE-&8AaE4wA^0uAIi*H1&`|Q7W+pJwJi$j#k6v@dD3&6 zW`|0?tc(Xt9Xe4YI5JSy>QFu;6A$*Y2|gX@oRNeebo01`#(rE)cyF0F6NGZfc<|)z-1>yrvEj6k%}hOq-sSngdnL;cVEQaPk;Zv z^+%sMjX{Ulg&Q}{^mwONZ57THKWJgt{osvMgcwpXg=&*bw}LgEGna6*&5nhAs5sgx zku8ps+mTpr`%lhX8NLUux+ZY_ke4YhR{j?&<2H&7F9$JAIz)@*?+q+uSCT2+?u9z0 zlqSQ-q)xKP5`g5muw3pD%nH`HJ3s&Cum0-SK6$IZeLEv^Nt;dVx&RpBCPFBVE?V^= zCK4GJkip)VlWqAkUEltgrEoX~9#kgkHG*+`&EW^r{TYcfB9d(*q>YctoQg@b1JEwsA$1FBbBO{JuD@gBg&@TX&Q#sK(u%) zo18zZ=VTG@v5HhBN5&qOS+Y2_+aN;>P#sh(_pm2O`{6S<3(6c0nX@)r^NN04G=>;L zw6i#*B&igXcf4@TBVFFkL{`ry=8DHlJfIyS_eD_?DK<&o@~Y>*|URMhB z-Z5!PyZ-#8r*4Gr{1>AJW_XhD(uCY_Ye-0J8w zC6mILIZP}}R>K@liy*36%*9fi-QA0rYbwa%ziJs#P9 zS=(QmqhGbXW4dFac}+1@8LJlaQf2m#{mK=oKE7C@p=8A|>94X9c~+!Qs6B2;fsAi? z`R?7PZ$5SYTOa@6H+|z7DN<6^5P1_K5k(3q^@VVd*5vIZgY+U|1{EgC=LD%Pqf?E0 z_Frof8~}|duwwXamuqaZifPtF+O_t3VSy_ov^LtBrpf*)m1qliC6?dcwLJLixp9v7 zqn|%ACSh&vFx-ge+O12$&+BLj>EPx*FU2KVtRu#wwKtuc!Chsiz<~*ghO~R>jjw$A zJ3sghfARnM*TUw;w(kW{)zj0{Ca;wxjPNff;lS*2i=kE5h%*RJunp!&$@RQA$4Lr` zy1`6jWvx|(D3FdVi5QyO`yNG=Tx=7HYD7gX&Yzi49BpdyvHkG4NC1b+ESL4e1?krh z6qv2lW(biv1m+lG7rVv$(t(3TPmDEH#(&8wu2|?AE$9h&r+ALop}tC-IUNfN+M zoSuF37k=SGU;q1`*#y~MkhC>>9dZ$j>O#uFgyv|VrZ8GhSR}d6dnz>eXe9tuRUuVU zrK<4d%c4NnV8XRMTv#L+S~-JpJtqor9FN4WY+eMzrHXkx!68@m(Zm6m;Nv6!GmSUa5}zTN$-G-fUzGjSVzTZ{ zRJ5dFtPq{Iz=aDQL=nw8zuWD)u1g{!>2gQo?94aDvS!bHQBJA9vwg=4uY1RvUU$mM zAzobE-E1PUG3;c~ty58h$f0F3GOKX@P@6fsajy2BD+Dy7b6o!+^M6E84zvP_`(PIi z(fi+*F8&e^9~s-^GvH%(#?}vnC7KRxrORWrC~I*KYjDV1yfoIzMwomifFYv0-T8}O z@w?vj$=~|TzxU%mb@uElhao-rSjy9L#sQR5Rd@Z4 zh*S0oh{;I_2MooBBb5|GAl>b5|C`_VQ~&m#J!K6fX&6pVPo3Kt78Naq*_}U3Qs}zw z_rCnB9tTj%f>Y&m%R+ipx%nO*WV21xaRZp?rXSVV4uQ$|=fM2n=VHkZ0}xrUyYmOX z?rT2sYajpkOLs!Iv78+Hfm}wJVQ=-*dl}pD1jCqmI5YT|>C~-Wg%~45cKwb@Eu5@X zwxrMn4wL})=Hz(LP?tWx$x8sJx-0}{_$=L;HG`Ki{>wH4DkTrsoT!MJY{X5TA3G?N zyHW+Wkp~B#X$HaM7y`0a6C{v+>XX0qoqzaSo_pekp5IMKN}&tEt`&ix5C~`ULzbDu z^1Bshe^{z&G7tDhj18c|`=jANCu3XszM1CIL0tSMf4}I>rF&}OE<@RiqCcfE0Xu+& z%iDw|d#t)#SHQJxnB%mvt7`#kGR@Mz2(#I1c7C%V*0KBN_ut~9Id`7kqpS(Ra?I*N z1ah%I`DP;}o=ZPw70YtZ?EExW%`st(IMzr=q)1>unV_;GO4`5tXTIxO|KtDLfAQjW zOQ#{2ns7}H%d%HKSF`&&n)mz!*wK~d*9C>Dswya$=0YSDCnfuFSRPdtPNr#v7$mCI z2a;;Z4Pr@&op3-*U`91h5@+x8S(X;R(T~^$a0U9xV#g0=0PwFqqLX6UtyS8+1?e7u z0fGcgFMaY8U-r9y_dDMDmhJgnMN$fZgUYHut7hNmWIiw=si=(C7@6Z39Ni0ae^5N> zj(Oxk!2Tu3O0>toyXneuIJdTk(c1a=z}g8El{A_j5<#FnhVxsHKmEtP^F$N%7p#Wm zAC|Y(fv|Xb57ZX8`L2srApkiCdkis#X!gaCjd*Nr023(jO7?HTt;}nATJ8tDqN#pv z)j@501&}MQO}@GGEgpmv%H}m}bt;3TsPfz2{FbkH&wD__?Yp0T^6X~U1tusG*#Ro9 zpMoJEnA%4R6Jff38Be)5US5rJG10s|3dT*$)|MK_pb2EV!u<3e=|pp{c?;D2yT9QI z;aq?AaX|f#1ae(y0B9?(JtCN&(mAvOp2@}p(WK|EdG^^q__bg4*Z$5w=(`i9u2gEH z$^hKMMlTkLS_JP~I6?h0>z(uVS?DJ}TUX;)-MAUJm04wQ@lwl=Kf;1A#7v^=Is|F* zrQ9>gjK~qnp76wbu0q&0z-3Q)(FXpW_j+tesA#5Yn8VznDa)H=53K2psX0J4s=D5 zUMu-|fT+mD0*7+<+s_~ZXpsIQQ1~Ms_=f-MfBjcKu}eL|kVEC0e%6=)q7e%jJ7`(U zpvfHbmmc9sZ`CAguH^L_x6buLbC5#)epKK5gxG( zpyJ|7bEh1o5w03ECJKS?E2#@J=ep`+fTgLjlSuIbqOOZ+J*_K2Y7&1T>4z=J@cyrU z-&u?V;am(_LSQ!AFA>OG(>!WUqAG=u)Iji6W$6Qr2o;riezBC2eIE)usMpPbIS`RZ zvf6$R^OEFC%ZgsGuq&!WdW*_1kZH|NFwlMNECr2ap!~(gF|FvGB^EUh=>k zLtqY)lBCp12F?URt2V-`&IM#^8JLGOXdogE1dvp9zem>1C6@(GmS(9y*^zOWWF)!e z{PE21qy_e$n35$M=yzR+UCh>Yd)=VIN?nWqR5ghVDRnUpDFsrSpzBNlf|6#vK2nk= zZ`^#x+ulYO7fK@8Lr7T$%OTDd@CRe+bI^bmX`pI&^4!Po^R(Q*HktByg}Xl-Bzv1p zbDK!}C)WMwACw>Z{lNXi0X%Nzf@7249lOpC$}at|Rd7NA1*-($Ew6g+eeeBUf9Ie4 z^At9G649W=Qns*w_Gk zsA^ujSsR}jgGyS3B3Nan+x)ARUr}6E3=x|&mqa{XuDbjEI?(?=dw=>YOOo9OV&@!> z%==y~UDaLH)m6PWdI1^@5CqTw0RkXE5abxiq4Z%Sjp?KQBmDs~(o0Ax3NsjhnO-OTXw(}&~kaXi93GVeqQQJ={Hf zIs0N6r$^NkP+ab+3OaU5Sy!iM3=HI08@MOP><8v#+7{Ed# zmWMP&#=|@(Go35BfReE{@h0pY`?n+{e_?X$>06`-~XfUzyF-Z z$YNO+ZgBE4rm~?klexpM7|saX*ASnG~lRBq*s6 zE2)5))J55poJ9(N*d5K%1eL>eGta&(3d!2nf~pugJ2RShCbng_IJ8ABraaNkZR;5c zx;pf#vR$TpDN{nj@X$r)PWoA?u2rBL2hfXT=)@m&vwn8pxAS$^J*)G5w|TQ8^t|S) zwK9MFl%uAH2Rfb z|EkbHBw$v~)y31{X&VR)6d*)jt2sp@l_J2xj6g1pvBOAyfBn0Zbpu>IVUl8i!DLo+ zvPCgV!oh7O6TqO*nSdcHw&v3qb%rLV$>JczxivweE87^S9=i* zl&FgxO0)cwnk}Rg*H4s-y140S=QEn03&f6!Bi0u_N2Si2)m|Cr3HQB1B|U~?wx%bC z>o@2To=!jRbMG{!>?<#SH1bOa`Ba0-PG#>PC1U9H^Y=gb^wq!hTfg>y{4f5lhN~g$ zj>nP1koeFI;N1e(9f8UfyMJl2evJV1I9EF@4U` zX(8*BrUc>|m4)~F-Szc#7={p}D<`6b;o4HN)@nfr(Ubjf z{rrUY(%U}F#jE5KxA&^pRm0C<(zw_mv@+z7~#O%LC`w6zsum`h& zZUC2^PwLa_^z-7xkKO%0>X5d20g({xpiz`S`~5y1$AS27{k6aL1d-!$KLo*sJV8V> z=_l;7$^CbWDmf*{KLe#O^D+bIxp3za0DMVPo(Q-k>v`g%)6djp6(pBwZ2m;KfEP+y zj5?db#Lo9P(3(XodN=>m`a;?)lh2Q|#h1UUOt>}2-RohyG+<}iBqw%on^~nf_<3dlDc<&dFBv)UG28{1 zELxQsFbTlQi%&W9RX_pChvQFv`Aa|fwXcoWFG$!_f%oZiToC&5f(NnzOjK);S#u@%kte)4zD}5r$MNdwY8;QgcIaiM+V71QlQB?^L=-R( z5on5Cc=B}r^FRADLmbD$QG%LZzd{2uL9*Is>RjVwV65`{-@C;zJ7L*h6Ti8I2K4OW zjb}TT($`$AxW$$u(~1qiU#lvgOvA*zP6OJ%o?qj4>ZeiycG_=g(>JhR3S5ZEg>Y!E z8}GfgF4_2ZHXoRR)EE>9@p$;_zxkVg_^1ET4>Ups8X?jUC$ewPl+ULjXWs~_>f#G; zt6X@BElt8bTaq8l|M!BJdKkhu9<5JLW^pQyP+=lYOf~D;wu5r|k4PChVEh|@M*HnxPS=a=5~<|0?`p6{>aB9?x|n_EGx z)jv-f({>45WsQdqKipyb_y5{&1&o0a*fOPU%*r{RhQ}~`$`EL_L;v7R6i~IYz>_FI zThtW_GQ1ZfIsZeHD5T99kX9ssOYN}*x)$g36xUkvvvW3ln~u1jmC)yWiDRzAY+SdVB`IXNL7fUUSa&oXFvV!>#yuI zW-CXE^b!=VzuI^J(Pfxl63Zo3Q1n!XbNfLaqSLdlDdrxk+fB30I`{c$;m+-?;|!b> zJh(Z@r${(H5owR4YTO5M6C0(n!E za>I@yv-W4(DymMW&~!eN2K10x*)Qa*_vHb~r?irO*uHVzafUQgmVY85Rb}SLF>n~; zVK)fr;R|oS`7_`6>VNZ3e|H#OVGha~D5Mi*uaXY(gnx=l4l^_I^#@7DFd|H({uDG{ z9F-X$zfGQM`iWT>K(xryf)|>5t%N}40Lqr9*aEAVa>WrA7H~>u#LU5;biWt(qXN3tS@ZOlfCiH(kPcM$JV*68{xNue@Bn~Zx37fuSWu|sN@3-&KK6CGqVrq zyNyGaNf68o215wSq(b`3f9|J$=eK|F$UG8}tID@Br4TZPtk2k%L$XDoUjztKUz*Nkz-x0nE zmE(Ncc#{sNSlvy9IXg`*OGOe1Cnll@2*3=2C`XC>&TDV}dw=OS{^S4q-wv<5eiHkq z=~V$e2})epN`P2VN25hKCbyrEjlib;Pa@43n4Ot>wJx^Y<%h8W#Hce$(3KDuY5I#= zZT9`rF<&}(zighR^PH80mRkP<=;3hSlzM0rm~2NxS2BFz-FLt6?q@ENm2e|ud9&oJ zI-$GQy8X!-ZK;1%fEUH)?g?s{`h>UArK}E*5IXNA{$9_v=z=>2PX85Gww3=*_Xb4E zX{naR__WQ*$Hz1qsGSXpjL3-N^ACRdYd`k&FMketEufOIxjUaY=DK_Hs_{K6H?n9rinoQGsSwj9mCl^M!Q5<7jT<{S zqK-M}%%=lgiS5j|fvWwfwPHzARxA49dgHT?d<<553q&uB5 z4w1#Q*VuFIiAs9*UR9NcRVmSNwc8U8zx6A>^e6xE|MfXBNkGKa)zxu4EGNdyIre@+ z6tjdp^G9k)sG6R_YlJ*rn(KTd880boL^`Nu5)^tG4&$C5T`CAlMvwHFxt#^T-YTl@ z_xm`G-o+D&s5%V6vYyWPci%~nH6m}?p@RDWEq{sx&guP_DH~EwtDD0xTwg!m@2>c8 z{Ps_M>yxj(&W8_)l)8f2%M0FiwgwNSTi=3+XQg}YbUqh>8Le&2xpHTmKYr0yY&jQn z2;Szyzb>wM$Ks0Mt-hC)+0b~c2Y&k#ul}W9`i1}W@BD-C%4;Gr#>gCI0r?rR%JkV~ z5TLvZCtQGhk;sllXf`NH9P27D%ditzCQxY7S=d9f^US&~&_93;fLD{I6);o&e!suI zz8*r5P%7-O48qDWD)cziiKEMBX%R;6>SG4pdTuG~)@<@3VX2HOe=fZ;%&5eHp6s6D zaC~J5-}u58<;C?_v@5M`eW>WoGZ29{GqPqO;B4jLrA)P@JIYJCrAo7BcdIx6`_XPS z%?VXA)Zk8Gqqc;ISin4Uw(^>vE*U6`){DMAF}iz7d74k^r-i%(U0iuy>OP`#CF9(i z66hEY3JlzAAkP`!)}*xLiSY5mC0`~$`UMHq+x$cWyU-SD=T{Moc3I$ zQ$QHmb27%#m04(#iwU!coHhg8j}5?`OLP;@&LA0e$8lKHeloS1rR7<9e2H;dX5Nlw zfO%t7-VBaMJzigrFP{JMx4-?`lPlK9h{YFki)QojgV(zDYz975^L}SHhjTX(3%H9} z_4;3q-UEVA$_ISLJPS!%p_l4Dob12oG5q|OgWk2T()v6tN+1$cN5sP?u6BRrSAKDz z2t*kIL6`%qfc&C2H8}qy`)k4(PCiwe2O9VdP}Mk&V~jDz2*6C4Ww<;~T`2@s;2tD^ z96XX_A~9WyCq3+(GD)i$LovhhNf{TCbkoX}me6p5b{|`^L>~t0%y$i{%VEa_~tB1Ar|$z=-NO_v&0_ z9I|-4J+rxdNy(X(spWKT>mRd4cca`F=^_2ZLz>YAClzs$;o{`kg|?tzFT zmmp?lP&@Cv(@5K4AiyT0P(Y?CV8Sf@63!1$6#lICW*jfJj_LbbsB7CsvnkV4$|Qp#R#RDwN1@Mn=NWTxXBwIE27I<;*_W7L;;ga(Nb2lcZj3ym~zwq8?pI%+@ z;X`5-Z7?`~SGPoXZiDj>=p|AqoFUd{daz8jc(!g}edblvt6Ti-xx1IU;2*u8Y&%Oh zwYzP<&-K}!d>5JFJ+D53``l_n{RrgSL?-v3|JE(`8KmRk>C@ML_2<9+|N4jj9qpe+ zaWTo4j&bWj!B?s=W|ODsHsYAlh)G!HEfULtN0iv6CayD+^GQs5uLR(hsTPY>y+;GG zLA)J&Q97B;gzMTb8$punMUuRGlmw(Y9$tL==lQ)ZkN@dE`$0(nLrfgp<3gkaSr4~1HT8;(1c;LnSQ}kgjgew^+$aSC z7=i!*$?|4xZ3DEVDX?VE>bP1Wz5IDLC$C7N&9qYZ2k39h=r zj3oGsPBTLjGpi~KvGDP5{c}J0&8Ne#!$HTRZN9SDJ!%&*uSz-g-qJ%S=4A^j<<9Z# z2~u7JTdvz;_VaBRZI~=Sw%2t{gO;tL4b_pmMYzqD%e+PO?75KTTs@U)-#5Mui@m53 zZOV{Ep3W+c!Pz0IuG-&Yo@=Olf8JEJgG2nd)9!-=2Sn@w|J7gpmH*4%{d-Ya!afx2 zpUs354e;-h`?m}{AczFj=#fSbkM&fY3rnX3*jFg1Fbd2cyR=3EP z9ZEii@*m|TYOd0<{mOs7tJ#0&!i`fzobK7pXF0e2SUO?^9TkUP{l#xT`~LR_TEsjr zV3y{gWELoweY?BoiGgw_rWXo4NwS7^)*qZaSxzapAD27IxmHl$-jryn(W=1vohZ({ zCy_#fDs1sJE_iIbo`;veLcnF< zg6nXDuwm$}GW%W_`XNWk1d6I7w$Cg)}h`_=CE0i#b zCBP_N%K5>vL(9rL$m&d*2`DoIokk%Nkq81H0v)3S(ZlmEfBtiCzxl@a!4HImLChhW zOzX&onk+x8JU^Dfcutw-(3Q+Ykp^YxtFyIcqf%tkN&#^R&m9IK1U zVtICZn4ouO;}%L?>6)t_TtDZ5oXH`qS0Y>fdNzV z0ZN;-F`f&Yy){#N=a~qRnL*0qC^-C;zxd1lhyUb18(w`=iHgFCt*b{Iuj&2}*<^5;VpE`r^Y6e)<>w zd_0ajC%=OQ5V?$@>w&?LZ%KsfWrDLqyC1O?;bXWBm`6iIq#8rrEXMnu;dprQ`Om%g z=}&(0hgoQ6X2Pa8fE&OJ*AsPyXPFn(td+sTS zY(@MV)#2TZ&&I13PTx03Bg*M&?=9g@iHL-hbr=H0_^D64{-w{ntHhQxvB(;}tv)#&poADht6FVMEeboDY#WAn_%km7G=zST&7B93u=jSYH z!?~)hGK!Q|H9Ay%s$}y`Y1!7O9#7N5bh!x_FRH=Kk)&#hqH94$|>OJ zWBKM~+209Rp>!Od6Yt*n^jq(~^Y*`a|JegNGL)m@%pHm$@u%d6Aa&OF7ibMK%AN-Bmv+0+?=E0_{{3_3*=xUY(AwM7U?YhqfnU3gPw6L+3G4%Nh^Of!za>6r!St2N522S3mVrKmD)& z-hW9%n*H-oa;}vw6JMXS8fVS3Ku_~ik`<>o3`6sEO1_k&E}uWIj1^`Q*`Celo(aHK zZD7ICmu0DL&-)ud5djH^hw%&VzB`b{>leddNm<<$nAs;wI^tg10QdQE2um+FRO@`^ zK|0Hld~fN)K88!dECy4R1mk{>uYTdPpL+G_4?g^`wh)@j@dbo?01_HGY09rusDe=l zCKTUmHol%qvgkB9S2$fQ;r?dyaWMkWGxeCSKdTT4@sT+IY(SI0qymdcs^Oe!!}6L& zt*GlH(U{qQmp8ilX1cXPYM9t^VS@nSAq3JkQQ^vdyY{9Q{UyNFZg>6u`S^NxcpaT-vyRVE{|)GPxXWVWf3A379{{+$!Vf>n6alxVe8oZDy>DD zHnGS4Q7I4$BX0F^zZVGrD;{WC{$&A?NUgmA5H*sa-CIZl#qaY{5Q4<#*Ps8)XFmD* zYx?4cI}WNx&E7KBrV>lL`CiUNp*<9K3!~X4jb}${Ia6D@!~^;Hn{RG2|Bw0h&f44^ zH0>+6(Occ2_K)w@6Z8go{2vN3mz`0w<$xi5CGh9pdFzc=uYPbn67OL3)7T)SQQco3gzms0m#M!C8CqH;0xTV3W!&eZP?T; zf;43dC6XYP?TB&q9j<-RwmRo7=bWdPwNj)+6p!)w2S5C+U;m35Uj$~22T};D`bt<{ z&)(_(Tz;(EPt&kLXV3+d1i#I3duppQbyW?<&UX9)I%~|^tN-mx%yhyVt{r(4G9TEg|l8f)LVy3*?#%M@KI?EZr}bG6E?z_TgS_$DtDpSD>jFhQ zDxgxOWG-Ql_YkO+{q%Dfn&Oc-Ts@C_|YbTmL&_Bq7M9cG=(86m_Ba*dlZh zI2kypL=cV`zx?^nUCAII#!Yh88I}OFXdR+zL1H37f@su|uJ|nWv@jV_720^6+1+3F z)4LA|Ak%UoQdNejbJSw$xMb9u8E7lll-$NQNh)h5Y6hk|&VBOU-B!FJ#T=wUB3eFY zHJt8uSKs^YpZ@x<{>pwA;maGds&mGYCLzu?pU6y;AS)ACfb=r6G*Z0t(d*3p*88=@k%CJ0}rV=@i=50SGH3skz2_PEB zqjI3v_pg5A%U}K<|K%TqtKk^qez(s-`@ZN%mHL9c+aYrx)|CCebUx*wArcmFrCpd$ zbhaw~0tRNA4+uI&qbSz1FU{o3H}&9g1?ly$vz$XAdvHqzO++M!LZe1dd~&t>?7Qzg z`{4a@CM*fT_WaDAbkDH=$8bw1_suy3-|bPqlmt+^fI_1}5rS~Il>zL*Va2QBKJ#{9 z2`yP!0nzyR&%8q#2MN0n#_@QAfp)_##*tlW;_@rGJPyT&o%&& zOuOpu+5hXQ<$3*QKAMFK2Vo9JXZ7PtcZK9d6Ns1y!lH3Jymjxj3KpGkC#+qa7&IZu-4-p$VO zLGSa0n4aD)hMwP-A6F+m0RYx9>h%}iefRA*Kk>ci&yX;qF}zYBvr|M1y2fBeVkc#OyES<#r2dd8_`DhN{@tVVeEOU(H_B;=aFD1V+6wER%T zc1p#SNU;AP%;6@i;>WN8Gf80fYmCSJj=u1@cLxIEXx=*~VRm&j>c$6e3^Uo{25|QL z>e`!IY6%RK_z{g(uKCxicf!PTzweVb@WR~Oua4)29_3!gN&`(jo1ogcc6<=%bHodFvwc{)YPtFc8Y z>e2vj=Wr}mrDw;oJrhw(fiIT*#%q(kCw=x3QABd?K^?B&2RHRztDlOYlX7yOvnZ{FJuFMlbzKUsADUc{4P^Qohr^36eeSdW=pX+RdG%G- zzsw#k(K7&;Eq{ZmD$6bvDoM?9U{l8iHoLh1GWKYnbIY72NV(3;x*4;%YkNYDdyWJ? zEpDI8U%C#ydi#w#F-Ym0+&8=3ZXAz#9KZ3CUt>fdLPuUt{roY!Y*2X*XQkp@$pH(~ zZk!x7#m+K-c~$b;47fQ5eNWNxII??|^bBj0IV(aNKqLZ@u(B`^Uw?A-sW;zzKO&wk z7CCi7&c)+aZigvFCJ~W1Cz0%;GW~m-QSLhz5DR1UMhs)aDvup|tD9XpWB-|x4PZMN z@FoX)Dj$C(BokabUO&Cs9htuVV_#7nqbeso!~KcpckSPKK?T}b&?}GpIMB^qfW6lo zi@9~sIC-BlXl^UI4Q#3RH}i5qI_eEArH48Wz`a*@CjMC;xY5zMV<0lgDcQcVj6Ros z(#meRE&wQL+apob$jk)Z@1K16i(mL}e*2&EZWqG7YQ6wwCW1yKjv~RQXIM1b1SuAZ zZQuQlcY6?K5EC;iGfR+ce$A^-$2U(7SG9u#b$W0&IE(rJ_Zet&)a z;xq4l`s(T`9-cur>_}^Y?c}Ak%z& z8nOps4ju%+Iv!qp>GNOs@BhWWc%d3jMb?_LiG^Za%3#CHETQP8;1UhwK)<#^X$C8p z@XiTrm_h-0^6tZ6SW)7G7IkCC09bz|Fw2Ic4=Z5m`nxX1w~^(^sFo za(wo}&m>Q6o?Xhg?)2N48i)b~1%;I3iwH>-X$Z=a4srSg=V+WGe6FSFlg`m>WHuGfEWQV&!Q zV0y!30}xK0s*^XasohnHD4fdU)-$qjot6%=&!1V0-2m9n0a3B2Op9Sb~ zF=t8!Td^v#dQNZxrx(?HW-_*V(cBESaQ)}>R{1qNLOADrWkRnUlTM5qnyXvheC3>g zlL+zn+LNoR-S9jT0A3*3+mBrEo`}q1V9TlV3~v5RRBx-rHP8Lo0bbQUcL_l6hU{)`9mDL2EES0d6Bl_nC|u__x=4l z2)d`D?~wWa^tZ&6Owg&ptJ2Mxv(QIJB_a*dytgy&kwrYg{E^suudV}U=e_3HX%Ymt z&^=%B8Vs8h4sm+A*}9t}r~^IcXMcWt>2L0wXYQu)boZ!q!)BwhM@D6*AjvBHs(t@F zHyk^yl#>XtxrBnFl8nPJeD0lhe*2I9nB_{CDOYP@W@4o(ua{wEZ>2E&+{IXRSbt-P2TW?;d-t2I$(=6a zMWFw_Q!KXo_B_4WCFT}cY?EHG4dJdPp(K=HqdQL%vXND~33 z=@tJ^*MAcpt|oBuPc2uYryg*qbs5 zaHZZ%H>Wtfxc;#p`!OOKW88&Z{`GDZ0*?)rsHA%fmW7^)s4oHVnMkT@{OpR8l`@1) zsI2?(S9;6!zKx#!+#0;S_C1WKY(=BepJmw}ine*KypjfdBQF_q^Xrv-N7DJe{p<=P z7F%JbgcM)+?0Zl5S88F}ZKJCuD`vK_OX_9PJ*0PO&CL+|e!o8)4!hmJEaz(c44Z~D zJd23=RZ7OQy$2tW7tl!vLr5_iMC8IoN_pjyx_Op7%R{qr(+U6>gaADr4xjqeTNYP32h{;( zZT0D$ftcFZ?zE~t-R(a4i8ub;51(HjudlAIMgmbQvC2)$Z5q$68iyfh)S?y>R~+1>=08mU{)YG( z%YM6JuYW%um#DRyAHU~b*%s5*Gi+6S=Ge>&Bbh9CK?yHG9KZ^2CdV_rUU+W78+OCta0o7L&m;q3 z3(w|mUexxuOu)e5!)G7-^iTanjFA)}o8Yz!ASs}B9)hAo-{kn z&?#X(X%R35d@*wz$4|ZaNkrX0d77qo>D@FrJ>0Hf-6*Zz8!;{^Tp# zBHQk3RGg{R@q1LNiKY4ZW|IWj?q_2z{xV!2v7YOVc)h0N{lmcfLOTHOY z7}I}twxUXy>6`(-wr6AEN?m4OI68+Qu%^QXx#%R7n_KgGyLrSN< zeJKk77-OUuce@?3bFM-)_8lfahVJED$qx3ojv{9NapS+o0B2>pM6Qz@V=M)eAJ$Fi zd_~^P&xwE2^|w~2S1%J0Yy86J-n%|L&wWW_CO6I5THG2{V~nE@JS3vvszGQ{K`;EH z9GK^QabaIy0S?&R>)RcmU}d9Q*K(u0#Xjx%L-yk9DCYdg<wNpam)EUClS`^d{jcvs7ZCf%0Zwd z8e!@r5GxZP78Ovd2ejue_ULQ?wlr1;F^fYd*prziq~RFqvHzL84l^t8l`nqToN}eM zJl_nqFkHy$NhlPxU-!yw6#0FY12QM)5{VUgWcinQs7h2iRg7*rKBBDq%LL(e4Ub z+&xQt?Ug6HU3h-H9(Jz~$-3FOdbWX)+V10=95}g@wBpmsaX3CbSoXv8QS&TB9Ll5xqYL@+e|HJQp?~OO!7>~!YqQwW)gy?l0V)}fc`NVuO zdS?A;L?)gwzFj`}H1xbXEPVP2+xPdSe$h81pYR?gm_`AQ}d|{i!$q@K3)(tOPQ{s)$fZ z8%AVDg$v%UQ2fl0%MKIzHY@iUKuCU~m2c>6Zovac0MIoKnoA1P)wh}+zhiFT`HL4% zudW6WC<#nGFwL_xbD!_<>Oeuz?Qv&dQqHB#&K7>EaoJQO=0dk{xB!J1_)gkEgpQlu}@5)xrx4leFh++4js$E6o5y!0m&TIADaAS`l zs7w1!8u?2k`xBzr#x-n}rfTlp{;!odh$!ZyRlW}*3Yex{xj)LRVS+e`2$k)jS~t)A zDQ4!M8M-Ozot7fPc?bHK22A~^WxW@MLOj8kuR#NPQb;wEb|ZKiP{mj*;z)c4ElXSP zoOm6*AK27hNPi`Wwv2Cn;(|5S%3(nAs$gWXq$12BT{M&v5Xh_rw)Z&5VYA1 zxeH(rgWh@TZB~F3s>Gzwg83JdIU8>9U^A{yTD)4%GQ8HgH!9|Vic(k?(HM8ljQ3P1 z=Zb#KNot?NJGwmF@qWZ*IP*|oYn!xtq>gwtm660u=ZkAMikD(G+<2dQjObjO?qCj(w=4Rsgc8Ftq=bg7T zMyOJtzyh+2rs;^7rI*wM^JtiUNS9rxrii_s$Det5HBJ#gYJxER&P2Mv-72 zChz9XxYY8L$lcOePUQU=HkM*#K7A5A^>fm70jjoxzVcT>uf|W*o15x_Pa`{j**5l1 z=_GTZb6uDGyx3>cFmo3X0c`86OoT`qn62eJJv1Mm9eABsKI`qYH;8+p{$3jCzLlrI z!yX?w^MJCSj@K_f`Nr$t`_u1$MPyEv8cwBm3<=$Z%qugg!;m7Ulc%0d0B)ISuYj8+ zYp!zXv-B`Cu`(y+L%xzzvWwJDmJhO?3nBudP{{W}jCMBqY0~AW#;9Oo=D-{=e(F=7 z0-$Ne`HlhlbWkIVLec}0j7geA|xeea@o*YDYQ1xiIz0iyz(1v9&*dSZlBlg zjmy`>9Y6QbF-B>o3dz)=k%+=Dq?Jk{Z&5OX2s)0e{Q1wm_j~{P-+&M#5QxPjHU^Q1 zK$GcGTB=b)Yr62^wlP9$WoP`W^SUlI$Xv^mG6&hVnk>mp{jkAYJZ<{l$xCJRX@e1lu+REd2ygMx!Tj=!qOeT1~7uw}d@;`s~{T zhqOFH=eZc?g9s)Clzft@Q$Z3+E5rFe# z?aMK7q2sS@xWG28LIj<2QpG~$^tZD%l6wZA=1$U&iJ5vMrg|T37m|x}N^3mXCQgc{ zQ)-8ncw#)%(*3b+)a|_HLaIcQ)U;%9FYTV|rDz~x$q+Y{b0H$;L71U5h`jmwCx#G? z8BO`r8s5KgB?I%#ATho!zIE0BFo%zVPy@idakFYjKhE?X&MI^2NwIQ+k_HHQu zdPUVB#$=_$BQ$@7b6~33S%1%t*z}(Do~d`8TkXbH`ddOTUMHVIqIz!HKS1OfQ7u~} z_d(+jIdd_>ya@8*nhjFGlvmY0=2-!HZtlT#D{(PMmJhvsX$oO0Hk%dtzJ9a-5U99a z*61K7_ve^AbwCp2$<@|CI zk-#^GaU-))+NywieowC=51Y&n2a)CU5CG z{06VLUm7+#?S1I^l#Gu_h|2Bmrfs-1*!{9|Y}<6F9z+*}%laCioFWJ3cJ4*bVlyk> z$60hzku#j%NFgC5ScEp5baN(W$4#xs3=G zBQf(B$2Z=1L!+8<778U(_;_AhIB8V!7dN^;{-|UFuQa<_p#Jh_r|YCLs&+6t9A{?m z%!ArI1M}HBzH8!lX!7(;m}rAs)R{zk+_Q1?DbL2tsOH#xp37nD{d8V1F~7C0a{B4S zlzUur^}WkA6f~O#z zw8}wb#Vz5ZBLNhc*%jNru7YZmAmjDnl{eq8)SoHR<6hJV+52M4CEwE9LRoY<#^h#m zxYRP<*LK|1D34S6xrbGKgfCu>=yGl%iGzj$q{Q;dlc$KvyRudtKZuKh6*^r0>78Os z`3DwZ7LHry^KdqRhsYq7hqinM6&_q7Mb-F;Pkf@B42AaCxrfp(Z->?lH?98#RUfyp zG&K8L8O7j&(=IyV%Jbxb5ZNYslKcD!5$?UgrnT~II!mRn>^}hT<{NL|IARwu1g|~o z!TS1d-y2~uRn@EzmX8g#dXfSb5f)Kk-4*mBC;?mqSe1yLJb7a39kZohR#WbMz(0nU z0su9A8D}#FB^~Rd$X)X>Tmq#2T&|}k6*cKAPoF47;bo3x$C0lS>i>(C_tJ;Zb=Zw+RoJle@RWu6UPCy1VZft;@r@%nmajvt5! ztV9$dF)&DY(IS+OM8{KZGuyq;DxzX)Q`JoN_M4WC%6=e9x5=1kb%{Gn4q(<- zuAUr_LM0S7TayKtRK2%hdL3p``?WH^J2;WENTI>i7+|81kNTwa7G{P-%K?GFFq01u ziQB0D!6g8l{=I3L?@K|+oe2?E4IzXeiiou9yyZZzbM(DD;4d$%ywTFh$2=A9X=WD% zXCwXS?A^z36JTYbSFWBM#shOZ)(xttEx?vvHf7nnsrI`ZLeIr|NHH5_rfC9e80oS%p`Z@ zvG%B-mK{57+~<$#I&6XZ;8m;AY}3=4u!0CmAi_ZW>T9oj_j@mdt?W8cLhF^}3S>1e zH{9`k*Wx(!@2#G`BXlF zIgj@`G|9l@w~&7fAH%uu^vM%Mh2<=89<JzKSZ z^Nly~`+p!H=3%6R0IqNaPR?0<6gLqg-_ylqmHO1V`E>8Ki4lS#e@pMO(4SEWU^U2A zAQ1$>T!5yh&MC!pd$=EGc^@oY#fvVe)Lpn0`gqh8B~lsjVTFl=qj~cGSwBeKess~# z2Bzw=p~x>6JQ~ZHZIb}wZrCwPNZ$9M;C(6t-tpkGbE|CF#4NRUKI!#a^O6w&t}~0B z_3SLCal8M#jgj#5=~FZEJovf0Pq=Z>;G2)QAOnpyk4BGlGo-%+FHvo`3NF{7$GP{u zk50`j72|s$hU45oZ1;KnM%&rwdkt+FttSEa$l>(W^e+(=Zz2$p66@8IT?oX?F~$%A zgF)lT)F$fIN01B!U>1;BljYJW~s;1OSd}d4LS`ND%4u@LzmqbxO)#d65u2gy& z(ZWYN?2w;NrDdx8k$Y#Qo%OT&qndQrt)bK2afn+GTn7?h0}Cn#qPab@a#rz*o%`)02=0J3`21^;}u}A>s zYfphsSkmtcc3}v_5fHl=Jc)!>W!)d>CF)P#_vXC8^QVhWHgKR-n@&HMf}WJKg?J<~ z*+51&AGg=$+zM`&g5DWuWb#_7cUsbe|LLU8Vf(BeO3C)p*)}YbF0t=EpP(~b@|9jE!o}>{lnUp*m@H7?AVt-&((=n((t*-{_hO7 zU+Qz;x9V6t*WZi7_vdXfE~}L~BH^b`pX#wKcxa3yvfuBIheH^Gh|CKOr2aY0oU1Pf z8Op4fx>)ffY(Yx*N&sG#yf*-@c00?23xyJd4g1&CC|glZ_sM;4fxF>zw;pyHM;9_UEM}q#mm3A+VlmtIO&wV#_bha!Kd2jW_vj z?f3ga4nlb^*_SUTB9{iPIr)Oqm|3AYZmW1>Ol2uI61mxM(b5@l;5F;ep06OjO z^^!xe+wEc;5o6#)0LYS?rZIc~+gnu>no^QIkn5 z6(X-D*L%FALJBG%%bLZbDv>4Ls3JD|{5;Yi9p(58x*<3H^>5n%y3IQ_fDK5;2kwuy zQyrta1$^~ z<2G23oInV>-7v;@&+(xvAk0zK+a|pYptp^W#S7?WFteX{@M@4VL5X$P@0BQObZq-PcI9o417KxNcl+{j@F0 z*Z%)*@kkN8R(@^$@L242wWUoJ5bzXBVMKKGzV}!$RLMCe0w7dfc?SaJVc4Ck(&%af z`*>_SEXi9rdn@xC8aKo22Dg~d#*BeeFCwzWV zBkvWUyIshi0fI6?m3f$64X0hCGv6)L;=xxQp^fnto}>5Fp2}5cipp6Et-YAK@es}T z>idS9m>kQ;GL3fkKsgeX45E=H!}40pr@^^Z8T!KTdD%nz;RIW1*sk|EB|I=iu$K(H zlAv}u^k~t4_HFzF=go5--BeolxalqDwgVoO8}u_oNzn!+1=r%))I;@6H;0lj_!25^ zDaACHCf(GPU?Lt^qU!GINy(&=<&QL#(tXbJW>OuO`FOQen%VNL6G>|?T>JcsL}Fof zWZu6~V=Eu21dyE$ZAG3`@v$q0dWzvn5URM+PqCwlvGlw?%Tb3=Sd^T3DqZUlzV+MFH2s#FW=d zSwxy#&?6-P4-4K44N&BjTo>oC(AxTDp%W0f;f0 zYN*I`H*i2I`gCV!tK_s<`%EQbd3?oBai)sxq3M;0-O)+flxyhY+%@+LfTk1M*%bgH_EsH43n&SXwY7Hi@QJcQM-IV%| zn>x-GE7?DonH2z83DVZphr zLz^*c`d=H%I8Z*XnWm00%HG4gj` z*hRNg0SKM>bh1hIII1l&(X`YcaKxWt`U{xi#%5AksT*>aX1rnLN~^AF6E z)k<7Twm&hcfU<62o+jFZ_k63?hX|@10`+;ysc~JnNtK|)%!KY5el#TjsS9%63}$XW zGg$BcP6fT~es4E`E%|e{w8`t%#r~&fa)W0+TF|eN@JRCGUl?w7*Dg8%-9FSk%u0lb zM45*WEavp4{Y;_7Gx&%QfE(u`?Ey1`C#G(>@GpfZ&T{`nMrU#Z=%cQ|RSDrXGNUJzmiy(bS=?u|^DW1!+!b1IyJeirxy$_i>ly!%FQR*&^12(k&aXYLxTi6T9UZrHHm3fXn;&OA^(J%{WXI?=u7A^+T-p`v+3rrBiW?A9f9Ijy zp{Y+@JNqVAwTs>S^BHDl5Jf0cP{iI2FP9Vf@o5IG|8NV+ta-R0XEiIw(GpY%Wjm(* zBTJj+@&$Z-j%se6qb*C?L~cR^2ABj)B6es%6#JE9E@%TB;7pT>=e@TJ)5 zdw}f>(Yh;YH)yLT=5JoxCHXnm#?XT=Bdmd-z)U=YS;dKA?8Q;>lTE3s*%NoRyPF#FfYU7d0cfg7=k7^oalPG6b6mrMKmtrdHx zIrIkTwZHr|_kC`PN^o=Y=d)XvqJneH%i*Hz5?izcq@+u2F?UG@devy1hS$bY|NRZX92l%DoVYB_cLcZTyt-iPUOGPY z)$Pan7>MX{2g5HdI^W+0>bzC$PHSRtx}TN%rKxHPP98Vpnpk0&vH+NuPEiyaETzJkfR8-s@S4ZyK9NR2h0pT;YxY01fWPmw_Fa7;)_bbcIKqOyf>B_k4EFTTf!>eIN1~N>Ogz#f9HGVPbACQL_ldyv+tz1E2Qiq0V8DoY%51Kfa6-05AVciUnCi|5d8BoLi%L zE+q&6V#}s*fjP&T_kSpk;4a`U>I45-gU4@Deu<#uN)cgVR<-eNssrif0&2gnPV<>)C(ZN1yFNR5 z{7TPG?KTw;+p7q+svByA?BP5OUN0Yey_o*O^y~`letiApbUs0nIlQG+h_X|R zf=PtinIv8&31GYP^(|pqDeYCzy9xL-Z6{i;{PZzy=$#|2rR!ieE2%CrHVnD7qMV3U= z`s$8*dj9@wNVh0_mv#4lxPnv8_D~PC7zv0i4(FDB0`Q!II|DyXYHvH z>wxp+^ary6007~hIUWlWi*X!slprtCODRuMxiU$?K^MmUDI}%$bJJen?yQiH3Y5~3HzL^~4ZcvNKXV3R_ z1x9C-8dO$@H^HsONyZSl{V zbX~}dIFbximdVUA(-aGAa`{0pr79U(?T#OJ!`uoeQz{<2od5ch+rbgA>h1D1R^UXQ zAG;l%5c;HMyIcd01D$aQGwvF{EdzYRT(J3_xk=;1k;bLQO#_;si!V7$s=Bo33 z=Z(Ql(#6C?$lml?#` z4hm%s$9N1rv(QWks7Y&*6AY7S`Nxf$nYMJ&nayBSWDex>Eg<4nRdV!`#5HtT;{N4X zV-S%l8RqQ-H%SEWKo190^{^sspu^9rG)#N zfXPJ4p&cX63WRDtjt^+HZ!;Dt+GvK5TIs#kmj|xJ>~0eUyYs<<*lDT-Eng24J2@aJNy=wtR-P@k8N>5io0SgA zF2>9=3e)R|PP2kc%`vTT+3{?Qb;J!yM3R^_6-XrA%kb>kwOce_(IlhjJSApxB#A(m zfw%~WC&}B&t2`J15D{<+e*-qnGJs;0NWG- zCkX&t4nrvX^`6=+bOna^0yD!n%5>S10N#wmVO8jM0swBSzmjrHR|r5x2knk?KkjoR z1>m-Inx`kj%c-UeFc2HpN}QflJ1iAPX_U^4SKK2S$#ZyGfi$1IR+YlejUGFvw>eJ$ zf+=xy`rdK`I6Npw1KQ|rZIi4>3$(C&FD4p~@oN9{#o?M|fS8jF2^SAHE_pyB4_=EFG+RZJ5!BBZz3=!EQhVn8(5hXKr&|n9x*hZhc(Fiwcrl z(Mv}eIz`(#B@sEMX{^3}Ub?L9sksLt^$8VtVWUifNK|9FiD;=+U$4X5pVAx{Z60%p z{cWB{C(!z{t?CfEKjG=+7%p#0Zc-%`FWMsFG@kEIssz$d-6!540oV1j(LnZx0NWRN8YjWwDH^0|&Kw$|d~2UucYpB9VY1K}5)C zNsbh^0Faq*kmsO=jiDeP7wr$dPMk$C{>>(^Ec~3xXaHo!49E2dk+!7kCZrLq5HS(4 zl&SK91GRou3LT%=p>m+}d>S~$-oU$C+ez330clKGVT|0CBaw5b_?a03Ac1GCI&3de zJ)h>=1>)FvvB}O z*GCFETc(7#4Waw&RSrwrPkyXr?P&iQSt;hYb$MKdobUjb5tBT> zm?sJI^>}>xp`!HxNBK%k=CZVbN8TI$i>pE_eEQ9*UakQH{K`( zD^v}4mKi}iN0%hV4nZ+fTp^94kv&$?~|WDl`lOGdoAAb^;$^j!`j2Ga#2#j^l9%!?}y`D2%`t0g<$@qpG=-728)8YVXBQK+HhHQgI~=0)*5U^DLhV zSjkDO;xNthtbj5L3B;JJR#MB$<@%gH=d-F5{hUAZFT7QtC3SN1V}BaGVHXdt_qOHC zZ?j)D!E5w6Rd{nT9E*64qWrC)n+KdB&FNvWoJ%iB&%}1k41TP3laCav=tEZUvZw5iI_+l%wL*LCh8i#tdN=VF3vU0cALGf>-82l6*h6J}y*w zRh6^~FHPzrW?_~wGyXSrQGe+PKw-K8q*!fX88$755rbS}ta`+R%7q`^#GN&CovHEk zgHuVVCZn7YZIpb&-3kViG(ST(zP+FG5-ZKsYwiLx+usPfKI2>Zzd&e339hky^q)8J zS00L^bL6K9DvW3=~naLq* zYGnJkrPXsL1&(nX!eD3qJR88d^Efx|!{-9xDmjI%j90%fQG@I8BJrGqua=yPgw~W`_5S`lDI{DXh!YaAOR3{*+?J?f< zt#2N1-WsbdmjE?=Dv>e`0jk8wNMIhfRNmKoGdx-M%d_Ds^x`V2ElMjuv#}<>+m*4Z zZS*&}ts)B@j1@Z+M*7Kj+FzeZs9LrVBI>?xme?x%n6qLvCw6?Uugnh7?yATnmJ;}4Lcq59+|@7=pcG?N&@dz++|cwU=BA_4ITudmnimj2 zdQMh)?-$=~<9v-?Uht;la&A}h!L575`8K_=JpC$n1iGm%5db2IW2C;#gX+sZeX}H8 z+W;;qt$+xtl1NB?q7=?`g!!lu01xF>cs2S)1KJd7Upvy}uBuMdbL+yf#@e%-l$s4t zaDKbECAfmkTT+1uX-m5^K zj)&E9#C1=P<$EQ&NKfE#DguDiX#Tc{!rQg!DIDBqXPS~)J$%+2mV0q`#QUzH;Z*JK zW+x3?`F`b`ED^VbD>hO83K&(Wa%9zt{qpruQ`n{uXZ>NdFFqYb{hC6m(xNLp%|!Ei z`!dJS-HO$E7y`gZaT8}h$U>CTG}|5&9q24qrH`UH+t6(YTEtgipT(nZQZGA?=2q-3 z(M+VZ(a)OeV}hmQsX?Wyy@h1s`&6XR2O|SFt}t;a37~kRO)d!_Y_{`nro;X-r0Akh})^lO!ISNNM+quO+Hgx)aFZe z=LDdkGVg=1tP3y3*ONOFN%KQQ4)vGz#zAaZ{nAENk-OD+c4&2)r`H$JWZ+uDGMgjn z`8*O>=1EU*CO$t)%s(+DAjwP%kEZ6xmm0S_AJ=PBb$+vDYofoGT_7l+>LYUH^(K_2dO>6lq0X%k3QLJ&}dYK(y=*3>7_+QRsWu&Pkj{x?-g*(XZ4M5nHD zGxsV10G8jXVY4#elc@rdk5yMJqM3)ljnr+Hi!G$JlN&o)EN61kv7!0wV}lBbpZ(Na zSl;-KE6yIHK-Lhw^?~v0WRHsacayB$jcBtz4HP^WgydQKhO1RLhou;U6gQp81LP{dU5$bDc zGBd#C)Or_D?rz{@;Yg_jbvk^d-_kf6aEMmcxtp@5d*hqm#>Gj@?xE>(_Cd;zW6?5w z-4ovDB15{si)oshgf8s51_CjeuQ*zyDC?SzOhc_MPYV(BB(ph!NMVC$+x^Pvv)RU+ z8gh}#ZhE5geU~?yz`aF0Z`+qSW9%J4If>y6V}jx7O=qxXpJhm;I?kg;{R^WSXvK#( z-w|ZnS#IVAj43%YQA@3AJC$~4^^H)ibHNXRz=y*j>;tWq>^;>Pfz9za@_DiYAwwr>JqmeV+ zH|Dva=bHR%o#9E2^_EcS;urgVGpj?-;&le_awa!P8o%_USl`EL3LW_XfNB&8Bm~45 z$6>eA*fAa?j>;;^kT9#Fkn_7U_-)iz+y?z(Sw@5AgbB_ z{ASxW|` zd@c;lr5KkkFMs!Bz`PCeXH^hfWzGR>1Qduzvjj6iRYS1)7E{hCP6?mS zt%tmI=BLyx599_~F~XB|2n&tubb315>)%|sNK0FF^P3`%xC z*k@CjP`o0l1`!Md)y%c&R5(|}*$NQr| zT%0ISvZT%zuE%kB;xzeisavILovnaZ`jx0y1r`#_I=~fyD&5PXf;NCDb5Y*Yp8HL` zB50badg!T=4NqN8&VeJFHd1c&nE%6H}@#Ktw55R7`3d zCL%=GY0S!^&@%>BUPHBx*zz|Cv`m>nW1WhwxR)&tjh$T+4ANbzk{6W)t=i8@7|xU! z{!7EWUhpVg6}qCpELXwYN8zTTx+@N>fQH?Uh{iZloD6H#i!`|?OnXE`-W8@ds~(Z) z-X^zhF^*3AH}_}HiClJ+_o6D=UR-VzUh?P}K+C9x2gmE{-EKFI-3)`>oI-Yh*W7a| z@HT@P53Yb^$Qfgtn9x;Z=Yu7Yt`gfEm|3Gv!qXy^o0bP_I<1Rjj#DOLw~yu7Xjx=< z(ca39F=CmXXDHpPC3~;M9ucvKs*1?q{RG{47_zc1WfN#BFuH5j{^eYn^5}8_^hpnGqH*eG1XJ@Jfp-|p|(jgW@C2J-lj02 z7LoI+txAIFxnt5?Hk#Q>mQ!l>S=JN4l+l+37z>^7ZZADWM~QPB^8}8^)Kdv2)R$iI|QtvJyb0N@)36MQ1i-N)s*Q7h6UxfGi0lfbI`js zm?NExFG`!L!-}ky&raVm?|+(SN?f|s%UdV&OQjGN6Q@GIuAbHi2sxe$0F|w0qKq+=So#vs`-1USV8K7!e>-4G2rE)?li$?PuJP z-d~N2OuE&0X!w zB7JdLgy~$leA7K)=r(ZDX0rm-?s|T#)1_g26){ulSp(%Brrq@VwDsefl8jpNR;Oc} z`FDwMd5xKU(U}wA)jE~+(LSdovGx}h1*WmErbv2l0zfp~%$5qQ-mT^4Nee;HT*O=E z0d+mNmMLP{Qf)BX5!mf^hw(+PWKsd!zhRh`^n!j}<#5C}Ss)U~yykn!Ut~3_y^7f| zt%xuO07cL)OIPv5PR75~i_G50l*Lii``Y)eXm33=s_Ax_&hVwPQNmy%|2#QC&*`wY z6dqr%BTE14%}}b>hcws9zHfHEg(}*Q0B$r1pvGy)f13}x3vM0T3Qw}}uO~x~%C&9|UWeuhP z8Y~@EOLb%XHnmo7o$FkI8RK(u!d@XZOW0R=p>%qhD}@0>NRZy;X>!ms`K4%S(+c&N z+Rrz!fMX9<=;c{sqP5;&rAOLwYR_SwI@wwXc*5ewADOuZ@ znaOXJiaFJ>;VE<3m(+Zwp-zfenZ@^-rGuJWM(ap4oLdTaZ>Y-Qn`BABBi%|Q|$UOFiJSNxXj(O8XPWBW!Kq)sk?1fFpE=v&FxGMp)cpQ1a-~UXWRR= z;dYUOIZT6AzVs^Gdc|a|qNnqcTA4;_lXa>kV!+i4X+P-QtUWte;|C@xCa>A-INymj z8{vGBEBea9%%T`mDDT1sXV8AqH)c?FT2`4u5-Kr z`ohN+rlIL$Lp2iLB5_vp*UtBsgOxSZMT0GKXz(9>624_J22C%ZOa&$~uwKu(;o`gs z&00*MGdySA48aS&!r_Jc+_+u0`ejOQ$1B31;FQA|#1DuO5MFit1vXVfm63ohH`4`}#AM?X1h7$+#Mh z$1#tKGH97Y*ROo3idneNSIo#M*P0#_w*921%^f9sX^u6UhAg~SP0rY;&zbdq`xjX^ z3-vVhRceQpU1!Etd;QNEce&_xt=xs5RcG?NkRu<8475jAP%x%Y?;?ozQkw13AF-ZH zp?bS|0N!h&w^MA0-idXq?w-A$0x=s_#SC?7^YhX=pT6&%(WSK!Nde3tVID*xa|zDL zsSfZoGM*DZ^2p*7Vbd4%?ylX|(RYI`SMIz7xb6kyZ4F-owH ztqiC6C+Db)JaeBN|8#fulqZ|yxrj|<3JWk%IOB`yW>t=cFjgb|$;`zgpUSeMpju9z z`$Z0(9Cg}(IErNcvH~8K-byeHGhc^%qG-kh*YPOKl}?X*Ee&QOiY_L)1cmsCxo1nS z4bYxw%m z`COHe_rog^z~*Nc5!F2G?s0HuaPO=Z=d~fJ@uHIWHrsDKqGY!gS9$2 z`t2<)X=in+P`gpTUns<~J+d8s5$APkGR~PTeGa_t!nlR6?+G81KSjUKIrhI0u!5OH z!px9+SvWT)cUzw)=6b)mfU+A;5XlO!1xMhZ_P2c)eGxNrpgr-cPoKOvTw7w#!aXeO z3RMffm@+Tl=ni)MKEZ4ZcOk0JR5V5d)_uTc8Nqt9iazF`cHcA?4*(-!5Sct!Y%*Du zdTD9>3;;kh$vJ0Ti=}E2dBsFz=IxpXxX7%#70s&bo1ML@R=da1-=X~=dG!pt0UDFD zjb(%&m5z@_FL-TTchuZYjCqN`6T1z)1Mo1MqKD#iLWVyuc zCJ1G-5_Qh=ER6GJh3RhwGnQcsgIVm%x4(Fvd5j&!-9}fOm7d8hX_GZpsIXYnx5X$# zN{Y5~N8~}wraE`~>*?`3?6Y5unQ@Z(ia~=dHiNiKxYh^n2{S)1b&whhTbSPL@j`X{ zBkVS}ntx}`%P+akS<-~2kM&HtZLU}lM)n!sVh4UOU?prt7xzs7%znlqoFX@k%bPT4 zTLk<{GU({?dN`twq!!15r*8oS;++hKlxI8m>iawc{Ev?t%a`X^ggaTJKOqCj@t{o-%Rf2kA8DW zW^t;;4bgCiYE(`sW&vmlRrU2iOz3O$>nAe{=~QUoKn_)%s}3r4(%m;G^FQ@$ml#wX zHUsEdi)hB7D)3%-+1_kIGZO3R7A$F5ZXC&o0I1Ha2}(toG%C?1WIeG^3sji6w|u&) z!0f12z01M_0}(TaG;?KA86?J$iHQ=uOqrl~iAXO)9?oT|45=m$%VajSxTJ@)0leH` z#wZr-uZAC8gVh2VgD%i30It#2sc!oo5w!?>Z`JQsC{6RH+k`vZOebz7_HOXhwq^j5 z%KuOW*+oPo)+urP4%W%q^fKp<`yD^%~?4 z3=9&gssgOQJ=*|M>amVT%KRKxdbABMa~FnUo&H~*?5_fS5HT4ftu|a~EX+~Wm(A)~ zv^GKy9rWU6m!tID5W5KRMoYL}QfAq*cslp-S1I5%T}1{{2&!|1SVMZabrjwfsE}++ zqEc1O44IxuSO7n6^0C!Y6 zXA4NC0Rr0Z_lbaY8k@ALXlDv4x5ej^S@W}g$?d~4Sia7r4_RcMDI7QI#yJ7N9U4V0 z%SHeY5n)*&02djhjyc}+4tILMjO7nuh-1t;iJJfbQTTJwGN4u6x znX`wI<%3Dm0P~Gq8Cw&-B(Rv$?Tiucl>j(xGKb_#BMEJ$HLWjpb?BV0rD8SHAbb2T|1w_OTAN2EYs=(b9u=%}&L2H4tZGadii?<0%m_ zK+0y|urpoFwPEzL{6&>wVg9Zq+cblkw}^;TC#y=m4!*LL+lzdJ<{W*^gXfxk5V1r_ zN=%f*LA$si^J1#ZCCS#5f1fS4dIS@kQl94iLRRl1y^ULr=Id4zhKPtms?TQnIaGT5 z#lx+5l+ua`lIl?_>0GVXnNRRx+kF+h>nE8OI6L^;?4!>X<=XXek!It z;Ud5sfEYqJj?eeIR}DLzQ*8M%vuc_B=dKX5a*_gKq<>GseG>rTMx03R09A^VEjEBt z?N>14sZCWP0rcw0ZnxiGA0h{@GhLkK;tc0AHJaTissdIKJ`6(;DXfI&N{WP#EcvHq z+dC*d)YBJ}&qS{aq@Vh)Bb+&dx|vjSqc*|V0=jtj+e4Z^OiJ;gzZ0B0)|U1sn|LZq zj+0$I+m1gK!BnfeYh%p0%m3gKz}Zm9T{7R_Z-g)uuRneD z+4Jw2B-r#R_J5iimN~i7nzKuu1t6{g# zxz}6m*wZxTZ?e|-x!L@no|*6x&otJi46i3!tUMcJJRY9zb}9EmsuVk$xiZULIO+LS z?P31{X(K2hlI^41F9Co|Wl&rkK%Vh@-j%Mo^HP;N-7Th8kL7yu3UL-DdhL~0zW2lT zML5QHj=G-NLgV3 zqU<&Y1u!v^GeR|+001B^b>Hb(U8s_nh{$_=)Ez3f;u8Fouf0=FM~W`zuS_Itg-fuw zgqI>nn>g;7aGPHt7p5?!@6;xCL}soLck>MN;4GRki?_%00a`2RI^v7yQq{hKTiA*a~qp2;VkB+_nM1njBeu3 zCcJzSfCrZI-u5;iP_RNtWdHQ()Ayf0cerMnM2hrEsGNx?YC0up&YX-kz9`Bh(Qm^k zCyNd?X+U*tD(kav)9BC+x4lRZ@zM;@e4wS&;=k7(w}^R5TIDXGAi3KBX)cZ>y!J+y z8ff|1uVhzY*CXCN0^nL!Ov9P8_5ap8-nL=%Y(k}db1@6{pBi)&alM$5b}8 zPG%JlvpjkF z!z@VCCdCWBaYht#d%asM z)K}`RH)iG@L-11814uMH+z0LDs&2IkL{;6vHtz+yo5rc7g`Rva7i_|;db_2?Ai6*? zXn&V(_Z|8~2lX-#S@}N*4rV@Nxjgl)`&(z8(*k#*V6_rQN2Il#FAM{tA z*Ic0V?(8~Ql|)q5$Jy10C&xT9_L@*`mZ~Jn0I$9F>hX9T!q7Xso}66du-zUkhn4as zkG``BK+k`9C7hipm87&}ijtG$SkC<1B>mf)b6HtnZus?t&VAd#3!PO7J>@$q69H2p z7eajH$^Mlm`wu>Rajn=rc}he=$~qEJiIJa9152E9XG|$;M<~w1D>Y6lG2g$6mqwQ_ z+KRX?v?tPJZ)e&h8| z7?KLXI#RAIYT zavJhBGu21rt^pXCt4rF_RnORb}JPQ*hGr&xLUH)tuAxmWsTd_zGOiJJ~sY;iw_biw>1Yu^& zjWdLuk0UA4CjbJ%Fi_5YEmCr^P5mnqaUwT1|D`P_CoNyR-O`cY(5o}Cnk{Vleg1Ze zEL=K}(z+1BO0kkMuvfD+8k13Q!=zmLDIXw-&sS9fQ4kOvV>HQT7{ZI|XS+|lN*IYP zwl=AZdYAMu@cx21gWj#vmEj(30JYM<2QRD`9;vnHOT0$+wgH@6!uLbi4|07RgA61) zVnvD-7>OvAEz5J17PlCaB&w8IDe+QNc6kmGX3tLf#R|KTKP>`=r?q8fVIii1$~)qN zmi~hbBn)8^E-r9v5w26f>XHlypn-Hr11!m+1Q|^`VU8=_24I|BWeb@G0;MvI#55~g zo3ydwkpdA>Bxa3Z3M>#Iwv;m2<-DHWlo!Xya@h{YlLu0r@lvb~`_DDk+{qX3!Ca$! z=Bth$mlDyas?Z?}M06ZSf=ujiL2v*G!fwzQLoh_2yQr^W;i3AHefx*LvZ%~~(n5Kj zmlXbhu46vP7Zv#JtunOXO@XfPCpxIYNmj3_(?oag4|D z)u&JP!w&H%8T%LZrAq^Dt-`%56vW8H4H`~FFQXTb*JBt`E8HmEjtms(awWWwb4>Lh z^6q=@{p0`PcUV5;{S^tbATScc#XRhGHlGkA5)CX(A#6Oxq6N~L!%d1sK?xe5&P9E3 zJcx^;H0zuKL1eiy7Kmo=>*7baJnMT7VISkj3>JZ^At_6oQex1VSv3|7Ku+gC0CvNU zyv(5yfQTHA<1hrNV<`kQ48hLZqrQ~q>jW=IIv zwmUL}z@eIs*=h7}eF)dbSpC+#WXp2ir$o`V1w;|m!$Fdv^i z`@*}QA=Nad;$%`CZ^i>~8Fj~v0LgEe=#+(wZb<-cv(DUOVh#Uz-$_|qrKlsp2a}Z$=i-cTssX}@C zc|e)eZQ^l^A3nFwww;lxtHR8?FtlRp6T7{rg@UY^onGHJNNy+glO?ecFpC9$ii8}` zJ6*pxj!8}A5LqOsz96Cys#N%PtB+BI$FkIbGDua6hY1k{kzuz({>;oD#OE~U0ztwe z;W!@cMI;BI+Rl2@iy9(m&ruykBm!46yO#>~i?OyQia zClyNpz{-Z?K^jLQ;<2p%VH}hEF~-QuK?WljVHk`jfFAuTK$S>D0z{M9DUNnNsX_1} zQ&{GP5~8satmoBeR8-rJnLh$VQCJm-^~o&JFtk)==7uwd#{1qZsq6{?pqvd$WQb#A z5TM87IPmbn^B=wY$xl7m?GM+_Co?6b>_tR%MxQ?KDP>ahjNMo*{QzAHkxlD7~hlKvGhh5fQP7A{}BiZrG@BO3xrf6as?@ zz}3~&%tCmKBLET^RmHggR@aTy6TIv-(k-MsDwg{diTZ9)Tirk@t!lJHJ*uh94q?jd z10|(674KCJA`$`-aTKR>4+=uoLr&~JGnkmgC>)EXTs{55flZ%@Ee?F?hPp*a2sibc z^Xzgh?vx=gG2KarksqA#h|?sOudt$jv-2PfJ7!G8GF*uUjH;jh^rw%9gK1WMk%KK@ z0j`$HqC*4j4^FD29-tx^C7g1?1|YfW5PMCw`;}^zVFrCN)A$~CR}!N-xiNG=iG($( z9zXNW+kfz{|M&$FSV+MnV`WB5T5iK$%ehHP-r7XatY&MJfgQq5;f9*j#^xL-EGXQ! z0?;rF?|=Aw2w}N;6~E?q_98bIgjlW}D~QBMj2Q*I`Xwr{B7&gA*+E`lJ_+d-H;>_{ zCx~t&FeQam0I5nLC&h#WF}ej|j-;w7gFUm5rAH)!LTjmIN>PAH;LGbm{afG0ejR30 zX4JyF%CrFqiK`hxNr<%=LX@LbA}Za32ToqeV#j#8V%aiO7GIfI0@B4%&iO9|E(^GH1ipybXN*K@OhlZ+Sw<%2X0okv+aUaTeC3L=~T z3|PT<`sypMzxvwogC8YFxXmnOQKd5T7S!*}2|bt1TgG;*;tYu!UMme8Sxb6i z)vK$kqP0)W?4Go=x|1Bu6l(93(u6{~tIXo@LfG%4#voEf6z3aIssNEky9PqNvM`1P zL;?T^n3*Inl1-J9Hs1&yMN*M)I2@SS7v}?KMu9<2W5&V-iJRncfz#6lO?Y{m;L9vT zxrVT?WfEBjK+T3+%rIpj=PXeA=Si#1Qntg+VQuzM+qhe<4FJkT9B1Y$5f&oj0sMKJ zsG}@iz`YkTx_}53Bhxtyw`PBIm1JKDA*f!z`}SMc&pr@4V2DI2=cx44Rl2hywE{O7 zb6Bt3bQi!` z`}8`c^BVv0Ue$PR zH6=>?`=r?bv^2m3<(pI)rnL9vO1S0$3u+^W1ZQC85+Vu`?m8{Rxll5W&E9JrxZ^O^ zZ0SCq#QqAXYE+G7k7i3vNqr#_f*pq~)94Hbzh#a{8}RP-_T;O%Ni+^xu8LgV_K!w!a8Yzij&?;Q^|n$X-d`edq0e_x&G& zLJ-8BGVc~(VN(WEacZJySUX8V_ZJGc1w69LDtnV@+ARfC%mrB&%&HN!63IR0_p9;Z z8&6JUQC#nlh~|R9d>B)yu<9&SL5rDz2^FY*930C{9=+6}-IB|;Pth2+gwUw=C6qDaIh-CwP2 zZBxV<^Io(xF272pn7oDi6X3%A&vjeq9@ct3CQz><YGlRoCHl!+ha;#CJPG>G>$30otT-UYH_<*j^0b7a&nS40|4e(S9Q3U z!dV+FL_sM)pI+^bFGdm~MBHVK!g~Yn$-0CG3k0jw8qPVdPq90kLhq`adDyzgrKJrg zlE6>~KuU2Z;oZ02`WJuvCvx?q&VJst{gx@3oS80XQ-d^x@FeDqit<<0ESlxd*5ef? zUOr2OOjA*s*@S12Rwut-fn2=FJCal`F$zd7yH-t}r&riwukzkID=45)6yHWSXv~X%I+n#fn%;_qNReXM`iuPXMFKw#P($59N)Q3P`_9|{)1UmY>bS}8yDCi4mIh8< zjJYCyo4UUVHW*Wk9 zI2c{51OP=5bh5+QH3tAHI!x4z4$)?`AR?gn;&|BY2UX44 zglvqdSx=JV?C4y*B4`{(8jqiU>+M0rncGgBkjtX7b9aq4(10zm2oE3uXyKcrt+m(! z<&bHr%JyIglR;3$;qb-JzV~nc-S;HWsBt-;bzh*R5M6QQt4}3YHkw~Kp30e@2DhG| z7B7Dh=Z((LN;D;X^F!ZYP>UYOCCevwNlMGrQ>5IM9yHY;9@4g2WvOL~{1$Ku^qaRl z7xk>TtGb^mJ)1`^s%kNk8sn%cGDS8N&ttBAU}o>7KnXUUJc}l8hV{uO#Z*G;Ov0?1 z^H@yRYA$L_Lr)O~m3&}iDTokpRQ>F`@95z=v;QxL_J5rQY;g>^R{~IGBg_&gLWwQi zQZhgiE1e<*y2Y6WjmoZgFAz`CQ6m-GRWZF< zyUS;n;3lIJ4bXXg3+gCRntvvS)$!3uwcR;RQ*>A@xVZOC#$gZ%C{iwUWXYWfIciwM zIms~DMsX?HQyuBWlqlowm_+6Iid7{`LBbqWg9t&a5F8ON%ifhCW<3Uxy+LQhc8akXIr(@aD30%VGC>=VQmr zL4xT?myhSGPGxR&n+~GfpzCkUaAECeHc&v6Kq>PFfadp&$Ll^V7h}|M*zFF70}+ML zpf}42)PZscAG0CS4mO{pbiU}olUZl%58N;2M$>eaMq zR-!t6w$YiH1(y7r`7`f+`t^VHhtJ0YNf<|B4gk#E!179MAJOYE&l36V!W<5V{eC~j zu}3_5deW4Kz>6TaPH44)9M!RGL}ci`_kC|B=Z4xX>&8^S7AGH<*?6V>%^*gdN`W?< zfG7OEW%u)GBs!%{-tsPmCt&8ld>oI+IagepWErN+?PkKMh^FAZldB0L2{J~V^}mdt zDl*N&fmIYh$_1o)#8*D|?v6+X5$wzeT#{f>#xToG$ho90_G%Z0EnDyafnXC0GqGJ; znR==G8IoXm7xUZ>K;$4yJZgOP=__CQ(r5pN-}yZno7()y3*exuM}KX zmoZRP5gCRs9*;dSWs)uIt(}abQI}c;KisT+b7CipJS;qz8>oa}CuBk^Svc6(1I{~7 zd0cl3yzj(1pXGUfgTNpXWhIoD8a*6eeC6|>`~83U2iL&SRM^EW+U9KkI<;?UooAgMWE_1QAEej?3KfSeig#b5|)Dyy5Gy{ML4uU#}bS887ajo3E_v)Ly zxVK4^g(?V?g(*&}4Pb_^mr#hutU=)xljX)usfnYf8Zw;)Y}&MER9S0;8$^tD7Sm;n zYH#Ops25NyCN|~dIg=wwudraD(^#O{`D7MqiR^v_X0*z%aC+-{L3-piOa^?b^Cf1q zEk)n#(nZxF>p7WuR!gV!V7U~>%vw>>0v*TW;aflc^*FvDRbpipQZoR!sP!aQEdun? z+qCfppR1eb;-57stp_tHkkQRH`d|`(u@(0``lUgW;o55I2`G+;<2Qf&Yyb6s|IhYM z--t}yNyF5n0p(9x=-i!=pwb1Wc_@^?%t=C$Tw;Dv3Z{JaYrj$aS`iEE`%>55P*sfM zZrCm7P|);@h1@tFZ?sS%ikOwqfo|fI{lu1JU`55OKpAw|V78kcxhIxI#0cJs#N$mM zCFp5>PI4OnInAG~{K;2ukJ+39>Mb_OlD4TO&37nOC7#)$oft%pOqTEAMkFGOd1MiV z9*@V}Zl^IO3xse}g}n4IgyX_OkT@P+eR}n&*I%c@3$eE3MsDKUiv z@dV&L7rl0{aX*|R#M{&Pvm_e^6JZ=kzVO~>e*5?Sdzh%pqky=CZ(c%-jcN^5gQ1RDsVWw z_?d5f3pz5ZTFz$>EtSj(PDkgKU9l|u05tP|D?Iq!!4}QrM=cU~9h2S-6gfbMloU7~ zzwwo?{`bHAyC=hQXL7*$hE*bVDjJ+<05gXmhI6;9fES`E5e$`n`a`oBYzIRUVHjc@ zhhew;l`<8~&Ls9~bG0u~RrAl@)D-xgHke&QaBO`B6VfZ#>`KB zuc{Chk>hxDMF7p6=k%sqi%1~CKzQxR)7PKABJp_F{O3I<`1Bx;N&;|6R66wl=xjR4 zd3E!#CaOA~x?8GZyoaxJoF}Ty^C*KbjU);c5(PN0aKxA1d-q@e>p%Io&pxm(uCA_L z9IP~JMG>M#Nt&C5A#S0~)EHUBiXWA@%2?Ezal#95c7?Jy{@OD$a^)!^0yL^6ZmhyJ zXV*{iq&8L%Kd9fuudr8+ z`FHo8X>+wpbpHp}k6kP%k7--UPsyCWmp*Ar&WV{#)k?wy$!af&N<^X@7o=()K&Mf6 zS5Gx?yguUj^I!V*FNi5Bg9rs?CC>Tu)A;V$g>6#OtQKf2Kgi6b2b+AkENM+DF&!mW zQuR{@efMk(O8&5&HmQDeB!HO`;O-(FXO*+4nRu z%P{O>938n$0+2{x=9pb|v*4orpoc86)pxr^rF8jc^1UV!8EBz)^H8Zt^AJ&^38~r9 zU`p}bc*+)-0=k2%N`nPZX z@pryUiWsX+m=UMqIp@FksU3VN$KW`%sex0f%mrk5wz}xYqK*<|kxszBxI?Cs$4K`aoprpJ z`N@+fM5L;QOud%I2vzw^`ITcFO(1ZSOuU{tb^nT&q|3@M8DLMQuUH(CL_dxeA~y`J zPUZ-`OgjbNOlrdU=*v8pH|#HQ3Qh*?W7Ra=ocje2!;HEIm1 zU;g6fqaI_7hzJ+L07av~%&DRPF*{~%Jw)T;y6Y{-^YKamPFb<(k|MjB-Etkhw;yw( z9(`k~AY^OLZWjm|hG9Is_|oS-``zz;_ZW{PtSnw>)Ew6{wheWJD&sj`{l(Fj1kcxoHHm z4^5aErE9_yDX&s98PPKKxZo`B8tZ2@J?q|Hm6#=xCbu+Bnvx zr_4EhP4%`FAObP5?uH@8gC35b{o?0B!1eWuoeWpItMTxHhzPPV8Ns=58}sjS6L0YN z3OqUjurlM$Pn9-c)Y%dPr?71;f=7+Rc`B@1g^T0Za$a|mq)HicBt+2VAF3VO}Slh>WlBO0j`3Qt{TJ(nM`D&cCQkLeS3T<_^;-yq{5h!%gWB=p`kp7&jUsOo}aru8Jiwi95EdkympzfqP zBq!H=*1$&{_uAO2Rk0D-a8Otin|k(1BWlG)B>sR1h+v9{%q%3FU)d;ANtLr=V>T`S zsz$ELK1G?XWY-2}kbsp*p&&%n!}I3>`t>hqYwOjTko%>(ruFggB5E>3YX1_dj)hn4nv4JnWBdv zVhU~#g@i1(pkgiiti3%r4B>D%ZmhHF_fZxU9hp3MX1{XkcVw)b`>v|$Ox9|d*Qh9D zI*NN}9P_j%>~F-CnKf!J%SDZdw?ZN9M!aXb@?KshA2?Db!^}()a!np1VCHw=xdC>P zK?+_Ii;kp>e3Tp`@9iX#YM0pe6?cDw*I$Yk05KF6;2RH2`scs(lh+@7up2;@_O4n9 zA>e{?Ktc#i+Aqt#0;(y(xumqxTND^?!plJbE@%umm+Qa52t-6A0%aM5>1$v4%0K)k z|1|&Vj%Kp2<!;;rCVQlFqhr%VEK!S+Z zyh(Pl%2HaD^VJY>_PsJoh#m0RsWT^tA{))}M%)ZCA+cgj14xKc{jAqtdF3;2eTw2W zP`vVPm`Oh62hE?QJ_{KOuzlY0G8eG{ZpU!;Djk})8EZRE5I`Iw zGmFT09A}BWXrbOoBP~n?4gBT0X__(9mm=dBi}ofPrPuD>%ul~$bU_wJ(v*aao{7i} z5Ub(JlxoP@?5IKSdJKK6(>~xL9j}9$!5BnP2)v z8jp;~M8wJ@LQ3FCD|md#mPdRzGvPJo|S&IBf3Im>flPG5Hd{WyH33Hq$|Hxw%&OOBz7M|TYRR&QU z2Vpwux4!(v|LVW{C%W7H==t+uxEid+9#48X(d1HTmMegl7J~G7Nd=qQ1BbXRDNxcX z3Uf;v(j+$JSt5e{yJ*u8Y*C2|W&X6l5i!*?W~%qjlniNikRG>YK_p)W!6YTI2nP`W zvE%i|+6lRml;%DOSOhizl0a?0=NuMq51r<=c&Q}>r~EYzS~5zjXsSY)tWruM3^pa# zs|dsN7>Xp%$%Ib_mZIb>OH>G0&B#}(uzGKZ@;Wa`c=9U;ihVer$Y2~noQ~x5RB{!? zw0gqi1DM^xHo9wHrcToS=Qo|vm}!)1{bd{#AW4cZ0ucm}p*jk{@%ZPy{?I;b zfbG&LKnzM;ndZGN*1c)UR6}TeeG=o&A~>c8n{33SkHY+sUYh5GLX&qHvsH8G&g+q= zfb4!$v)r!wzbwpnlbcHztcp=onDou3S6_Jd-GBZ^f4bl8qgo*fb4|<8(()rSM6)mb zRD0OJq~*z&g~Je%>ba?^&gZWxAk#`HbTgQ}i;wWK=-6hl+4T<1FLsQPh<3wp9LG=> z96t%n48j=4-LT66YZG>Erh~4)IjuIq^W)-3VEL)2L@EKxeIAb^5s6s&AtoXdq)aKS zHDlOxFYdj#{}TX{*=Y_TR5+nzX~kF>IlLsaE+Lr`GDrxLGZ)p~2g~`)ppqUI&r-$} zF^;?a-usnmR7eavMm+ABe(ZCf!;5Fv<6#$qfEffpjCEt(q^3C^GPmOAdp4Yh1~VJI z<*7$P0NSwS1FA?9dHs>I!1v=bKv=XC8^6*I%BWmIgAn96CgfO>T@4921 zw4-=($jnQdKjq{7+;ovtN!bY{ zeDVvt9ZWU=$q`qpN8(WvfR6?!ln`IpKl%DszWD$B$Nz+{t~Bv$Ihq_KruP7m<+|Bi zDQ9&v|tx(D}aeL`??l^A!7@f;@f1#G;#2$j|w?kE&2jh08HH zk5@0-(Q%QaDp$d!+)3-yU)ZXXg?!)*_>;a1NZRna%UUpk`2m;I2qjpIDCJAo?FMEZ z$2i0IPJ5o9m#?((3IG8i3~>>bg<^8qMp}yGWJM{`+bKoT;(AbUIyzQy?}lW0NV9zS zSuGzN;~0hz$H{699c7T`AAa!V&%E=5hi4zWfAu8nhAY*h#uKHoE(leK9N%kdpp*Cg zWg-Auirg2tAKj6+1Q^tD1{Mo1fFd3~`*) z`tf=o>LX&RFN42hy+g2()lJD2ItJT50qAiv?S8bF7*_RuCN7k5dkP;<@K$;H{Q zk|@-u3lW>ro%%#^Ibxb*O?b*rk*3d@mGLZWev7|MA76<1|Wz;^P9_ZQ6@78BBdm<2`vF*K>WFHeGAvuS64ft6v8b$CB99RpR50) zZOYFci?9-Jv@|yoWlKqGgl7L+^s?T(-}60xnFzqk3k)3wzJBri&wcY7-}x{9tLx(t zLtthmHcVMgQ9K^^yM2r!kxB?#3?U{2RDU+xY(r%AQ;*0a!eJs68RiMja)g0!l}l^- z+@pdu!ljIJJ*JdZ3@pqfV;uLpy{ZBj$8opY8HZj_v!(IL z9jX!yAxJ9JHCLC<(6?_e!}YPYg3OvxeTwY!EL*kZ=(gzT{Gm zSe~toj4k!~$Gd>z@dc5*wtMwwe&Q$o(Lete&kn~h>?qwOj--GRXusPZjxS^w1fnq( z8sKM5olB+e^f%iqFx?b2;}W%QI*Kl$b^g=I9!@3$sCdLgvgf~9c9>A1i=mT}H%U?QFz$B2+}w)g>+K z!@?knPyx*56GD(6G%^6Bw3-lJXj5R`bjrd}v19()m%jMMt4{F@pE2Y>k8?;PWCw|g>1Wam8qs^b`T zJ5Ax1q_Jo`N)q73neQukW=TL%La3NGBKijhm$D`?eFmoShbm{!pM<`%u9<3&rcUP- zT1-7V$3)*O^OZ_98L;mIH|U3H^k^HRG>97GbrhB{j>1yhlYF1X83d82dOXIaji+$U zK4%dT&D^ZZZ0AJ;Su96I9aXCUO13*+(ZRsVGgy|>lGLP-tHRMUu`nN18Eq;8Oy%uN zAY*L^3Uh$uXK4^RjAI!1$G`ejym*E}N z6dE`OIRp|FRe(fPHBdW_5bG`+GSYBu=@9 zEd--*#~|Vmh&d7zP*N!xM3)j-Ed{5rWkE38EEF=PeMv}ma;2QMHQ{Ro2adBqn-WHn z1rfjXs*xZhLc~x7Aq)XTHZ~P(P7+lGgczBJv>hNOvqmsk$Ty2dB8ZScDdyV6lO4s8 zMkTuuLX7z0dU!Gru7Bg#|MKzqk9Mj;=Ifv3BvN$nOoiVngwT-{HjwtJ=7dK@8}JP} zwrW{geu!umx!~)Kcl!UcD*|BUodH~OF*r9t)JezuoB^0(VT_|?_asLrtXW*7v@9O$L{y@IRz%Cp zFPG0Qe}FrbGu<>3ub0QF5Dh62jmI$zL7~D@X=XUR2#|_wq@e?d$XrTFpXI`v!X$`T zOwM{`#Y)wl@~5Wn0mK-Ut!!C4LtMXG<-E2@5Q$Z2Yo&gf5HiD3KPTRS8?^|CNY_fsfbEf9+R);g!IoDmmyRIo(~<(eq`8hamuVOw099 zUuE}9g-n(2Q`m}V^EQWQm+YR;vUge-&hdC8qG1TM;AcJ5_+5!;KkVN6o(ty)3ojC>gt0JKHTqj zEII82GYcOMhuv-$HMR=rBs+~T7q?N%cO5kXQL>yjveE27S@2Nj3sh?10kCAEl*ysZ zf4M}+lCgl8Gz{`n-~7q9u3nR82S!zo_b!shJZ2C%q2j)80`RCDOAN9haceDE%GmHE z>Yopk4xg%y#PZFrfBjFt^WEnMEho}KBrUj7OnZFlu$soxLrDxUYnfCZ*+-i)8Swdn zmYqYV>RppMXi;!u3B^Hho@Hp^pQD-J+0v|ttMyy6Iemv=u7hg6{?xgXi!Ixt5r(K* z>PHeKv}>QeLTb0##^y^VLs$<4a#Y{@{m4=gJ9HDkNwqp_*Be9?-` zKI8qp8ITrkB*i6+Pw59rS6(|*5dZ~AmCIrINTC6iiih%wSqlKH)v_d76%~>_-!;FK z!Vggz&!)uoAOJH zNERm2@pyRs)hEC43qQ**o?VGiDF|mQXW|BXk=K}yx&E*P=i#N=mN0$XVk_-Q;oIhO zrUvD#*0%?L`5zW$%-VU+%9OOgf8Ow<5~~P=G(ZE5Kl9VyQXO|!!TdlCpHnnXw`zAR zC5!*h-DF+Tyct?tng7~+vuV9#eOV@)DgTvm*L#CPqiTKC%WSa$R5gyV5g@97A`D?1 zBiF1efcK72nc$w%~?O$K$x$?QA}N z-4r+;kH_P&q$FCrbG`BPC@X8;+l3{JV+_Lpoo{giBWpEufjEu;f`r52;2W4wB|{jG zW72lo3dA^S95rf;8lz$VX|+YhI1UoV7a#umul!ON#}H#+%#A}I!vY@0 z1|ZCra)NE*uUY-06)nvjks|X<&)Q6-%>I`^aE1ygNI&=9yFc;GZ~V9a?4Lb-{S)J; zD?V!G#FD*$QuO9oDzy$%(r=UL#AtQc^OBCvX`N^~-En|vjZX|Hbbq~_c z4q~F78R3gp4-s7-kNc~g6}PeP!!8K%v**u;Auur%*Vl*LZqTT)jzmo|7f){$LJ*eY zcpS$FD2K4ySy6S>sBw%|=O9)b@qErj7z!bb(M{M)HNz0hhfF6cD2(ra1y@J(_G3kV?nix`q zp6P!GlyhWd&oDpVWTJTg2jBbaf9WrMLWc41p%6#{kySKZEsK6Ha1WI#(m-4g#B|0u zN4ziLUI_qNC;QI^sJ~)NN+bdeq~qcF&-}zU{_PLG`fGQ^@ zx5S-N)~7KiA;65ig$2ek>l;zD~IwFdu2OndT^rrq- z?J>!vhloP5H_jSZ?E!D$h*61ozu&1QU(I0%$q*u54}`GE@MOLWe6_FR$@BivA{M>*3 z|NMI&{OEc&TpgpTjwBea_C$QRK2UP=XCkuHDi(}W9Dr=7Aq-<2qecsr+zmtW`Ed?E z{?0F7DI;zrA`5AtSh@qTd4O%s8B0$NVxA(jl`+f|*INWQqkef&pTdV@xC@48t)h<&8Hg z#UM3jpY}9KlVLVVHZdw6#~48rM`%K|4wITUkvhwSy_b0$jN>?u3mZrO?#v`2N7c#u z7AP9RAR!PNZyv(n$xI|-rKkvrZ%CnVk~LH&YX%8n2$n6$?AsEUnd7J?@kUIRb|bXM z<0t?tj^lBZ5JXsbR3(MkoP&hpahw)Ei5eV7)j*8O6BMe-WK}u_;c*-f<2dNyy;p{B z|HN1H`h}25exT$lrOe6EAcqrlIXeJJKWSetY*CO8}N!P+zTntKm2Yov9*$p@` zfP*Qamd&|#dGLdlTXydfK)X(jx_|F&GRa>)-Qk_Mx=#Q;qg#oa?w}{rB3_~b!A=iK)#ReY^2a!;U&6X92(UJ40IdqSi zS)-0L@^O*{DYJ9{criTA$O znDitP0x&k)+-4>P^$>|2L2*S=m5E3Q5{TpV^%p+%$-nTkKlT6qhyO_V3G_NrMB+W; ze!nM&xlBo_g-OfAYzX1Q=g-41P>etN(FY=OI2?~z<2*wsp`ss?Ff``k=JU)#E*gK* z>ZG@uz%(j{5kyDB@8+gi9t5kQW{q{43cp31UaEB8FmZP-^MrXb7ET<{;_RjMT=ZZI zrKBN*eba%jH8bQAw!`erhuC8b?teQro?15b|g`hXgV|&u4+wNU3iT? z0CccN?NwFd$SfQ}@(GBV)lJg`Eb5pPaU7McHzSsjh*U_KBm@>5fAr!1=704c z99}#V)i}msx34$#QTUx_@%_%(%yQnDlb(QxL^yUR!N-xnMTg#vxxEB*Ra?8=P9vTU z!}Dh!{Nz`^@~7YVx4-vC-#O}00f{@ZzNzMM!}LQfJbHbQ|^i-wbjBGLyz5HZ9`M9{+Gx%EMu zTN)#$}z^lbk@fEk0SuC)%{H@KU+F->o!S3 z+GRLQKBJ86>{&Bb52j4F1l`6^XRjf9v0=Bf7cm4K{ z$OsWh64OivdhP<9x7nVnnt2d)q7%*&8)w&^CV!0i_smShI*uef#={^q==f{j{`v3! z=T z+LLuh}%3YN(}B*pD(PXU6FDc#TJtIM8@J z5|Q~p60wz-Nfnh@qKrhO8e>*4GP97n98<~P#w!fdB2dNDClsI6IOGh=s?oMdbI>v} zwucgn1zo4Lp1r#q3qSv3@4Xv8{L$6^3DJnr ztV-^#k>Q{G2GhDZPd2xuS|NcOa)eX?Zc_bYMEN z$Neb9WH!*HmNe8i;9TQ3h?Ek_Q8n`c%V-mK#-M;kjZIm(cXB3zVScWy*Kd8P zF(yG)nG_mHBPj`AkH_QTfT%zBt#5t%Ti=R@XHPVlc8OcI$u zWTF2|EJ1>3R7^>vPs1b%te%+pQ&~4nR5@FX?y3u=(uOnaS$eSfdzN|n)jc50`~Cj< z`Z^53C%rj2TL9(-L|JD&&CNZ!ax$k!FmG8VTy)(2LEo~MH)&-=Be!4(v89JfNummm z>5SMV1G5C7$T3EZQ7sKa5#Scb!8%G7R?5{$GlbTb*^7~#Jxhzi0Zcjh-q|IQy{KX5 zIT8mZBC+6SFdM@>s*cbh$QM5Ix!?GuUmAb(z8+s38R6ks$_l!;s8d<*a^rIO|01@o z9PGPBf2IHKt++_FN&WoT`l2 zyFcuR$cW60s?2k$&Z%=%dud(Osfvt@jEvZ^$KN))24%K?$A$CHz31I-w$HA{g=s7W z)K3*`S*`z6fX36b*rN@3sYn~!G;EsN{CfB?6REE2F8I$!Yttx{5-pyJ zv>7Cc(@Wdyee2p9<4YknK8dm%-PL1S-^bB%_>~Nqs){O_YxydYT;<;HAwNV{DCa8X zgxdZ<4+dnGSta)3&g56$`WAC=P}TE_1W7i;*$cU8At<1m%c$0>0T2Kn1N#D~9AVE8 z*r3KNApl5vS|-=0rzIv*a5|xB$-O+Txqs42u%D%P^HO~RF63I4B+9O9!|x@{9uNiq zJKqO@3dGG0@4fBfum959{`2SlYVU@duFVc6J3A;&L>Nf~y+u#)el$8F==~JJ7UPI~ zp$v9u$h-pv1jlSdRa8{lD}vUW#b7<`k#>O+7#4>SU(CyrgdjqVkr#Xfi^rh@W-*mw z^kSF;Z;odKgBS|t0_5*SwF(ktMu~=z@#w@y!l{W2*_*cY(ZYMluJraI5s393AjHFj zj@o>-Yx>Cedx6&%&j3vN)L=&hkqnI^e`Hl_MA!pPh@dzSVIkBq2R^XXM?=MNdDTJv zB34gm@%dv-15h_Ohz79(8XwuJVFl_^0UexWR!@!Y%B-kPQW*`hQgrFV`;3|R>;M2l zh*;ONbLVzyd%)uMD*W9Kf0XtQr-%DM&JqK%2UziMtwFJ-CgLtP6QxTAQ$I)Y^&rMw z3Tn^r{+c5pXK>JWWFF_hpb!rR8WpPMzK*~Y*U!nBfU?TzxH2e+>xj7V+kl&bd;G!s zuUx(Iw_pAH$@HA7>*=)G-`}6?><#bHkU=5E9w0IRsXW*NkK9Y)ph~=#x#JY`kfFx$ z72B|=r9!};K`k#r`lpr(>B`+PH?p;9g!1?t|G z!?XW0r!@I%F@ViADb1l}HU<_^{CtBV;v7fxq3jljARa6)P6dmwvvGPMywmI{M0$M> zBED870C0$F5Ro(rw%6_l(8M^ECPWw+5fGRiGtcG+74cN+kG${M>3m*^BVhpMk}q`( z^(17R6lKA_t0s~q70^z>2e1hq;LRaSO|Z$AMy#D3JpJe|%&r~$!?(XX**$-FILB%t zB~_(BNlal!(8#lmQd>dyNN5?0dZSrV(?nX~E0cB+)gREpVDLwX%G~LFhd$`as8=>0 z_2pQ|myq#50N&iuJ|F|`Q!J+DAY@_>Fyghw=`$Y#(7(S0HgMmNp8+i!mkVW@0YLM< z;=4A8AjqJ#A%&}ek zb`dI_1r*PW|(n=1Y7+Ku`bBuA`cha4mG(r^v|@W}x!Uf+8<3rnox6!&Vd5pinqWOf<} z&Y7&&+z3%~k~I`4WibKNnq5p_Y5h6Sv7aI<W<|osx$mon$pQAz}aO3H`*CGthq{A_4-) z718`)pQ!$ow?BRN#f#NpJv-c=Od5;MYRmkduE~BScOO0>Cw&0K&^Sy|BC_?6K7Z-^ zVK++ujBAbxTXa>DW{<_(e_nJ|$FK`VKQjXzx)^$N%Y5Fqi~O6SI`K3Cn48KMAR)5jX!bmw}RGM8mIbQ`s7m| zmozanF(_i6c<8|=AAS%nT}8*!2>>vYW)|wmwNo%!cqxBP-CUgPDUKx^l-djuES8>y zB?DTi4Fssff$Z|tk_p_^F*l#o5CjNVAH49vXaDUV{qav;zPxwwV(pNfvmv>cJ6p8Z zfUDo98zV*yrdKVUA>H#tq^Q3sa%c1qd9zk`{Fk1c$2w-p}QgMR;7=c8cJvoAi#4Y))~;wU&)|em zoUP|`ZPts6kSf|yFoziU!OYG{k_PLTt@BV{@xL_IyXlaHnT;Xk)FR@X4G5TxHzK$B zFtc;cGP~G2YbGu`7vSo&0g)jxm8py&QyD|V&RJ(u{uRkXD2HTAEi^_%#u(?U4y=1s z|7&03f2Os;a7@4)8;_!=Q8cb0W@CI{)Dt z4xc%mSm^*3}}`vKK|UZ zW`1~Z>5>tRl-rb$|JBk0@pSQ3>7NNV=*3-b)7mwFEY4cPnFRnKt)ds~Wx zPGwzKj6k!57)%b7+DF0Ei+n69Hw&GIaJw>D& z;LjrB1W^dUX%2x12(gHvip7BgGG=b)0087nHPPCH>ZT@R#4)(6*b6jf;!;L&GYl?h z9;wj`F@m5;@N)ZS39LDj@=`8Ic`TMOKF`^o2LjB@C`3d_B&dilWRFA!gh6pS^)0hO zQUFx({|bmtaR`SNM4%o3AfWhDGerQB6k^dYgT6@2Vu18H5!CVHe`WwfA>A+?R;-%f?yHQh|vp8I4z*f2TPxqQxQ_4 z$RA2QjXR}cMTyQCu!LV}dsW~J5gRRV!R)Kru|Ek4(Sw_tqBfA)FhkcDc@rK00HCk| zYh3+1zxDi`7cat6lDu83_oO7fTKArhDpBik3Ad*2^_>d$_3>GBLTk=HDZfL5$G5viTiLI_C2 z!U(j~z6_8{i)7SQ%OcEac@wOvibdEt0EN+a5=_90)!U}dVzB2}>qKM8JApT%CmE5g zYg1K~F{Y{6)TM969?mh(wqu_k8wx$9 zm)N>iPnD^R@>mJz(Ar>u{XNw`)NO!CTI_;n1P~;e2cWtboW{&T}o@0J@gmjd`SF)-fs!O4Z}oJCS+ zc=HsHII-ikX#p9Xjp)Bs^-dkpUc_%oJ~YZl>%kj6qj_0bmPz+NX6LL0fWyN>jmy%C z_RgbEv9;DY>%zz#JL{}!Mb_5r8dp$q7fXl+g@pGE{K3awI1gm6U7d;$0&ZQ11xgO@ zp4GmTPAw0BuuOX;u8;}D|8Vb--(7;0$DP;70mw}h(p%~goV0^+c$D#b3fY?HcX;l8YR zP(Ap^ znI+9M8otwu_g&UQ%eOSPmcVtW0W5{TIMYNz1Yp2U*j|{J-~Q-_Zolb z_FItI8vu7(*M=ySzkFRMXKet4i8fg%3l!QQn)M~vyHl*q2w9^-y|s=V_X(6el4&)W zXmk*>n@*?u2M1M^d08p&8kPOyPdW}YYglL5%bq>O12~|h)pZ@~^a_i{NA(R;SPlC5 zf9bEW=Qwrj+rZ}u_0VacNC3+BD-zXSiq<&*p6*oh*<7u( zzACQ)wc3yXvvWC^1at%|3}Q8C$`VRiJ-Fepp#wq$gOS??`MoC~vin&?jH%}H`E)X^ zYa1U;M4YWLRG^I6VJsp>5J{cDk^$Oe@n||=$1Dt!$piqbZECHk%^f=8Rr_st@m8(# zO*Bz(&3dltoU5wJ+7!+fA!I!0Nrs5dSp!vMjrvfISrANBiMaWEJ~d`CojME54$yGa zcm!0#OHWe?WjKKwexzoiIK94fWY^2WV%c>O<-E^;MW0ec>bg#=w)xWw0h7=sh{s{a zAwg8_?oJP`U6uLljjw&p3(r0Whlf-<0E;MqAo-3y6&ElDb46(-D7E0N);_FN(3#f& z(m0uQQ@X=X;C33^y{LsfobO-RCHVOB&)swD%~aRmEUF6;BPT%-jN$Os+G;Wp;f85C z=c5S`nOTK&=saUOlEA;3K$jl*+A%wJ&WH2}i*xL(<3_wqLRx%SeWRB+>x`-Nr!=27 zj)9CpA`P8sjNl>kC_QFcPZ4g-;g}@F{fFSF=w1TJ`H|Yen`-8YfDzmhkS!G=qF%_h z^zmo2nTW)ch}L8Z3nK3A?pD>r)^*U;Vq{P{Hs57(7w<*TIQ{N0Aoy1rjU;4OK;k?| z$ybq6Bb9S$)qyx{32IQ&ZFonqA4Vo4_3T>3^~3kQ_T$ezYvwa!=M!QB0?16vbaEcu zBU=tqdA~8cogV37IplHHuK}pd4%L1qL%vNre+q08gmP3fsL9bAt49_H!Ok&t@j}+5#C)y)R?2At;h&75lN26N50Cr zUs@)0y=uW;=E@lB93m4U5pv@4B>@oj^)QHhNjP7pfdmwOPE*7Dq1eoJLh%gCrZEKS z#3}+JKH}c__RL)C8+IUs=wZ5%;&#&)5pF{eqU`Pbu$oS5c0}Op%-GqlJoWUuo_Pij z_rV@AIERdYAVk2?8|0T@GR)>V2+7BY4yN8DDFo^@8VInjf6$$-qUSQzw3ZI1n17I< zdSn_iw(~QT)Mu&gzMzSsDW`;;pa$T_a8@I@X#bkRK<4esP>W=l;fBF=?D?g%ksg{Z;TK3 zjs^r{h!8d8LxiIx1d%k$7m=`#-I|U^4ac>uBZ6r#UwBi#(>Rl0e{VPrYDE-|SUrs` zI|c}4@@aDiN93b?eLcbWo<4C%m9dBe{q21HIyW+LFbiLO~u|)pd%5ad-|;RTBYMO@O$@ z`QZ!Ce&AQ%{uJpiQDduLD5-)oZm%oe97V`^)cM!OFr zW+w>K$#h=ND`UEKL|d4q%yv4dMCKp-jd$IA^G%=m>o3}BTJ4^%*;a@lAJvO-@zn3- z38}FnEj$t_3X+;wz}!?{T1slf*R-|ibV_7mye1}oh2~x&0?5uq>wniA5nFb@)L<9@ zAoQ8T`X>i3aqDF{#~2LasR=tdhnlz=J*D)sK?H&5yj5#j9Bq7_u4gqh7qkRML&N|! zcmkrCMGuYM2k%(zIR8`IERy+jNQ&zj!cUXisak*lkkyCCfZm*I-6g<u2I_WUb(gxmqO3Zvk%a67h zqVX-i7XVv3AtM0DDds)^018MzZ9qg3MzF*Twf(hc-g?U|w|wUFU;OFit9v)xP}dd! zf;US!P+P7NmkF zB5ECi#ZY3((0!0h;(X?$0pu^Gi3E)Si;hLaF|uQ-OeS9kVU|MlQF>qB%(K^wiTCo0 z*llV!F7a{aeKyI2beOh0!A07)AWiCT^yhE6^;uPn}OY@i)Lehh$D^!y2j2#6G4 zL}=p;ESUH$;fJ0e1Ctg7y6H$tNCv&o95@ zh6(YtedEAXfWm@t)S#6ShzW9SJ4JFG8}pu1!B^M+G=fdN=>C%!%6tEKN<)c1tcJgx zcp?}J3J?&E^x13Y06^+D>vx+dBCfA?EdcC9xI#b&JLh)px%tLF`1tex z=chjXFE9PvvJg!{D3OBugHrTidcS7@a6Rk0tI}z(xuk`*6Rn7n^rEy>NGs7Seh{E; z5#a6!RZ`YWGz@uIJx|y9oKho?v$UomNa?cV)jU?LQAttOQW|;+-tJczaFC|k<#-^k5 zGyR^?^LmY!O??S5x6861q6YuOVJsf1K3z0b5u#1NtF@o`e7>`@Q(Mby8#7?0oV4{$ z7u~k386boKEyLEeF_q7Ia8|NNe{UK>q{@&U1CBY3cJm<#7+t>M@L&eVu&Z|8@V0m}_?8Hv|)n+4y4@4sd$X%%bO@9U-^)g?C?4DQuK zVUHbkZTWK8%p$-n;;PAx*!?{-{m^^fef#aVeerLy%};RSR#;56-T9cna3r zR9p+K908O#= z^fBA21~o^oun-w_AZz6{#j6nZws!J8G?pSC(a>a6unGrUaED6NKLQk^1OWwwd4K=O zH$C*R=RUZDY_GmjfmFg1Q(3V9up!Rg>y<=`_Lj9D0IBrK@&Bk8G7?-y4j?Xq{`l5X z{3uBh*Pr|OnokA3S~|>wpru{5#gFvY9x5#5-e@Ik9F+_JPB*PaOebP;c95q`O$-2t zuN>fq#vn+@Toai}?2UHzo+lo^_u|F>_}S0@_}V3=$;9l|HCL6NHx?0bB7)e6pZ-x2 z8J__Glj#1&SgYxs=?JwXLb#9vE{)2&DrYMj4X{Pb%n_Gg?M3l1IZdGLnOj5vVFDD7 zdz4V-Sq;fh>}}klA(#!Wx^HQ40!^qC=wpgwMi5~FM)Z!D;2TMtpCRHi^oi20O$^{) zsN&o?G69UJpcsW?)iiGdNvDEYVG?@RA_*fmUJ8Q<1Q<^l_9+e$3Y}#Ko&!NbkmgOs z>}Xw|f)R07aXbY;5RBIY{aSJe=<4|t+$TQto+loBBf4wz!vhnPih6FzzjwWn1L&0;fh7*6c2zcEg&zWbBU|K?riD?YeVTf4in;~Z3p5%%Q@h_63DC>S6z>5p~T0$`_-KS`+VY#{5dEve9 z|Ld=P{m;Mf*ELIJrmXrpdXqP!_YK5TBy&j&n2+8VU$rEtZQU{Z47JEjqWNNZ_r*K* zCa*0Wp(eCZC(|SsIUHFk38V5J!t=+S9DpK6E;5~5@&H6=RH10YUfsIk{0yu7MNqyfe2dRC7~sssRw zbME}^dF$M{%KXaHZ@u-FTmSUGeD;<7P%v5>`*>HDERH*UJ3Skq6<^=Y2n&HIq6G@O zurf)qaT0r;n!gH9m&UUzGEOTl3l>P|NE|T}Ov9jid9e-*16O5n?Ly>!Jeeazp9`6R zns=&p_0UFAzeV@f64T21A3sbKHcCd+Fc1v@I_FyL`=8OXiMC?YHt{*GU5nk>*;&B-x3msoc8dj&Q>X`E3i~oJ3*T&b zhov8ykIC2R@{e{hVKImZrif16+!U@sM6C8ZY-j@HA+U5+i672N^iD zhh%oq&8tIs{N8)+|HLQ$@YDa{yFdQP;oMHA(^+lJWP(&#wgSSzs*na_G-?5JQ`tEw zHOe9eOv}G249?5Q5bWjZ|IEM%GUH~>p;E_kWctZZSpa)Fu>i%>RFb(8;mCsfUt&@b zSVB5=ZjH?b&;+(3daR+&@z5Sm$M}PYo-YRjQTq~|7KLG8$084a%1^1?}L0H@;ZNf&)y z_OSK;kj0v3&yT#(^2Hv)UD)5Tg<>kHaX$eb0Dv(Vs$RkchiDKOm>kX!D+Cs!J_<4R2cSy(fk>Y=A=aB&K~(&^aaG#LC;ZoO#~Aai+y?{_4LI7AcT z!D<8xM0|K4_Tb)IZ~EZCjYd409&6>PSSm&;7btKM9{Tm1%MR)si2l2ATp8AcHu^ih)Xq4Qv?;1W7;2 z-3(9}BOwZwMSL+9gU)%Fv-I5Ro_q_Wr7$*t5YZp6)iD340ko(r5*Ex6QAmomJ_Ja? zU4#wt`DyjRXPUnLz7(f&fC*lM9 z5Rh3AfJM=WK+?EXS70Ks1riB+g}@MrfMXy;G}JP8#ARaw0y{fSeKv?-49#m>RR#h# zWD&r`sau#c?`_I&1kLFJUaa*YVGUy@Kml^jGkQ!QK;p^7p(_!w)&h|a$^u_W!f6c# zfAaZ$RCw>*irrHIgNA|3Vt_Hc+SCkVs90_Q0Q0&M#0u(J{6NJx>=K`B zWaw-S7b5hs-iMrt!{fsBNLCZ#&}&XZ1MulTTLoYYkbvOoy$TSP^tYu~6<=G8Ld*4iQJYPSdQG0qym z)U~=4rYm4CEa*9%=`=?=HgKIEwL?JnY~bO~)!a8zxm>4{`w0C`-hXA^K+l; zMUXLq23KyB2HAu*#-IV=G#<;vI4b4lc?Fo}LT^Wsk|iO9+Fw45AnCW-r{9BsntGh` zlB~zKNplXkU;9kef|v-MhCCr628F>Q%oEA_{;La1rMf zMArZT3miWD#@GJ-Cq8-O&W^i!nZyDDBMY(VEYa;5u(5P<2Y?_%-j9Tf;9bU0FQ-WD z%jx%^DeHYE=3`PC>%Ec=yC$YJ6~#6vh~R2#ELm%By>Rh;?|j>X54`Tv|LHG&@Uu$- zELaIL2oBE^?oxa&k?Sd!v`Ly$YTu6+`WnJ9W`;9uSU`lM>96IJXooEo z;yd+A=X}*NM2fI$ItjLq*AE$v6MPgLrVr zhu36wU@BxQ6%p&{FqkqF*l}YTO__;iRTXJBgOYW~0Dyz@tJaSNK zJ)fBT+ooR0x5ecVNugIlMog2_)a;o&SR3-gpoe`gTa`mZU_|s;xlKviURayLvk%XT z7`v|t8Gr<)69QpCm|eS6Rn^0H-hS^VKK{kO`}%+SuYdj0{#7&CVF1D^Wbih~^_no*LGf8Inz#T6-`tNFA-pkd8LWAzhxB7DtQGsoij+ zwi|#sCYKQr`@mKQ1gfibiPjX`0;dC5I zpK-N452UuqQD5?4x#E=IpaoV^4}jU}F4baHy>0UJOP^lT<=RJ<+=s-BiU?w}M1~}J zc{t_d>3j~0HVM`5kAAw&ie=IC*eBt>yC zFhjI)HMT550;40B0Err(bogjn)3wxdP&yQc_z9w3?fbZrC&`NerIHE~B*{ z0Ba40MZ~Hy60l_mSxaZM%H74r5VZ_!Yk;K)mLZhly_D9vq68x%8nbxYr>D1I2<8d= z@%V~zUUeYy1GW(sSO6JB<`aWv&-~9HfBxG){Mo0*e?! zETZ*T3>HO}{yq~<1KUCzgr>$FAPLdg;!aFMjMpAAalOkE5Lf?;pB-6EJGk;-K80 z^JUOAuPK!nQ!3)%NJ;k9Oevg+(r_MeIvM~E=3^qFfbt945E*TgDC7C&foUgLmEXzyD9a|2JR#htGcQ^FRCf zOViyO1c=ddc|kxSKn{l}M=!AgsFkx%qhm%|=A+2+9J_dMWRCPuiA4kY;*lS1;vLk_ zp%F@s+wQ6E%W541QHSVW$f4+puvl>zkenCKNx=sm4k`c$+rE6rEn1l^P>qxb7(KQ) zqwo#qC%^gY&%Nsxf6>%du3ct32a<{yIN&z`H0dA-pzJ99X5G}|>A5b#5Zmw}<2B%_ zFaFotd5=3f0BELLKPNf2hz1Zm_oshK4O5tr>l~Nf&=(+iE&1BPW0jh z%4PqaEKI0pSgBm2e!sqXL!<^F-CF>9dlhKpqY$fuNQh1XV0$8D<@VnJ@yi(yi2~pt z03Znfi2w;i$BeSoy-5Ymv76mgxpzPM;8U-=_iNw!&j0tB&tA1q?VOtn)Q*A4psx}x z$gE{RSOCarwwOpHu z7W7oBXxtJmM9ApHVO|M4@k>Yq%z%!$1~L%bK)#=(`-~m;*1$plA)ubPhScemKSsy) z?cL4{VcNatO}y$?5zS@?dy{H*aBY5g?be$wzVq!*z5iF=v1fql16S9C8apcjNI)JQ zE-#jwjxGH%Gt;G`O8&@R1vUD5_7q9`LCg-@qf#;jFR=7QrywE#svJq7HnJaP>y3mF zbHSusN{J}v6)oq(>D-PjsCl9qfVzSQs&%a+VX>^;iNR01_2}b|KJsUO`MEEC?H^`W52oiXU_~Uzf|@NXAey#DF`yEo zX5dLU6AxM1^*sFXP?lpoNYP?rTFUPAL|F*A+KQ-2UsEaAEcWR^LvwF%{D#@3cxoan z+^r*>ieGKg!%wCDt{uO}r&SUNga8>?;${?N0GJ)@UpRlRLT3+WcU-*TUBCR^w?F;V zO?y+gc3EaK0N9yKoDB%F!|cnj&h2&t+Ni;-k4E8btltN4yvxZLt(pYoecMZ8Uv_cU zM)p&3NS5mQW=5EDCNm=Xl3LJ%Gjn9}u7y;5E<7$H2sm*5RzqEjFbi_&k$kdtq+OuI|+H`F0Tnbw;V*ZvEQ|7osM1cy}GVq~A zH^1#1e)wI#^z>to{pp{7<{RJn&d)Ag+PiQwKrk*9j{bq%zt>1zwBxfhKV=DbNk(s? zg_PnETYW}|xAz$5eu3!+0raS##i!jMWMYVM_hXJpI~Qh%wb z1^)>=mvVP zJc})-?hYr2;X;HHv4Q}#Lqx8x+;e{CzkmLN-~H)NKKG?B|J9ejI%nG1J7=v3kaZRj zr_-seyFw(lxk+Tyik9rB-4~-zn*{rNv@)xUKlZbTL-j=83w3{0eai*RBG0v@aZYq& z`MWEdTB|PAvV3Xcrjtfj=(FI)U)h_L1QC5sNntJYa%zKQ5CM$in%N03*Y$m`x%>UU z_N#Ax@O2Zm;A%LSk)3JB)-fWfb!XCo?sYnqu1f+zdej5arzYm zP7iMf+_0YnJ-^DM+>H zbE^RC5#a@xCMfpM%xPzD=h1ubdgymP_Prnc@Gt-NE1&!F-`90LpW8__iI)JtKsYE7^qe@b0RSzCzJdv#YOXAn*NPpe9mn=si84RJBR277py|8S>s-;K+ z=NMsL&!>~Aa~8(L6o?TKvGe_h?!E7q-uCn}PdvVB$OzZA7H2K6pFNfIg=mq)dc9Ga zf?jIS^Lfoa05WD&KrIFi3*aNu7GHa!2LK63d5dnTmo_J9phE<}b!~Sh1OWB^0h!s( zWb(jWx83{P`<{C0sV{x)n_vCf*I$0+^3L8l1_Gc30bnuZtwmh;{%GXOwyXg)6FNIB zjXrKckLbyf*6bb9vxH;v|&g5Y3I2-^?Ca`SQ0k9_4k-<5PeBdEwpVqzN+g#cnH5Ge|;+1SM23(GAiI;x# z5B(jD^!5x1KD7*hW{&2?AN}MSNDWzlW-F&Om81|6JLx%|5{WXmEiT#*-S*r`GV1o9 zQKx_MUpIYr{Rdr3TrZqi9Do)mhGVGSW22$^+H00|TUO|{^pFWi3?S2qn4MP+55D!{ z5C7^*U;XBb-#@6?G8n3+)2T6rnQP~&Np9gtk zKe4BMD#Z`X9PUy&5itiXdVPEE1pv-*M2Ks;D%pY7pD@$|V z{9W{nLDvH$p#+V0q!`~dh>saV&M`9^!2Y^r1%8rhe#7@#3H7!_L&6pkA^-rE3G-VX zc@XVY!%RXbJt6p;>jQW-lR62T`X?Kz0kkP3$FTu$hx=63cb?n3`Azpf_NE7a`qC?3 z`n#`vE%xyiNBLD*X z6h$ltM2@H-5u+{uJ zC@{G6tq@`{KCUD&m4JfR7RKiDDwA*2e<11ixCqofC6)a*nf3SjX#qfiJu5UU42Sy@ zBw%{ojk|CB^>=>c-M{iLKl#_MeB+y+|J%R)@uf>(Dn{Cw?$yp}7+44m3V=QWB>5z? z=HnO$)hR7D4Q2Va-o#o=E#x%zG$+^R4~SQl&VZcx5&#%6v7^AV01WKx8ppMWtH?ci z|NX!C<|m$fZAj9fWQJE0uB*@aEivc8r`fy zdi@<2Uwij2|Jpm>_Kk19_%~nv%8Nhv@#U-6#0gENXeK^lP5PtOSX9*Ztm;%8<0*xM zK@;2n`d(%0FgQZph&UC!VmJu{G618q;Oy&Pd)Hf@dh&^f9=_+6o2uGQ5cXgCsX>_- z6g!`2rBMU`vzqF1*9EDQU+dHk_uWdC`O##3mk0y?Yqacdf_v{o4*-qX0JY`yxYVQn z8X!L~S&Ef0S7GA@$gT67ZR2s8M<(z0UZ>_AgAldI&Lg*xEvP$Jo%@blN#%JvjwDC` zz%1-LCqyI$0U$vXCSc~P6I0zzlUp8q;B5~+^s~#aeB(Rc`SRcYKW9tyYIaH={LXi=_ek$`?iZ0_Vx(i@NnPG>)O^6K?JZ?3{B#o zhX+=BJ+JX+dny@)R<%A;>Yns5gF0@Fa?S81{DGs5L0gZpG(-=rIB%a>ET|!1D=KV- zdQ9)|L`3&XDSv&d0j!<6R@C9*{3gfKK|2}uKwdcefuk4{rdNR@Iz~z;AAr0om7=EWEB%ojbg|Eki@s0=H!IDgeF^} zE7vbRDiqm4w`iK>pyUm>dPpGdOeernA0Duq18{v-}1!UAAjVbhaY?Zt%doF z4-R-fJDkti5F%Dc2;lQC6I{Km_#f$Lk-`3wSlrYMJyO@o@w>#b1U%%#HGrrovrc_m z0!kYn`(7uy$|e7dDp>^opq{|-7*IiA$hsN$Ae(ViBuJ$I03e7c;8VK2lUI|;#7T_= zuC_9BJ7)60E$80&i*I@VFTVBVt5?7Itrx%f?H9lHkNLojyPYeQEW2%Y}y`mrPs+0(Pz>}z1_XoX>e=pe3eLH!m#CWVPIvFQY47&8 zJob*aJvp<_|L|u&`^Gs#M_@mt^i_ROkMfq(`O446cziXk#OrCO!HL2@Expyw@j zT+c(TT|&<1jm425Hi*yy0L=5b2ooY8Kk~o>Z+PAPPdxhYefQjP)9#J|3-z21FWbWd z$4*3qowHOKGoKw)rUF5YLKXx72ST3v=O7Lni|x}jj%^@C=Umr{d#XeLzz8;g5(*X* zutw(r948=*fmm>k<_G`!(&f5#5&x%WTtnAoJ0?24TZ5g_yUmx4Hd+_^@7tH*i3{2{ zgA@^KT~!%4-h8ICrl5jIG`3`>$F*;xIpw(*q4PL!GN9`OfzSW|RuxUB`?L8=mo9(n zd*A)u_y5~JfA__oU3z6UXPoX3ksyJY02)RRMrP5QTCobiNd^!N2iPAGVFXdc0{{Zi z>Jh>M$j!1BlBT{;BIT8W%cL>aq$OW8zCIQ%g(OTUCIN`!`OJ!AL_DmoO$^;|etPRo zH@@bM+a7wueNR31*v%Kto!{9dP1JH$Tnzvqjs!#;CV^7Dc}61AU6wwue+>&}Cs_l;>%OvK*5*IS9ud5tc%0K_cu+BTOnpVRpbmh+shKn&)3$Yz zGVCx<=sQA8`U#M}GSpZRv$@t4rS8-rViz0g#3*nf5?*fhylxKwA8dm?=kq{nv8V1) zd>kSoMR!@%y6$4pj2O&-EA)v+n2(EbTSLi-kRd{2Yg^X`X0n5X^Vxh#bmzI$&r+0S3PbouJbuUr-cB#cEU z(^A@oDAuV))Z&d!wfkUE>6F}xbMHe^6H`X4{UT6RbmNUT-g?`uH{N*T{ja<4=8G5a zy8DjXZo27~8*U(;gJW@)Ys;>lzx>l{vxD=yd+cgpnG)Ig%uJ>PU~6k8lXzNfvN*gF zN(KLcCZNqZ0K+y^zC=KLN@oBAGCN)z^LuJOfNRz|r0(bfgw`NSoN(~^^*}~9NO*|2 zbPW{+e4+SjmYPr)p-_LsZS21V9+KXxWDhNE_?Fa9gJEM!V{6^FdjKqc`y~@l$p!uMB5h99XcEAV+wY{=`^`*;KuI}%@eEF5D``2E+{K}PU zSN9JOt+lhm`mmnw?_bk9ItN;^5r9N|g|F_&E5gZivbVceP3X2;Zashg+$|Sxx^V9N z%{N`R?UtMGyz5R9xNzZuk6dCA5$EP?onwp4YVQ&eRM!On0c$Dt?z4w?x;)_s%7+%@ zCZIuXfED=wN~-RHwHkc@1H&b{itIpUbsQf+(dU=<6VHGZ_yBaUg+qk|6dMXz$l6EV z@cJ8#5Z9%7KHC}q8H%hqO|e@!F|ODI1jiHDQ_~h9X&lH3#+1|MA;5$PB7k7}Hi~%y zPDB`B4&Vg90f_ibI3*)QyH$1b#T)Ls{URedVKyWPdRhpAFoswfQRAryigY1I*9a})CU-=0;_I_Gq^#K@YKm$=o1S{{_^V~li zz1#|4TJ!X75H-$;Vd0*=X3XPj>SvOYWh1f#+UP_N0P(5(M@-*60*@P#o>!vaHEX_E z35(r8b8WgwO!=o1r-t`6`j-E|A^IZOea>+j9;Aaj78WYY2=UyYs3+f7$BWC@(yhP1OZXNH4c^y*M#mk0-yM+)+7ki zu4O%x(j>cA0}a_G1LHCxo#N~@ENE@kAkXXcGa%w1lfc>50Cbj1Zs>+5iFqh8m=PZ4fdu02?Agvf@xfH8hvMMSAo_w@EUam9!a{)RC?EkZ^(*V|e`E-p<9f&)+0y1v z)uUr#liJ>;65|`lELbv^PHrjFESSDHR{=&wOccYmPJj^}#Q!}~>hF#}%uBN^(<27k zvU2>sq^B>*5Aat|#s;v`61x*Fk#bCqbz9 zCK2WIO~ieeC2rr`M1QW@UH|}`u!oxxapF9S&npUdh9%IPoqz!^viak|7hg=~Co`OfYxB{Ts?PaCu|rOh3Z3bCPP)l`IVD?v z`wNzSzM;KwVPBNwwzRH5uRjdY19yhd*rxbNY44ZtaMD2!2kBczssAPkl}mA#H_z(D^)qEc%^ar^Vmt$PAG0=) z%Q37xcA6I}XM>}FY1|{626;w*jJ%NRn|ykp(a$ko?}&aK1w=W%+2hoF0IAVtsRbj3 zOP*S8#i`tNJRScOY}rgV>I}%U8P_(f1WzJ-6Yhm&K0FqUbx`w8y}XSllSIKC$1*v5 zr-zmsvrN}dh4d!X4+4Yro&W@p1-Q9qTLakAmQIxViovqJN3Mb_a^y+iDPndbyszjV7T z!j%tE0oT2Y7V8bicX#KD`?$R=qvaDic0MzFg@OvOj>pQ!*<%M^*NrY4N zCV8|usJJ)F{2`W59q9{9_xn1chSL5Q+kCq7mgVIXn7;qs`?mmu2%DX@pqL6=#~Q$5 z*1t~bKaJ0h8EH#f0tl?fC?ubzOAJ0cw}O9(x`%;&V*-GnkM}(eN^8gi;3ig3eMmih zp4tI`NKGim;HM47ucbX_?bov$$G)LXypvLDQaB@a-YsoubI8lcX~6DglnNL~A}p+l z=b4XFy(z~!2|yvy7Wt>HUk#ue!M#p8Lao;=U6-UGdK;MTw}5&*(y1t_CZKIp&zcAc zRnt;BCexP%p$Z+UdL&sdhpx)mmB!~Wpvt^4;XoCiW?_XWXeJ^b{p}n8pe#DrGwC`h z)!k!LBFOKq_NT+l%cR&nq+Gfz?ffJq!La}stq(BGp%S1r`M3JoM8cVoS$Kq zE1i(Eu^?zss~*l$s7{IloU1av3n?6l&pC*f zxI%H^Gy^8fDkx}yCG4pZ&U=Xr^xKh5rj;VZ_wJgOt+2h;k+As8lS2Ln7D^VDirAJh zg$nHlA6k^=3<5x>ieKrfUaNiSsw~YW&6P=BZ-oY$G{f}jB0{Qd9N!Rd4&1n4W%J5Gk-8 zQkU1qZ%!Z&f0HRb{%Oxc#(78vg&J?P35cCTLPSDSWUNu}r2L!V>9DP{TJl_8)6Hz` zextF^*k5{SOIy1BD8=91v;*%{%&;qG{g~AJ>HT#j(|$S!00~e56MzB|g!tTg3AuB0 zGQu@V&f@de+AHDuq`q~IYD=3;lF*uNal$NZfhPlVcdM3NTGfNUIu+~O{d+IS4*&+%s<)e9_l@Wp&Q_=ww*o;u;LS-)HFpA)=#b6Dz#ZQXL4yrg~ibeu0{szJgKU zQ1L!mD!ChSCuxP`5OKdWtA9WZgB;_J8FD=%MZ)Rpf9Sd>q7MN8cz`B92IVb_V-5@7 z581NW1D8gXPiz`Fnx4Bp^A|!oFd$L@TmVGCl6-p78URVDl0nm;OPeMa#PJw1h$ymg zBizyn(A3)0VGwaJj zDQ2}8HEC}}td??Y%K4uCU9%%VHSCu?Z^1xQrm4Reca zX{{t8+$pbkra9CJFXL9$4gf$7gM6kpRLZI8NUMT6^Ruc6S^ELt&vvcfM2sMWf+Wa@ zh$=Scw$29EBEu{1^c>mU(6JbQ_mK@K%`th&VgD#D2v1SkoH+1H+qf4c=Ow08W`l-8Ng4d^1tG4}xws%R)LGI+o-tWuL z-dkuli^s>LRzVrBKZ(aLX^q*lXACiElYF1HPSgQR;^GMVCF=%AM}!bToFE_p>YqJS z8gu{GTw;7a(JZyR3ncGCx#w7mdZZ!sOZ?ptFvs6lT5{__{2ZZgB~zN4Qmm!itR+vr z1{Oe{kYNA;fprxG1cMo^DHrAa@cpaseXX2^yx&vM09I?xOU)z4OaM9S zrpB{Qgm@})-*rr9VoCRM`K~A6Y>|H^m1_rt?XHy;AVRPI07#LASP0d~*nsBy@TOiY z@4^XIs-~6($sU<{W6t`T^+6mi&-f+Rk6K#nzoWWkm@3#@yL2Q2 zx&K%VFO?;Gvbc-p_eIg-N<(;S>O(q7UYx!;U(q^@Vqg!w#koh(k@;P7Zi$aX8eoYU zw=YV5uN7)VacN1|Qw*(I;)y?|#Oq2vq@L$(f8(tz3t#vd)&RO8u}AJ%J8{lVrc-u& z%;>jmAkbKfCwdpkdrQ{`jWp&o66-MTzj2fb7I7t;Q!*V3OX(m#aUTE@0if#p(Fbta ziYl{1r0LGid^R(tB16abNpv)cLOVGf32{}_Nk<$_q`8XzV=RcV;;9&$k$Zj6=6I^c z>TS9J2=UaJ!*Ck(j78MjMRtpBmQotom32=Dg1Q&6gJj&LlRf}MR#qD;ud#V7IDUnW zaMl@90j!|3`i9V%z~)Tq7R7YO>zXTXX)r~U&9ia_tcfCs&dPW6$_{|;$kJ0Q#DM#F zSYZZ~P(D|$6c1w^(clt_MwL|9L^Ozq;sC&DG5``t4A2}W@{MIZN3%qCDU}B@Eb;;# zeYZY=Z{I8JAy5HtovBobtlv6XvY9$;kOR_3G)V}ENq*&phG7YEU;L){MoN;@NPPT~ zX`+h)+cShhoPIW(=m5-DSNcu|2x?GVx5Z_yGYQc4e~dd^k8l|GC+?QU**DR`qWLcI zs>bzIeDCE$*vr4GYMDS5sP6S>ijPD?ou>`g^Z=u;5;OsVzj(?V=yMA$o zL|~*tSKKKa0NYsaO`zNyaf$;OM=2KZhSM>9<6GL&3D9XA0N`s)C{%T;phWL(X<-vC z5UEza+19apTR88f8#kX5J6Xv_S;AVug7_z;HY1I4!&}EdpZ;Gnw3E(dxnaStoK+lL z#Sp^*I_2VEfyDvJt6Eo!gUhlPd!!p4D;~P|NBVUs{(a z5iHG5i&f=@`vAILrs3P^bT?iMWQr_+2aKvD^>=ezSKv7t8C|oIM7-g&lGj(l*P=2CH}JIZ1{Tv0RL&CR74gpS!G9cTEl3|%dF;tJJv311OJ+VJ6xq+X4?Yp7rR-+GqQl^zFWgQ}e zKdG3|Fc1PD8bW7+AufcfCuf|OLz7tPs4+z2FD_E0sh9;hZu?2UEm)f3^|@P;OY@#d z)?o}nWj)7MNYh*a0gTTJIgLDk%}GjM0ZEubB083KzaSH$e<5;f$u0GYUpLfB z2Oagi@xoYC?<5^j>Sy+aO#<@yb^pG$)TMw{xt3S2%gp)oF}=rfuDfvsVS>G{Jx7@+ zb8Mux;j{_rdS(Od^N}pbm0wx3$pBQ;bsINYPN1_zQQu#2^^1{Hv1x)>rj-tPlug)> z$D^gIH_L=i@_zGP`UOV{A`USi+NFcpxC7u!5E4?SnB|r>mQF?R?^1dOTo0UVOCw1& zb+w|492a%Cmr~oNuCN8g0N?};03DFBOBN9j>Oh}l6+xG6(bS>0VERh&#Ves0#S}&F zMmSw+%GBFyAWMtV1 zN>K|_bI|fDvu9b&dM?k;s@B^$!W7Bz7+DL&*D)3|s(9ZOKv*KS3Rtb4M`bY7gd$7A ztWHw{AOSvh)LPLrv7!xA&O4#r1|`NS8>f7~8tItG^16FXRRMsr7KR-IQR2&ov8epn zSwz5JA9W{iOT%fgmEwdB01mMm5aJ*SiTy^%T83zoMLq!k&2_O!%92azim{oxiNulW zUaqHc``S!n=%;jXl{C2_?5x~kgG?nv1_0{127pSD!w1`xQZA;^AidhaSk^yYgBjQU z1Z-ygkI;>7!czPaz#=rT^=jli(w&nCj`>sfMzkS9ssAB+YCxNl)&RB`e_J}cBqAbg z$iPt}ue!``E9`IS6zSv+01;8)9|VvP1yP-;04$9-8g@fRD4=l)AdbPbQMs(Or9;Wd z(lwSbX+UbVMm^ zy~KZe-%6DCW6ih$XF$)5MT8(z2$ppMMajLG2h&fkXhS9NX`yBV7I;J;qr z4eb54pxP9(Aqw->^=K}p(msu&^wFH`0D#bx6}H~-`&#SV^vF%k73|3lTTOAUu|%?Z zVC&;htGqBG9ka6hmabRwmYf_$=?FxGM7UjPTUse45}V|QR^cE&IUj(;YL6WclEZ*vAk&$c-dOz3Uywo z?9Z;0$~&kZ{h&JBSUd7@s66KW?@uLeR*}Kd_`2%`TYKq#5A{)2u$3r6Pc8^IIR0(U zI;G$|U9`?EZ7GsU{l}F3x3s0rp%c;o$m6)6L{OIk5b<#Yjv-MiUFyXgZLGbe!(hNb zvug)r(hj55NO0?}p_WRu$GO+|D2wHq*^u^2-;0+Oj{0aQ$r?M({2ckpVRT}JH;y)p z;SE|;n)1?qDZ3cP-FK-*rRE3neUIl3f`WhnNK8Zs5d<_JfIF7=Z6@%mh)xoe_`0X# z>jB%>v88no3J`$cppeT`H~zRXlqO9ht)Z z&oDo;y}c@|p8kGH;M&|VCJy8~y$yzs)|k~uh$Dk6%26B(M_!tfqWnAf>6Xs(F-7T; z_At8E@yN{B^#^feR@tNXQcM(Gc-IbyMcn@mWpyl( z0Kf@q@IN#sVH+Q{jN@N2+BI({%RVi}5tk%_f(?D7{L#`Q#$CK-D%Ai;$psCg1vKp! zdS|&yG4G)OiBXg&OYf@`*Wce>kOo4ucV)3u4?u<8?mTaIU4<-ng1)CK#nG4MVQl5B zB^3)sv@c=i^nZOE!F*|*2}A@j0!;;ocu8-44iO<>W}$*-aX6KDJ#zmqLkxlWyG#6? zNoW%awepa>2XT15kq`hFZ~WnS-*^|+h)aOpqQOe>TbUw270Z~|urn9M=hI{Jy>>Lp1q%k`#eo8+-~&J;VMc)pkp1!QM=b~d?HVZs`)vCt zgMj+$*%nJ5ug?+yvz`Td&xSNG^k|g`J6A0TC@9}$SzNG6MxARJlOnf6q|UTSmgUF- zeM^%&^W*Vf!%NiHk&7XHV<;^8u{PEc4T)w6^N>nj-K*Nq%c?Bs0ohU{arAM&Km+Lg zDb1ADc}{0|Rmdy;?Gz%i#-BrtgRNil7J$?ao+#*2xSdHh$ne5Jan(i1ruZm^;_}Y= zA27*S_$ysShO+U;VHfvH4_J}_fC~$NfJKCmP(18rFP-QCfU%w-G6}d2!(CA5vhyM_ z`M2E?MK@&6?!}Jw9oqNz2FZ}tAz6&=v&hK$B%>kJ+D^XWXa{jR;d7 za8Z&i4Bi0tw=c%=^|bE}qxbvLMulJjlhPt75Xrc(=A&o;oyBYtu3?Uiw%hbvc$THy zzcuqiyyE=<2urLj8Pi`!Y*m^qlv%MB-fH>rkeGT}YB!AEFTMdV2}n=aXPZtg4}cMj zF;0-hPO8bgt`QMY1Spp@OMUpjq41}E$n3ow?ZOBp5RG&{GzJYXUiHitV}7%8ce`XAIbo66au&0KvZYWgkz8L$`Ka|1%;&Sc05D zs#HeS>fx)Req5%$F)Z36UYFqX@Agw80vHzV_S5Bt$}~xYMVgX3WphevfvXd=Q3bN6 zXs(UXbo#!^azkf$`Jdfb9Pbki52jhEP0ctOxBig?5e-fZh%q-HTS63MaQ$!O?TI8A#07%Ug#;|ipuB)*Mdgoyx6HmvrwnJ``$ZQ5oWR2Tq*#PN`a$z%Ya z#+gj)Tom6t*tb8Z{N`s767G#h;3C9D&w0jJd^=-<9g1_+Dd?fkBGE=60>Y8O(SZ9R zHanmMvbNL-EW#e6B5Ao=ja3hTj*!tSSY%wd{hJ81B{^ud4{fr33fhbS0s~aqRbO6b zcWm)4t%X6!`GLXQ=RlBMGq9|E?~pRe>$!95RVwRG`yokW)50^Cf?N<#*jYEX&fR+9 zMqoh_aYdEkL`^`-2n+#Ds%bT`>>xLIL0Ll_7`Gl!x(EPJ+UI}ctizsV*UM1S`;O8p z<9JF9kebPlO6BnO1MgLa{f``~^*t4wjU`5AV*4;ZgtmOkfCr)qWa%0F)NAbQHt(aV?A_7$SY5>%-?%hIuKaSf+-KMZ?2ImG(M)N_y*F zO2;#B46X5$eqwL%K}fdB*!BzVrERLDeey=ym!tPV_5bQM@$Mc=Zy4BD(r0T)NUJ>} zFx$$pV%Ob7i zv*I+RGD{_i9-YJXYMsc#kE zSH47hCOmv4EF4UH{i~wyZBd`z(^YVlx@ki`N9^{6G)Wk5Q+OS^jchhOi1#F5lJ z02b3AWju|c8yN_{s)U-eQo?MkEpkhXsV_qX06>ZpT{1NcsJ*#1T5Y1hCaj-Li}4>j z!(+pfhViS!T!ziB;&UQ9Ud)6x8w~CknOWtK2otEif?0t`xZN5I*qE)Y!*1aCa(%IhCTiVi=wzQ=q)Aj(^(w4Tg nrB^9!4}dLgX-ivrmD2wY*8+xOC!&yC00000NkvXXu0mjffF}8= literal 0 HcmV?d00001 diff --git a/mission/chapter06/mission/src/1_Page/CategoryPage/assets/categoryCardImg/background_image_2.png b/mission/chapter06/mission/src/1_Page/CategoryPage/assets/categoryCardImg/background_image_2.png new file mode 100644 index 0000000000000000000000000000000000000000..4b076756279f736fb2f06360962b9584461de530 GIT binary patch literal 89042 zcmZsDQ*>Ql)bEMi*iM7Sw$<3SZQG3+Cyi~pvEA6V)tuPLIk*4sVqX*hHmq_2Lh@9FNY~0#5B*8NYmyhCV81?S9Vv z;z%9+4MZraaoDFfcs>nw92H+u56oEYo7lSj^*prYrUJF>x#D&T+*IT5Yq^ETW`0(h zcmr9$MZ$MwM?Ne?(*GX1XG;B?-I#WJdzhf*8v>Er(~ickfRL?thH8T!x=Ek^<|Fhc z6^`os{aGw9gg@h)m6-Qwmix?}#;c;7y12NLvyW`GhVr2J+&J^D1Ife7a}To0_%fWj zU8Ho%lvT}=X~oJz)^1iuHzs&(1?g{M1M!?>z|i+f1N;;CPXYXJ zc8Grh|1ar0yxenHz^=Lp{#xtGO(9SR%ciDFyyGVA)V5Q(B_`j{K6xAuzZ~E{U1x4$ z2QvZxna?xCj`+{C|JWkWe&gu6OUd0-+D>Sx`PzElng6+E@QS{wzO{U-^;TasVfPBO z3k1@nA(x&+=CzC)23nGQR3&#U1WMhj#hg~WTcj73Ev_2m)@NQlJFr(+4d=80TVA4H zJ%l=+&eu+6f>2IIeU|RtXLIv8B2{%!_ZT4lUmbD~`u{VHU7*<6)dkR8SoNNF?j+Qf zZ+5H~Bzxao?)-wMb zgwdIHPV4&ZmE{#M021lw1+SqE+v$w+8Yms4p&oa43rQD0(g1Z#@~Y?=KPT#6v+rnf z-Wk=!>+Brr_!TDz4H^<1CKRf{QBgVfHmutce57iwwsx*?7N1m|4Ld!B_zE}G3WX~| zkwq>gj~win6&*Zo z!n-}+Tla$ebz}f|S3*|8Sp>Zr0L@hFl31cJlzc}kIKnYD8+t zq*TrUm}Dnk_7S}07+4ipvZWr!4BTDYqWOqqrE`0n)vgGjU6-&;ANlpQuVQ}Jr;J<1 z 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%0D5HLYn)YdW69hs~mwvH;BWPh_3z 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 TA~KnB00000NkvXXu0mjf*)*E# literal 0 HcmV?d00001 diff --git a/mission/chapter06/mission/src/1_Page/CategoryPage/assets/categoryCardImg/background_image_3.png b/mission/chapter06/mission/src/1_Page/CategoryPage/assets/categoryCardImg/background_image_3.png new file mode 100644 index 0000000000000000000000000000000000000000..0dda19570c1b108147dccee14ec86c6599a930e8 GIT binary patch literal 73434 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 literal 0 HcmV?d00001 diff --git a/mission/chapter06/mission/src/1_Page/CategoryPage/assets/categoryCardImg/index.js b/mission/chapter06/mission/src/1_Page/CategoryPage/assets/categoryCardImg/index.js new file mode 100644 index 0000000..7a5d6d2 --- /dev/null +++ b/mission/chapter06/mission/src/1_Page/CategoryPage/assets/categoryCardImg/index.js @@ -0,0 +1,13 @@ +import background_1 from "./background_image_1.png"; +import background_2 from "./background_image_2.png"; +import background_3 from "./background_image_3.png"; +import background_4 from "./background_image_4.png"; + +const backgroundImg = { + background_1, + background_2, + background_3, + background_4, +}; + +export default backgroundImg; \ No newline at end of file diff --git a/mission/chapter06/mission/src/1_Page/CategoryPage/index.jsx b/mission/chapter06/mission/src/1_Page/CategoryPage/index.jsx new file mode 100644 index 0000000..5f81423 --- /dev/null +++ b/mission/chapter06/mission/src/1_Page/CategoryPage/index.jsx @@ -0,0 +1,17 @@ +import { handleNavigation } from "../../3_Shared/model/handleNavigate"; +import { useNavigate } from "react-router-dom"; +import backgroundImg from "./assets/categoryCardImg"; +import STYLE from "./style"; +const CategoryPage = ()=>{ + const navigate = useNavigate(); + return ( + + {handleNavigation(navigate, "/movies/now_playing")}}>현재 상영중인 + {handleNavigation(navigate, "/movies/popular")}}>인기 있는 + {handleNavigation(navigate, "/movies/top_rated")}}>높은 평가를 받은 + {handleNavigation(navigate, "/movies/upcoming")}}>개봉 예정중인 + + ) +} + +export default CategoryPage; \ No newline at end of file diff --git a/mission/chapter06/mission/src/1_Page/CategoryPage/style.js b/mission/chapter06/mission/src/1_Page/CategoryPage/style.js new file mode 100644 index 0000000..3c9352e --- /dev/null +++ b/mission/chapter06/mission/src/1_Page/CategoryPage/style.js @@ -0,0 +1,26 @@ +import styled from "styled-components"; + +const STYLE = { + CategoryCardContainer: styled.div` + display: flex; + gap: 12px; + `, + CategoryCard: styled.div` + width: 240px; + height: 120px; + cursor: pointer; + display: flex; + align-items: end; + background-image: url(${(props) => props.backgroundImg}); + background-size: cover; + `, + CardText: styled.p` + background-color: gray; + font-size: large; + padding: 4px; + border-radius: 4px; + font-weight: 400; + ` +}; + +export default STYLE; diff --git a/mission/chapter06/mission/src/1_Page/LoginPage/index.jsx b/mission/chapter06/mission/src/1_Page/LoginPage/index.jsx new file mode 100644 index 0000000..1eac6e4 --- /dev/null +++ b/mission/chapter06/mission/src/1_Page/LoginPage/index.jsx @@ -0,0 +1,47 @@ +import STYLE from "./style"; +import { useForm } from "react-hook-form"; +import { + emailSchema, + passwordSchema, +} from "../../3_Shared/validation/yupSchema"; +import { yupResolver } from "@hookform/resolvers/yup"; +import * as Input from "../../3_Shared/ui/Input/"; +const LoginPage = () => { + const yupSchema = emailSchema.concat(passwordSchema); + // prettier-ignore + const { register, handleSubmit, formState: { errors, isValid } } = useForm({ + mode: "onChange", resolver: yupResolver(yupSchema), + }); + + const onSubmit = (data) => { + console.log(data); + }; + + return ( + +

로그인

+ + email + + {errors.email?.message} + + + + password + + {errors.password?.message} + + + + ); +}; + +export default LoginPage; diff --git a/mission/chapter06/mission/src/1_Page/LoginPage/style.js b/mission/chapter06/mission/src/1_Page/LoginPage/style.js new file mode 100644 index 0000000..ead6c04 --- /dev/null +++ b/mission/chapter06/mission/src/1_Page/LoginPage/style.js @@ -0,0 +1,14 @@ +import styled from "styled-components"; + +const STYLE = { + LoginForm: styled.form` + width: 100%; + display: flex; + flex-direction: column; + gap: 16px; + align-items: center; + justify-content: center; + `, +}; + +export default STYLE; diff --git a/mission/chapter06/mission/src/1_Page/MovieDetailPage/api/useMovieDetail.js b/mission/chapter06/mission/src/1_Page/MovieDetailPage/api/useMovieDetail.js new file mode 100644 index 0000000..4744b25 --- /dev/null +++ b/mission/chapter06/mission/src/1_Page/MovieDetailPage/api/useMovieDetail.js @@ -0,0 +1,30 @@ +import React from "react"; +import {TMDB_fetchRequest} from "../../../3_Shared/config/apiConfig"; +const BASE_URL = import.meta.env.VITE_TMDB_BASE_URL; +const BASE_IMG_URL = "https://image.tmdb.org/t/p/"; +const BASE_IMG_SIZE = "original"; + +const useMovieDetail = (id) => { + const [loading, setLoading] = React.useState(true); + const [movieDetail, setMovieDetail] = React.useState([]); + React.useEffect(() => { + const fetchMovie = async () => { + let movieDetailResult = await TMDB_fetchRequest( + // 영화 정보 + "GET", + `${BASE_URL}/movie/${id}?language=ko-KR`, + null, + true + ); + + movieDetailResult.backdrop_path = `${BASE_IMG_URL}${BASE_IMG_SIZE}${movieDetailResult.backdrop_path}`; + setMovieDetail(movieDetailResult); + + setLoading(false); + }; + + fetchMovie(); + }, [id]); + return [movieDetail, loading]; +}; +export default useMovieDetail; diff --git a/mission/chapter06/mission/src/1_Page/MovieDetailPage/api/useMovieProvider.js b/mission/chapter06/mission/src/1_Page/MovieDetailPage/api/useMovieProvider.js new file mode 100644 index 0000000..e291497 --- /dev/null +++ b/mission/chapter06/mission/src/1_Page/MovieDetailPage/api/useMovieProvider.js @@ -0,0 +1,33 @@ +import React from "react"; +import {TMDB_fetchRequest} from "../../../3_Shared/config/apiConfig"; +const BASE_URL = import.meta.env.VITE_TMDB_BASE_URL; +const BASE_IMG_URL = "https://image.tmdb.org/t/p/"; +const BASE_IMG_SIZE = "w185"; + +const useMovieProvider = (id) => { + const [loading, setLoading] = React.useState(true); + const [movieProvider, setMovieProvider] = React.useState([]); + React.useEffect(() => { + const fetchMovie = async () => { + let movieProviderResult = await TMDB_fetchRequest( // 영화 제작진 + "GET", + `${BASE_URL}/movie/${id}/credits?language=ko-KR`, + null, + true + ); + + movieProviderResult.cast.forEach((element) => { + element.profile_path = `${BASE_IMG_URL}${BASE_IMG_SIZE}${element.profile_path}` + }); + movieProviderResult.crew.forEach((element) => { + element.profile_path = `${BASE_IMG_URL}${BASE_IMG_SIZE}${element.profile_path}` + }); + setMovieProvider(movieProviderResult); + setLoading(false); + }; + + fetchMovie(); + }, [id]); + return [movieProvider, loading]; +}; +export default useMovieProvider; diff --git a/mission/chapter06/mission/src/1_Page/MovieDetailPage/index.jsx b/mission/chapter06/mission/src/1_Page/MovieDetailPage/index.jsx new file mode 100644 index 0000000..cd1c0ef --- /dev/null +++ b/mission/chapter06/mission/src/1_Page/MovieDetailPage/index.jsx @@ -0,0 +1,48 @@ +import React from "react"; +import { useParams } from "react-router-dom"; +import useMovieDetail from "./api/useMovieDetail"; +import useMovieProvider from "./api/useMovieProvider"; +import STYLE from "./style"; + +const MovieDetailPage = () => { + const { id } = useParams(); + const [movieInfo, movieInfoLoading] = useMovieDetail(id); + const [movieProvider, movieProviderLoading] = useMovieProvider(id); + if (movieInfoLoading || movieProviderLoading) + return
still loading...
; + return ( + + + {/* movieInfo.poster_path */} +

{movieInfo.title}

+

{movieInfo.vote_average}점

+

{movieInfo.runtime}분

+
+

출연 / 감독

+ {/* CAST */} + + {movieProvider.cast.map((elem, index) => { + return ( + + + {elem.name} + + ); + })} + + {/* CREW */} + + {movieProvider.crew.map((elem, index) => { + return ( + + + {elem.name} + + ); + })} + +
+ ); +}; + +export default MovieDetailPage; diff --git a/mission/chapter06/mission/src/1_Page/MovieDetailPage/style.js b/mission/chapter06/mission/src/1_Page/MovieDetailPage/style.js new file mode 100644 index 0000000..d2fb11f --- /dev/null +++ b/mission/chapter06/mission/src/1_Page/MovieDetailPage/style.js @@ -0,0 +1,49 @@ +import styled from "styled-components"; + +const STYLE = { + MovieDetail: styled.div` + background-color: ${({ theme }) => theme.background}; + width: 100%; + display: flex; + flex-direction: column; + gap: 16px; + `, + MovieBanner: styled.div` + display: flex; + flex-direction: column; + line-height: 24px; + height: 360px; + background-size: cover; + background-position: center -60px; + background-repeat: no-repeat; + background-image: url(${(props) => props.backgroundImg}); + `, + MovieInfoContainer: styled.div` + display: flex; + gap: 12px; + `, + MovieProviderContainer: styled.div` + display: flex; + gap: 16px; + flex-wrap: wrap; + `, + MovieProvider: styled.div` + width: 120px; + display: flex; + flex-direction: column; + gap: 4px; + align-items: center; + font-size: smaller; + `, + MovieProviderProfile: styled.div` + background-image: url(${(props) => props.profileImg}); + background-color: black; + background-size: cover; + background-position: center -8px; + width: 80px; + height: 80px; + border-radius: 50%; + `, +}; + +export default STYLE; diff --git a/mission/chapter06/mission/src/1_Page/MovieListPage/index.jsx b/mission/chapter06/mission/src/1_Page/MovieListPage/index.jsx new file mode 100644 index 0000000..2851ed6 --- /dev/null +++ b/mission/chapter06/mission/src/1_Page/MovieListPage/index.jsx @@ -0,0 +1,11 @@ +import { useParams } from "react-router-dom"; +import MovieList from "./ui/MovieList"; + +const MovieListPage = () => { + const {category} = useParams(); + return ( + + ); +}; + +export default MovieListPage; diff --git a/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js b/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js new file mode 100644 index 0000000..ad8f63e --- /dev/null +++ b/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js @@ -0,0 +1,29 @@ +import React from "react"; +import { TMDB_fetchRequest } from "../../../../../3_Shared/config/apiConfig"; +const BASE_URL = import.meta.env.VITE_TMDB_BASE_URL; +const BASE_IMG_URL = "https://image.tmdb.org/t/p/"; +const BASE_IMG_SIZE = "w500"; + +const useMovieList = (category, page) => { + const [loading, setLoading] = React.useState(true); + const [movieList, setMovieList] = React.useState([]); + React.useEffect(() => { + const fetchMovie = async () => { + let result = await TMDB_fetchRequest( + "GET", + `${BASE_URL}/movie/${category}?language=ko-KR&page=${page}` + ); + result.results.forEach((e) => { + e.poster_path = `${BASE_IMG_URL}${BASE_IMG_SIZE}${e.poster_path}`; + }); + setMovieList((prevList) => [...prevList, ...result.results]); + setLoading(false); + console.log(page, "page") + }; + + fetchMovie(); + }, [category, page]); + + return [movieList, loading]; +}; +export default useMovieList; diff --git a/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/index.jsx b/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/index.jsx new file mode 100644 index 0000000..8707a04 --- /dev/null +++ b/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/index.jsx @@ -0,0 +1,41 @@ +import useMovieList from "./api/useMovieList"; +import STYLE from "./style"; +import React from "react"; +import Movie from "./ui/Movie"; +import { useParams } from "react-router-dom"; +import { useInView } from "react-intersection-observer"; +const MovieList = () => { + const { category } = useParams(); + const [page, setPage] = React.useState(1); + const [movieList, loading] = useMovieList(category, page); + + const { ref, inView } = useInView({ + threshold: 0, + }); + + React.useEffect(() =>{ + if(inView && !loading){ + setPage((prev) => prev+1); + } + }, [inView, loading]) + + if (loading) return
still loading...
; // API loading + + return ( + + {movieList.map((elem, index) => { + return ( + + ); + })} + {loading &&
Loading more movies...
} +
+ ); +}; +MovieList.displayName = "MovieList"; + +export default MovieList; diff --git a/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/style.js b/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/style.js new file mode 100644 index 0000000..18e5896 --- /dev/null +++ b/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/style.js @@ -0,0 +1,44 @@ +import styled from "styled-components"; + +const STYLE = { + MovieList: styled.div` + display: flex; + flex-wrap: wrap; + gap: 12px; + padding: 16px; + background-color: ${({ theme }) => theme.background}; + align-content: start; + `, + Movie: styled.div` + position: relative; + flex-basis: 160px; + `, + Thumbnail: styled.img` + width: 160px; + height: 240px; + border-radius: 8px; + margin: 0; + `, + ThumbnailHoverEffectDiv: styled.div` + position: absolute; + top: 0; + left: 0; + width: 160px; + height: 240px; + background-color: gray; + opacity: 0; + border-radius: 8px; + &:hover { + opacity: 0.5; + } + `, + MovieInfo: styled.div` + display: flex; + flex-direction: column; + gap: 4px; + margin: 2px; + font-size: small; + `, +}; + +export default STYLE; diff --git a/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/index.jsx b/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/index.jsx new file mode 100644 index 0000000..3a3b42e --- /dev/null +++ b/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/index.jsx @@ -0,0 +1,20 @@ +import STYLE from "./style"; +import { useNavigate } from "react-router-dom"; +import { handleNavigation } from "../../../../../../3_Shared/model/handleNavigate"; +const Movie = (props) => { + const { observe, data} = props; + const { poster_path, title, release_date, id } = data; + const navigate = useNavigate(); + return ( + {handleNavigation(navigate, `/movie-detail/${id}`);}}> + + + +

{title}

+

{release_date}

+
+
+ ); +}; + +export default Movie; diff --git a/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/style.js b/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/style.js new file mode 100644 index 0000000..18e5896 --- /dev/null +++ b/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/style.js @@ -0,0 +1,44 @@ +import styled from "styled-components"; + +const STYLE = { + MovieList: styled.div` + display: flex; + flex-wrap: wrap; + gap: 12px; + padding: 16px; + background-color: ${({ theme }) => theme.background}; + align-content: start; + `, + Movie: styled.div` + position: relative; + flex-basis: 160px; + `, + Thumbnail: styled.img` + width: 160px; + height: 240px; + border-radius: 8px; + margin: 0; + `, + ThumbnailHoverEffectDiv: styled.div` + position: absolute; + top: 0; + left: 0; + width: 160px; + height: 240px; + background-color: gray; + opacity: 0; + border-radius: 8px; + &:hover { + opacity: 0.5; + } + `, + MovieInfo: styled.div` + display: flex; + flex-direction: column; + gap: 4px; + margin: 2px; + font-size: small; + `, +}; + +export default STYLE; diff --git a/mission/chapter06/mission/src/1_Page/SearchPage/index.jsx b/mission/chapter06/mission/src/1_Page/SearchPage/index.jsx new file mode 100644 index 0000000..f16a469 --- /dev/null +++ b/mission/chapter06/mission/src/1_Page/SearchPage/index.jsx @@ -0,0 +1,9 @@ +const SearchPage = ()=>{ + return ( +
+ 검색페이지 +
+ ) +} + +export default SearchPage; \ No newline at end of file diff --git a/mission/chapter06/mission/src/1_Page/SignUpPage/api/authSignUp.js b/mission/chapter06/mission/src/1_Page/SignUpPage/api/authSignUp.js new file mode 100644 index 0000000..223f1eb --- /dev/null +++ b/mission/chapter06/mission/src/1_Page/SignUpPage/api/authSignUp.js @@ -0,0 +1,22 @@ +import {fetchRequest} from "../../../3_Shared/config/apiConfig"; +const BASE_URL = import.meta.env.VITE_UMC_BASE_URL; + +const authSignUp = (data) => { + const { email, password, passwordCheck } = data; + const body = { + "email": email, + "password": password, + "passwordCheck": passwordCheck, + }; + const signUp = async () => { + const signUpResultResult = await fetchRequest( + "POST", + `${BASE_URL}/auth/register`, + body + ); + + return signUpResultResult; + }; + return signUp(); +}; +export default authSignUp; diff --git a/mission/chapter06/mission/src/1_Page/SignUpPage/index.jsx b/mission/chapter06/mission/src/1_Page/SignUpPage/index.jsx new file mode 100644 index 0000000..5dbf87f --- /dev/null +++ b/mission/chapter06/mission/src/1_Page/SignUpPage/index.jsx @@ -0,0 +1,56 @@ +import STYLE from "./style"; +import { useForm } from "react-hook-form"; +import { emailSchema, passwordSchema, passwordCheckSchema } from "../../3_Shared/validation/yupSchema"; +import { yupResolver } from "@hookform/resolvers/yup"; +import authSignUp from "./api/authSignUp"; +import * as Input from "../../3_Shared/ui/Input/"; +const SignUpPage = () => { + const yupSchema = emailSchema.concat(passwordSchema.concat(passwordCheckSchema)); + // prettier-ignore + const { register, handleSubmit, formState: { errors, isValid } } = useForm({ + mode: "onChange", resolver: yupResolver(yupSchema), + }); + + const onSubmit = async (data) => { + const signUpResult = await authSignUp(data); + console.log(signUpResult); + }; + + return ( + +

회원가입

+ + email + + {errors.email?.message} + + + + password + + {errors.password?.message} + + + + confirm password + + {errors.passwordCheck?.message} + + +
+ ); +}; + +export default SignUpPage; diff --git a/mission/chapter06/mission/src/1_Page/SignUpPage/style.js b/mission/chapter06/mission/src/1_Page/SignUpPage/style.js new file mode 100644 index 0000000..22dc8b8 --- /dev/null +++ b/mission/chapter06/mission/src/1_Page/SignUpPage/style.js @@ -0,0 +1,14 @@ +import styled from "styled-components"; + +const STYLE = { + SignUpForm: styled.form` + width: 100%; + display: flex; + flex-direction: column; + gap: 16px; + align-items: center; + justify-content: center; + `, +}; + +export default STYLE; diff --git a/mission/chapter06/mission/src/1_Page/index.jsx b/mission/chapter06/mission/src/1_Page/index.jsx new file mode 100644 index 0000000..4e5ed91 --- /dev/null +++ b/mission/chapter06/mission/src/1_Page/index.jsx @@ -0,0 +1,29 @@ +import MovieListPage from "./MovieListPage"; +import LoginPage from "./LoginPage"; +import SignUpPage from "./SignUpPage"; +import SearchPage from "./SearchPage"; +import CategoryPage from "./CategoryPage"; +import MovieDetailPage from "./MovieDetailPage"; +import { Routes, Route, Navigate } from "react-router-dom"; +import STYLE from "./style"; +import Sidebar from "./ui/Sidebar"; +const Page = () => { + return ( + + {/* main태그 flex적용 되어 있음 */} + + + } /> + } /> + } /> + } /> + } /> + } /> + } /> + {/* 에러 페이지 추가 예정 */} + + + ); +}; + +export default Page; diff --git a/mission/chapter06/mission/src/1_Page/style.js b/mission/chapter06/mission/src/1_Page/style.js new file mode 100644 index 0000000..61bb9c1 --- /dev/null +++ b/mission/chapter06/mission/src/1_Page/style.js @@ -0,0 +1,10 @@ +import styled from "styled-components"; + +const STYLE = { + Main: styled.main` + display: flex; + background-color: ${({theme}) => theme.background}; + `, +}; + +export default STYLE; diff --git a/mission/chapter06/mission/src/1_Page/ui/Sidebar/assets/shorts.svg b/mission/chapter06/mission/src/1_Page/ui/Sidebar/assets/shorts.svg new file mode 100644 index 0000000..5916d15 --- /dev/null +++ b/mission/chapter06/mission/src/1_Page/ui/Sidebar/assets/shorts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mission/chapter06/mission/src/1_Page/ui/Sidebar/index.jsx b/mission/chapter06/mission/src/1_Page/ui/Sidebar/index.jsx new file mode 100644 index 0000000..208cf9c --- /dev/null +++ b/mission/chapter06/mission/src/1_Page/ui/Sidebar/index.jsx @@ -0,0 +1,29 @@ +import STYLE from "./style"; +import { handleNavigation } from "../../../3_Shared/model/handleNavigate"; +import { useNavigate } from "react-router-dom"; +import { HiOutlineMagnifyingGlass } from "react-icons/hi2"; +import { RiMovie2Line } from "react-icons/ri"; + +const Sidebar = () => { + const navigate = useNavigate(); + return ( + + { + handleNavigation(navigate, "search"); + }} + > + 찾기 + + { + handleNavigation(navigate, "category"); + }} + > + 영화 + + + ); +}; + +export default Sidebar; diff --git a/mission/chapter06/mission/src/1_Page/ui/Sidebar/style.js b/mission/chapter06/mission/src/1_Page/ui/Sidebar/style.js new file mode 100644 index 0000000..18b6eaa --- /dev/null +++ b/mission/chapter06/mission/src/1_Page/ui/Sidebar/style.js @@ -0,0 +1,22 @@ +import styled from "styled-components"; + +const STYLE = { + Aside: styled.aside` + min-width: 240px; + padding: 8px 0 0 16px; + display: flex; + flex-direction: column; + background-color: ${({ theme }) => theme.midBlack}; + `, + AsideTab: styled.div` + height: 48px; + display: flex; + align-items: center; + padding-left: 8px; + cursor: pointer; + `, + AsideTabIcon: styled.img` + width: 24px; + ` +}; +export default STYLE; diff --git a/mission/chapter06/mission/src/2_Widget/Input/IdInput/index.jsx b/mission/chapter06/mission/src/2_Widget/Input/IdInput/index.jsx new file mode 100644 index 0000000..41583b4 --- /dev/null +++ b/mission/chapter06/mission/src/2_Widget/Input/IdInput/index.jsx @@ -0,0 +1,41 @@ +import STYLE from "./style"; +import React from "react"; +import { idRegex, idRegexMsg } from "../const/regex"; + +const IdInput = () => { + console.log("render") + const [validate, setValidate] = React.useState(0); // 0 = no input, -1 = validation false, 1 = validation pass + + let input = React.useRef({value: ""}); + const handleInputChange = () => { + const inputValue = input.current.value; + if (inputValue.length === 0) { + validate != 0 && setValidate(0); + } else if (!idRegex.test(inputValue)) { + validate != -1 && setValidate(-1); + } else { + validate != 1 && setValidate(1); + } + }; + + let validationMessage; + if (validate === -1) { + validationMessage = {idRegexMsg}; + } else { + validationMessage = null; + } + + return ( + + + {validationMessage} + + ); +}; + +export default IdInput; diff --git a/mission/chapter06/mission/src/2_Widget/Input/IdInput/style.js b/mission/chapter06/mission/src/2_Widget/Input/IdInput/style.js new file mode 100644 index 0000000..04ce766 --- /dev/null +++ b/mission/chapter06/mission/src/2_Widget/Input/IdInput/style.js @@ -0,0 +1,25 @@ +import styled from "styled-components"; + +const STYLE = { + Container: styled.div` + display: flex; + flex-direction: column; + gap: 4px; + `, + Input: styled.input` + width: 360px; + height: 60px; + border-radius: 8px; + outline: none; + color: black; + &:focus { + background-color: cyan; + } + `, + ErrMsg: styled.div` + font-size: small; + color: red; + `, +}; + +export default STYLE; diff --git a/mission/chapter06/mission/src/2_Widget/Input/PwInput/index.jsx b/mission/chapter06/mission/src/2_Widget/Input/PwInput/index.jsx new file mode 100644 index 0000000..21aea74 --- /dev/null +++ b/mission/chapter06/mission/src/2_Widget/Input/PwInput/index.jsx @@ -0,0 +1,42 @@ +import STYLE from "./style"; +import React from "react"; +import { idRegex, pwRegexMsg } from "../const/regex"; + +const PwInput = () => { + const [validate, setValidate] = React.useState(0); // 0 = no input, -1 = validation false, 1 = validation pass + + let input = React.useRef(); + + const handleInputChange = () => { + const inputValue = input.current.value; + if (inputValue.length === 0) { + setValidate(0); + } else if (!idRegex.test(inputValue)) { + setValidate(-1); + } else { + setValidate(1); + } + }; + + let validationMessage; + if (validate === -1) { + validationMessage = {pwRegexMsg}; + } else { + validationMessage = null; + } + + return ( + + + {validationMessage} + + ); +}; + +export default PwInput; diff --git a/mission/chapter06/mission/src/2_Widget/Input/PwInput/style.js b/mission/chapter06/mission/src/2_Widget/Input/PwInput/style.js new file mode 100644 index 0000000..04ce766 --- /dev/null +++ b/mission/chapter06/mission/src/2_Widget/Input/PwInput/style.js @@ -0,0 +1,25 @@ +import styled from "styled-components"; + +const STYLE = { + Container: styled.div` + display: flex; + flex-direction: column; + gap: 4px; + `, + Input: styled.input` + width: 360px; + height: 60px; + border-radius: 8px; + outline: none; + color: black; + &:focus { + background-color: cyan; + } + `, + ErrMsg: styled.div` + font-size: small; + color: red; + `, +}; + +export default STYLE; diff --git a/mission/chapter06/mission/src/2_Widget/Input/const/regex.js b/mission/chapter06/mission/src/2_Widget/Input/const/regex.js new file mode 100644 index 0000000..e1474c5 --- /dev/null +++ b/mission/chapter06/mission/src/2_Widget/Input/const/regex.js @@ -0,0 +1,7 @@ +export const idRegex = /^[a-zA-Z0-9]{6,20}$/; +export const idRegexMsg = "영어와 숫자만 사용하여 6~20 글자로 입력해주세요." +export const pwRegex = + /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[!@#$%^&*(),.?":{}|<>])[a-zA-Z\d!@#$%^&*(),.?":{}|<>]{6,20}$/; +export const pwRegexMsg = "영어, 숫자, 특수기호 를 포함하여 6~20 글자로 입력해주세요." +export const hpRegex = /^010-\d{4}-\d{4}/; +export const nameRegex = /^[가-힣a-zA-Z]{2,20}$/; \ No newline at end of file diff --git a/mission/chapter06/mission/src/2_Widget/Input/index.jsx b/mission/chapter06/mission/src/2_Widget/Input/index.jsx new file mode 100644 index 0000000..4d76bb4 --- /dev/null +++ b/mission/chapter06/mission/src/2_Widget/Input/index.jsx @@ -0,0 +1,4 @@ +import IdInput from "./IdInput"; +import PwInput from "./PwInput" + +export { IdInput, PwInput }; diff --git a/mission/chapter06/mission/src/3_Shared/config/apiConfig.js b/mission/chapter06/mission/src/3_Shared/config/apiConfig.js new file mode 100644 index 0000000..ae3998c --- /dev/null +++ b/mission/chapter06/mission/src/3_Shared/config/apiConfig.js @@ -0,0 +1,49 @@ +const API_TOKEN = import.meta.env.VITE_TMDB_API_TOKEN; + +const handleStatus = async (response) => { + switch (response.status) { + case 200: + return await response.json(); + case 201: + return await response.json(); + default: + alert("API error"); // 상태 코드가 200이 아닌 경우 경고 + return null; + } +}; + +const apiConfig = (method, bodyData = null) => { + const config = { + method: method, + headers: { + "Content-Type": "application/json", + }, + body: bodyData ? JSON.stringify(bodyData) : null, + }; + return config; +}; + +const TMDB_apiConfig = (method) => { + const config = { + method: method, + headers: { + "Content-Type": "application/json", + Authorization: `Bearer ${API_TOKEN}`, + }, + }; + return config; +}; + +export const fetchRequest = async (method, url, bodyData = null) => { + const response = await fetch(url, apiConfig(method, bodyData)); + + let result = handleStatus(response); + return result; +}; + +export const TMDB_fetchRequest = async (method, url) => { + const response = await fetch(url, TMDB_apiConfig(method)); + + let result = handleStatus(response); + return result; +}; diff --git a/mission/chapter06/mission/src/3_Shared/lib/useThrottle.js b/mission/chapter06/mission/src/3_Shared/lib/useThrottle.js new file mode 100644 index 0000000..055bcd3 --- /dev/null +++ b/mission/chapter06/mission/src/3_Shared/lib/useThrottle.js @@ -0,0 +1,14 @@ +import React from "react"; +const useThrottle = (callback, delay = 1000) => { + let lastCallTime = React.useRef(Date.now()); + + return () => { + const timeElapsed = Date.now() - lastCallTime.current; + if(timeElapsed >= delay) { + callback(); + lastCallTime.current = Date.now(); + } + } +}; + +export default useThrottle; diff --git a/mission/chapter06/mission/src/3_Shared/model/handleNavigate.js b/mission/chapter06/mission/src/3_Shared/model/handleNavigate.js new file mode 100644 index 0000000..a5c6bb9 --- /dev/null +++ b/mission/chapter06/mission/src/3_Shared/model/handleNavigate.js @@ -0,0 +1,3 @@ +export const handleNavigation = (navigate, path) => { + navigate(path); +}; diff --git a/mission/chapter06/mission/src/3_Shared/ui/Input/index.jsx b/mission/chapter06/mission/src/3_Shared/ui/Input/index.jsx new file mode 100644 index 0000000..a8d13e6 --- /dev/null +++ b/mission/chapter06/mission/src/3_Shared/ui/Input/index.jsx @@ -0,0 +1,2 @@ +import { Container, Label, DefaultInput, SubmitInput, InputErrMsg } from "./style" +export { Container, Label, DefaultInput, SubmitInput, InputErrMsg } \ No newline at end of file diff --git a/mission/chapter06/mission/src/3_Shared/ui/Input/style.js b/mission/chapter06/mission/src/3_Shared/ui/Input/style.js new file mode 100644 index 0000000..e5466a6 --- /dev/null +++ b/mission/chapter06/mission/src/3_Shared/ui/Input/style.js @@ -0,0 +1,39 @@ +import styled from "styled-components"; + +export const Container = styled.div` + display: flex; + flex-direction: column; + gap: 4px; +`; +export const Label = styled.p` + font-size: large; + padding-left: 8px; +`; + +export const DefaultInput = styled.input` + width: 360px; + height: 50px; + border-radius: 8px; + outline: none; + color: black; + &:focus { + background-color: cyan; + } +`; + +export const SubmitInput = styled.input` + width: 360px; + height: 50px; + border-radius: 8px; + outline: none; + color: black; + background-color: ${(props) => (props.disabled ? "gray" : "red")}; + &:focus { + background-color: cyan; + } +`; + +export const InputErrMsg = styled.p` + font-size: smaller; + color: red; +`; diff --git a/mission/chapter06/mission/src/3_Shared/validation/yupSchema.js b/mission/chapter06/mission/src/3_Shared/validation/yupSchema.js new file mode 100644 index 0000000..5a64f3e --- /dev/null +++ b/mission/chapter06/mission/src/3_Shared/validation/yupSchema.js @@ -0,0 +1,39 @@ +import * as yup from "yup"; + +export const emailSchema = yup.object({ + email: yup + .string() + .matches( + /^[^\u3131-\u3163\uac00-\ud7a3]*$/, + "email에 한글을 사용할 수 없습니다." + ) // 한글 입력 차단 + .email("유효한 이메일을 입력하세요.") // 이메일 형식 유효성 검사 메시지 + .min(6, "이메일은 최소 6자 이상이어야 합니다.") // 최소 길이 제한 + .max(24, "이메일은 최대 24자까지 가능합니다.") // 최대 길이 제한 + .required("이메일은 필수 입력 사항입니다."), // 필수 입력 메시지 +}); +export const idSchema = yup.object({ + id: yup + .string() + .matches(/^[a-zA-Z0-9]*$/, "아이디는 영어와 숫자만 포함해야 합니다.") // 영어 및 숫자만 허용 + .matches( + /^[^\u3131-\u3163\uac00-\ud7a3]*$/, + "아이디에 한글을 사용할 수 없습니다." + ) // 한글 입력 차단 + .min(6, "아이디는 최소 6자 이상이어야 합니다.") // 최소 길이 제한 + .max(20, "아이디는 최대 20자까지 가능합니다.") // 최대 길이 제한 + .required("아이디는 필수 입력 사항입니다."), // 필수 입력 메시지 +}); +export const passwordSchema = yup.object({ + password: yup + .string() + .min(8, "비밀번호는 최소 8자 이상이어야 합니다.") // 최소 길이 제한 + .max(16, "비밀번호는 최대 16자까지 가능합니다.") // 최대 길이 제한 + .required("비밀번호는 필수 입력 사항입니다."), // 필수 입력 메시지 +}); +export const passwordCheckSchema = yup.object({ + passwordCheck: yup + .string() + .oneOf([yup.ref('password'), null], "비밀번호가 일치하지 않습니다.") + .required("비밀번호 확인은 필수 입력 항목입니다."), +}) diff --git a/mission/chapter06/mission/src/index.jsx b/mission/chapter06/mission/src/index.jsx new file mode 100644 index 0000000..6439db0 --- /dev/null +++ b/mission/chapter06/mission/src/index.jsx @@ -0,0 +1,9 @@ +import { StrictMode } from 'react' +import { createRoot } from 'react-dom/client' +import App from './0_App' + +createRoot(document.getElementById('root')).render( + <> + + +) diff --git a/mission/chapter06/mission/vite.config.js b/mission/chapter06/mission/vite.config.js new file mode 100644 index 0000000..5a33944 --- /dev/null +++ b/mission/chapter06/mission/vite.config.js @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}) From 6a5806587e812744253ad67d6aec335789ab2097 Mon Sep 17 00:00:00 2001 From: RyuDongHo Date: Sun, 10 Nov 2024 15:50:15 +0900 Subject: [PATCH 06/15] =?UTF-8?q?keyword:=20chapter05=20keyword=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mission/chapter05/keyword/keyword.md | 484 ++++++++++++++++++ .../mission/src/3_Shared/config/apiConfig.js | 1 - 2 files changed, 484 insertions(+), 1 deletion(-) create mode 100644 mission/chapter05/keyword/keyword.md diff --git a/mission/chapter05/keyword/keyword.md b/mission/chapter05/keyword/keyword.md new file mode 100644 index 0000000..8b9758a --- /dev/null +++ b/mission/chapter05/keyword/keyword.md @@ -0,0 +1,484 @@ +# 📝 학습 목표 + +--- + +1. **`유효성 검사`**에 대해 학습합니다. +2. **`input 태그`**의 여러가지 속성에 대해 학습합니다. +3. **`Custom Hook`**을 만들었을 떄의 장점에 대해 알아봅니다. +4. **`Custom Hook`**을 활용하여, 효율적으로, 유효성 검사를 하며, 폼 데이터를 관리하는 방법에 대해 알아봅니다. + +# ⚠️  스터디 진행 방법 + +--- + +1. 스터디를 진행하기 전, 워크북 내용들을 모두 채우고 스터디에서 서로 모르는 내용들을 스터디원과 함께 공유해 주세요. +2. 실습과 미션은 워크북 내용들을 모두 완료한 후, 스터디 전에 진행해 오세요! + - 1주 차 스터디 이전에 1주 차 워크북을 완성한 후 스터디를 진행해 주세요. +3. 스터디 시간에는 각자 해 온 미션들을 공유하고, 아래의 과정을 진행합니다. + 1. 스터디원과 함께 코드 리뷰 진행. + 2. 코드 리뷰 이후, 본인의 코드의 문제가 있는 경우 리팩토링 진행. + 3. 팀원들과, 조금 더 코드를 깔끔하게 작성할 수 있는 개선점이 있을지 고민 후, 리팩토링 진행. + 4. 각자 미션을 진행하면서 해결하지 못한 이슈를 공유 후, 해당 이슈를 도움받아 해결. +4. 매주 주어진 미션을 성실하게 제출합니다. +5. 🍠 이모지가 붙어있는 곳은, 직접 여러분들이 채워 넣으셔야 하는 부분입니다. 꼭 Google을 통한 검색을 하시고, VSCode를 활용하여, 실행 결과를 눈으로 보시면서 정리해 주세요! + +# 📸 잠깐 ! 스터디 인증샷은 찍으셨나요?📸 + +--- + +* 스터디리더께서 대표로 매 주차마다 한 장 남겨주시면 좋겠습니다!🙆💗 + (사진을 저장해서 이미지 임베드를 하셔도 좋고, 복사+붙여넣기해서 넣어주셔도 좋습니다!) + +[]() + +# 🎯 핵심 키워드 + +--- + + + +### 키워드 정리 🍠 + +- useRef 🍠 + + 렌더링이 되어도, 유지하고 싶은 값이 있을 때 사용합니다. + + useRef로 값을 저장합니다. + +- input의 주요 프로퍼티 🍠 + - 아래 내용 이외에, 자주 사용하는 프로퍼티가 있으면 추가로 더 정리해주세요! 🍠 + + email 타입을 쓰면, 간단하게 이메일 형식을 입력하도록 하는 입력 창을 만들 수 있습니다. + + + ### 1. `type` + + - **설명**: 입력 필드의 종류를 설정합니다. + - **값 예시**: `"text"`, `"password"`, `"email"`, `"number"`, `"checkbox"`, `"radio"` 등 + - **예시**: `` + + ### 2. `value` + + - **설명**: 입력 필드의 값을 설정하고 제어할 때 사용됩니다. **Controlled Component**에서 자주 사용됩니다. + - **값 예시**: 문자열 또는 숫자 + - **예시**: `` + + ### 3. `defaultValue` + + - **설명**: 초기값을 설정하는 데 사용됩니다. + - **값 예시**: 문자열 또는 숫자 + - **예시**: `` + + ### 4. `onChange` + + - **설명**: 사용자가 입력 필드에 값을 입력하거나 변경할 때 호출되는 이벤트 핸들러입니다. + - **값 예시**: 함수 + - **예시**: ` setValue(e.target.value)} />` + + ### 5. `placeholder` + + - **설명**: 입력 필드가 비어 있을 때 표시되는 힌트 텍스트입니다. + - **값 예시**: 문자열 + - **예시**: `` + + ### 6. `checked` + + - **설명**: 체크박스나 라디오 버튼이 선택되었는지 여부를 제어합니다. + - **값 예시**: `true` 또는 `false` + - **예시**: `` + + ### 7. `defaultChecked` + + - **설명**: 체크박스나 라디오 버튼의 초기 상태를 설정합니다. + - **값 예시**: `true` 또는 `false` + - **예시**: `` + + ### 8. `disabled` + + - **설명**: 입력 필드를 비활성화하여 사용자 입력을 막습니다. + - **값 예시**: `true` 또는 `false` + - **예시**: `` + + ### 9. `readOnly` + + - **설명**: 입력 필드의 값을 읽기 전용으로 설정합니다. 사용자는 값을 변경할 수 없습니다. + - **값 예시**: `true` 또는 `false` + - **예시**: `` + + ### 10. `name` + + - **설명**: 폼 데이터를 제출할 때 서버로 전송되는 데이터의 이름을 지정합니다. + - **값 예시**: 문자열 + - **예시**: `` + + ### 11. `maxLength` + + - **설명**: 입력할 수 있는 최대 글자 수를 지정합니다. + - **값 예시**: 숫자 + - **예시**: `` + + ### 12. `min` / `max` + + - **설명**: 숫자 또는 날짜 입력에서 사용할 수 있는 최소/최대 값을 지정합니다. + - **값 예시**: 숫자 또는 날짜 + - **예시**: `` + + ### 13. `autoFocus` + + - **설명**: 페이지가 로드될 때 자동으로 입력 필드에 포커스를 줍니다. + - **값 예시**: `true` 또는 `false` + - **예시**: `` + + ### 14. `required` + + - **설명**: 입력 필드를 필수 입력으로 설정합니다. 폼을 제출할 때 이 필드가 비어 있으면 제출이 거부됩니다. + - **값 예시**: `true` 또는 `false` + - **예시**: `` + +### **`Controlled Input`** vs **`UnControlled Input`** + +- Controlled Input + + ### Controlled Input + + **`Controlled Input`**은 React의 상태(state)에 의해 폼의 값을 관리하는 방식입니다. Input의 value가 컴포넌트의 상태에 연결되어 있고, 상태값이 달라질 떄 마다, 입력 필드의 값도 갱신됩니다. + + 쉽게 말해서, Input의 값은, **`React Component가 제어`**하고, 모든 입력 변화 또한, **`컴포넌트의 상태로 반영`**되어집니다. + + 특징 + + - Input의 value는, React의 **`state`**로 관리됩니다. + - 상태 값이, **`Input의 value 속성에 직접적으로 연결`** 됨. + - **`Input`**의 **`Value`**가 **`변경`**되면, **`상태가 업데이트`**되고, **`상태가 다시 렌더링을 Trigger`** 함. + - **`React`**가 **`Form 요소의 현재 값을 항상 알고 있기에 제어가 용이`**. + + ```tsx + import { useState } from 'react'; + + function ControlledInput() { + const [inputValue, setInputValue] = useState(''); + + const handleChange = (event) => { + setInputValue(event.target.value); + }; + + return ( +
+ +

입력: {inputValue}

+
+ ); + } + + export default ControlledInput; + + ``` + + ### 장점: + + - 상태를 통해 값이 직접적으로 제어되기 때문에 **`폼 데이터를 검증`**하거나 **`조작`**하기가 쉽습니다. + - **`사용자 입력을 실시간으로 검증`**하거나 **`포맷을 조정`**할 수 있습니다. + + ### 단점: + + - **`컴포넌트에서 상태 관리가 복잡`**해질 수 있으며, 특히 폼 데이터에 너무 많은 value들을 관리하는 경우 **`성능에 부담`**이 될 수 있습니다. + +- UnControlled Input + + ### UnControlled Input + + **`Uncontrolled Input`**은 React의 state가 아닌 DOM 자체에서 입력 값을 관리하는 방식입니다. 폼의 값은 **`React 컴포넌트가 직접 관리하지 않고`**, 필요할 때 DOM에서 직접 값을 참조하는 방법입니다. 이를 위해 `ref`를 사용하여 **`DOM 요소에 직접 접근`**할 수 있습니다. + + ### 특징 + + - 입력값이 `state`에 의존하지 않고, React의 제어 밖에서 관리됩니다. + - 폼 요소의 값은 사용자가 입력하는 대로 DOM에 저장되며, 필요할 때만 값을 읽어 옵니다. + - React의 상태를 사용하지 않기 때문에 폼을 간단하게 유지할 수 있습니다. + + ```tsx + import { useRef } from 'react'; + + function UncontrolledInput() { + const inputRef = useRef(null); + + const handleSubmit = () => { + console.log(`입력: ${inputRef.current.value}`); + }; + + return ( +
+ + +
+ ); + } + + export default UncontrolledInput; + + ``` + + ### 장점 + + - 상태 관리가 필요 없으므로 간단한 폼에 적합하며, **`성능적으로도 유리`**할 수 있습니다. + - 작은 폼이나 **`상태가 필요 없는 경우 사용하기 쉽습니다.`** + + ### 단점 + + - 입력 값을 **`실시간으로 검증하거나 조작하기 어려우며`**, 폼 데이터와 관련된 논리를 관리하는 데 제약이 있을 수 있습니다. + - **`DOM에 직접 접근`**하기 때문에 **`React의 단방향 데이터 흐름을 벗어나는 경우`**가 생길 수 있습니다. + + +### react-hook-form & yup 🍠 + +**`react-hook-form`**과 **`yup`**은 React에서 폼을 간편하게 관리하고, 유효성 검사를 수행하는 데 유용한 라이브러리 입니다. 두 개의 라이브러리를 함께 사용하면, 폼 입력 관리와 검증 과정을 매우 효율적으로 처리할 수 있습니다. + +현재, 여기서는 **`yup`**을 통한, **`validation`**을 설명하지만, 혹시라도, 본인이 작업하시는 프로젝트가 **`TypeScript`**시라면, **`zod`**를 사용하는 것이 조금 더 유리할 수도 있으니, **`zod`**를 더욱 추천드립니다! + +https://tech.inflab.com/202207-rallit-form-refactoring/react-hook-form/ + +- **`react-hook-form`** 공식문서 설명 + + ### react-hook-form + + https://react-hook-form.com/get-started + + 주요 특징 + + 1. DX (개발자 경험) + + 직관적이고, 기능이 완벽한 API로, 개발자가 폼을 구축할 떄 매끄러운 경험을 제공합니다. + + 2. HTML 표준 + + 기존의 HTML 마크업을 활용하여 제약 기반 검증 API로 폼을 검증합니다. + + 3. 가벼움 + + 패키지 크기는 매우 중요합니다. React Hook Form은 의존성이 없는 작은 라이브러리이다. + + 4. 성능 + + 리렌더링 횟수를 최소화하고, 검증 계산을 줄이며, 더 빠른 마운팅을 제공. + + 5. 채택 가능성 + + 폼 상태는 본질적으로 로컬에 있기 떄문에 다른 의존성 없이도 쉽게 채택 가능하다. + + 6. UX (사용자 경험) + + 최상의 사용자 경험을 제공하기 위해 일관된 검증 전략을 지향. + +- **`yup`** 공식문서 설명 + + ### yup + + ‣ + + **`Yup`**은 런타임 값 파싱 및 검증을 위한 스키마 빌더입니다. 스키마를 정의하고, 값을 변환하여 일치시키거나, 기존 값의 형태를 검증하거나, 두 작업을 모두 수행할 수 있습니다. **`Yup 스키마`**는 매우 표현력이 뛰어나며 복잡하고 상호 의존적인 검증이나 값 변환을 모델링할 수 있습니다. + + 주요 기능: + + 1. 간결하면서도 표현력이 뛰어난 스키마 인터페이스로, 간단한 데이터 모델부터 복잡한 데이터 모델까지 설계 가능 + 2. 강력한 TypeScript 지원: 스키마에서 정적 타입을 추론하거나, 스키마가 올바르게 타입을 구현하는지 확인 + 3. 내장된 비동기 검증 지원: 서버 측 및 클라이언트 측 검증을 동일하게 모델링 가능 + 4. 확장성: 타입 안정성이 보장된 메서드와 스키마를 추가할 수 있음 + 5. 풍부한 오류 세부 정보 제공으로 디버깅이 쉬움 +- **react-hook-form & yup validation 실습 🍠** + + ### 실습 + + 아래와 같이 **`라이브러리를 설치`**해줍니다. + + ```tsx + yarn add react-hook-form yup + ``` + + 그 이후 **`useForm`** hook을 불러옵니다. + + ```tsx + import {useForm} from 'react-hook-form' + + const SignUpPage = () => { + const {register, handleSubmit} = useForm(); + + const onSubmit = () => { + console.log('폼 데이터 제출') + } + + return ( +
+ + + +
+ ); + }; + + export default SignUpPage; + + ``` + + 1. **`register`**를 통해서, 각 **`input`**에 연결해줍니다. 이 떄 **`spread operator`**를 통해서, 원하는 **`name`**과 함께 연결을 해주면 된다고 이해하시면 됩니다. + 2. form 태그 안에는 자체적으로 **`onSubmit`** 내부에 함수를 연결해줄 수 있습니다. 이 떄, **`useForm`** Hook에서 제공해주는 **`handleSubmit`**을 연결해주고, 자체적으로 **`onSubmit`** 함수를 통해서, data를 전달 받아, **`data 호출`**하면 됩니다. + + ```tsx + import {useForm} from 'react-hook-form' + + const SignUpPage = () => { + const {register, handleSubmit} = useForm(); + + const onSubmit = (data) => { + console.log('폼 데이터 제출') + console.log(data); + } + + return ( +
+ + + +
+ ); + }; + + export default SignUpPage; + + ``` + + 제가 만약 **`formData`**의 **`register`**에 아래와 같이 **`email`**, **`password`** 라는 이름으로, 연결했으니 아래와 같이 데이터가 출력됩니다. + + ![스크린샷 2024-09-17 오후 4.12.51.png](https://prod-files-secure.s3.us-west-2.amazonaws.com/f1912130-0409-4e90-a90f-6091ae253e73/e2a62981-5cb1-4703-aed2-d758f6bde89d/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-09-17_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_4.12.51.png) + + 우리가 위에서, 설명하기에는 **`yup`**을 활용해서, 유효성 검사를 진행한다고 했습니다. 이를 하기 위해서는 우리가 만든, **`schema`**를 **`resolve`** 하는 과정이 필요한데, 이를 위해 아래 라이브러리가 하나 더 필요합니다. + + ```tsx + yarn add @hookform/resolvers + ``` + + 먼저, 이메일과 비밀번호 관련해서 **`schema`**를 생성해보겠습니다. 여기서 말하는 **`schema`**는 쉽게 생각해서 **`유효성 검사`**라고 생각하시면 됩니다. + + 우리의 **`회원가입 유효성 검사 조건`**은 아래와 같다는 가정하에 진행해보겠습니다. + + ### 이메일 유효성 검사 조건 + + - [x] 문자열이어야 한다. + - [x] 필수로 입력되어야 한다. + + ### 비밀번호 유효성 검사 조건 + + - [x] 문자열이어야 한다. + - [x] 최소 8글자이어야 한다. + - [x] 최대 16자이어야 한다. + - [x] 필수로 입력되어야 한다. + + **`yup`**의 **`object`**를 통해, **`schema`**의 **`shape을 정의`**할 수 있습니다. + + ```tsx + import {useForm} from 'react-hook-form' + import * as yup from 'yup' + // TIP: zod를 사용하신다면 @hookform/resolvers/zod 를 import 하시면 됩니다! + import {yupResolver} from '@hookform/resolvers/yup' + + const SignUpPage = () => { + const schema = yup.object().shape({ + email: yup.string().email().required(), + password: yup.string().min(8).max(16).required(), + }) + + const {register, handleSubmit} = useForm(); + + const onSubmit = (data) => { + console.log('폼 데이터 제출') + console.log(data); + } + + return ( +
+ + + +
+ ); + }; + + export default SignUpPage; + + ``` + + 실제로, 이렇게 하면 적용이 되지 않습니다. 추가적인 처리를 해주어야 합니다. 우리가, 위에서 패키지로 설치한 **`yupResolver`**를 통해, 우리가 만든 **`schema`**를 연결시켜주면 됩니다. + + ```tsx + const {register, handleSubmit} = useForm({ + resolver: yupResolver(schema) + }); + ``` + + 그럼 이제 유효성 검사가 매우 잘되는 것을 확인할 수 있습니다. + + 에러 메시지를 확인하고 싶으시면, **`useForm`** hook에서 **`formState`**를 추가로 불러와야 합니다. + + ```tsx + const {register, handleSubmit, formState: {errors}} = useForm({ + resolver: yupResolver(schema) + }); + ``` + + 아래와 같이 전체 코드를 구성하면 에러메시지를 볼 수 있습니다. + + ```tsx + import {useForm} from 'react-hook-form' + import * as yup from 'yup' + import {yupResolver} from '@hookform/resolvers/yup' + + const SignUpPage = () => { + const schema = yup.object().shape({ + email: yup.string().email().required(), + password: yup.string().min(8).max(16).required(), + }) + + const {register, handleSubmit, formState: {errors}} = useForm({ + resolver: yupResolver(schema) + }); + + const onSubmit = (data) => { + console.log('폼 데이터 제출') + console.log(data); + } + + return ( +
+ + // register 한 이름에 맞게 연결해주세요! +

{errors.email?.message}

+ +

{errors.password?.message}

+ +
+ ); + }; + + export default SignUpPage; + + ``` + + ![스크린샷 2024-09-17 오후 5.07.41.png](https://prod-files-secure.s3.us-west-2.amazonaws.com/f1912130-0409-4e90-a90f-6091ae253e73/6b74818d-e5d1-4b3f-b151-04c085b46578/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-09-17_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_5.07.41.png) + + 위와 같이 에러메시지가, 나옵니다. 하지만, 우리는 한국인이기에, 영어로 된 에러메시지를 원하는 사람은 많지 않을 것 입니다. + + **`커스텀 에러 메시지 또한 선언`**해줄 수 있습니다. + + ```tsx + const schema = yup.object().shape({ + email: yup.string().email().required('이메일을 반드시 입력해주세요.'), + password: yup.string().min(8, '비밀번호는 8자 이상이어야 합니다.').max(16, '비밀번호는 16자 이하여야 합니다.').required(), + }) + ``` + + ![스크린샷 2024-09-17 오후 5.09.24.png](https://prod-files-secure.s3.us-west-2.amazonaws.com/f1912130-0409-4e90-a90f-6091ae253e73/7b8d8f7d-4579-4511-928d-495857e9990e/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-09-17_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_5.09.24.png) + + 특정 조건에 맞지 않는경우에 우리가 **`지정한 커스텀 에러`**를 넘겨줄 수 있습니다. \ No newline at end of file diff --git a/mission/chapter05/mission/src/3_Shared/config/apiConfig.js b/mission/chapter05/mission/src/3_Shared/config/apiConfig.js index ae3998c..dc3b75f 100644 --- a/mission/chapter05/mission/src/3_Shared/config/apiConfig.js +++ b/mission/chapter05/mission/src/3_Shared/config/apiConfig.js @@ -3,7 +3,6 @@ const API_TOKEN = import.meta.env.VITE_TMDB_API_TOKEN; const handleStatus = async (response) => { switch (response.status) { case 200: - return await response.json(); case 201: return await response.json(); default: From f3da5a999692a77e7cf67b876a2e5a21ceb5a54b Mon Sep 17 00:00:00 2001 From: RyuDongHo Date: Wed, 13 Nov 2024 15:42:04 +0900 Subject: [PATCH 07/15] =?UTF-8?q?mission:=20access/refresh=20token=20?= =?UTF-8?q?=EB=B0=A9=EC=8B=9D=20=EA=B5=AC=ED=98=84=20=EC=BF=A0=ED=82=A4?= =?UTF-8?q?=EB=A5=BC=20=EC=82=AC=EC=9A=A9=ED=95=B4=20token=EB=93=A4?= =?UTF-8?q?=EC=9D=84=20=EC=A0=80=EC=9E=A5=ED=95=98=EA=B3=A0=20refresh=20to?= =?UTF-8?q?ken=EC=9D=80=20httpOnly=20=EC=98=B5=EC=85=98=EC=9D=84=20?= =?UTF-8?q?=EC=A3=BC=EC=96=B4=EC=84=9C,=20=EB=B3=B4=EC=95=88=EC=9D=84=20?= =?UTF-8?q?=EB=86=92=EC=9D=B4=EB=A0=A4=20=ED=95=98=EC=98=80=EC=9C=BC?= =?UTF-8?q?=EB=82=98=20=EB=B0=B1=EC=97=94=EB=93=9C=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EC=A7=80=EA=B8=88=EC=9D=80=20httpOnly=EC=9D=98=20=EB=82=B4?= =?UTF-8?q?=EC=9A=A9=EC=9D=84=20=EB=B0=9B=EC=95=84=EC=A4=84=20=EC=88=98=20?= =?UTF-8?q?=EC=97=86=EA=B8=B0=20=EB=95=8C=EB=AC=B8=EC=97=90=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84=EB=A7=8C=20=ED=95=98=EA=B3=A0=20=EC=A3=BC=EC=84=9D?= =?UTF-8?q?=EC=B2=98=EB=A6=AC=ED=95=B4=EC=84=9C=20accessToken=EA=B3=BC=20?= =?UTF-8?q?=EA=B0=99=EC=9D=80=20=EB=B0=A9=EC=8B=9D=EC=9C=BC=EB=A1=9C=20ref?= =?UTF-8?q?reshToken=EC=9D=84=20=EC=A0=80=EC=9E=A5=ED=95=98=EA=B3=A0=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=ED=95=98=EA=B3=A0=20=EC=9E=88=EC=8A=B5?= =?UTF-8?q?=EB=8B=88=EB=8B=A4.=20=EB=B0=B1=EC=97=94=EB=93=9C=EB=A7=8C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=ED=95=98=EB=A9=B4=20=EC=A0=81=EC=9A=A9?= =?UTF-8?q?=EB=90=98=EB=8F=84=EB=A1=9D=20=ED=95=B4=EB=91=90=EC=97=88?= =?UTF-8?q?=EC=8A=B5=EB=8B=88=EB=8B=A4.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mission/chapter06/mission/package-lock.json | 62 ++++++++++++++++- mission/chapter06/mission/package.json | 1 + .../mission/src/0_App/ui/Navbar/index.jsx | 66 +++++++++++++------ .../src/1_Page/LoginPage/api/authLogin.js | 31 +++++++++ .../mission/src/1_Page/LoginPage/index.jsx | 10 ++- .../MovieDetailPage/api/useMovieDetail.js | 7 +- .../MovieDetailPage/api/useMovieProvider.js | 7 +- .../ui/MovieList/api/useMovieList.js | 9 ++- .../mission/src/1_Page/SignUpPage/index.jsx | 4 ++ .../src/3_Shared/api/refreshAccessToken.js | 20 ++++++ .../mission/src/3_Shared/api/useUserInfo.js | 39 +++++++++++ .../mission/src/3_Shared/config/apiConfig.js | 55 +++++++--------- .../mission/src/3_Shared/util/cookies.js | 23 +++++++ .../mission/src/3_Shared/util/tokenUtil.js | 8 +++ 14 files changed, 277 insertions(+), 65 deletions(-) create mode 100644 mission/chapter06/mission/src/1_Page/LoginPage/api/authLogin.js create mode 100644 mission/chapter06/mission/src/3_Shared/api/refreshAccessToken.js create mode 100644 mission/chapter06/mission/src/3_Shared/api/useUserInfo.js create mode 100644 mission/chapter06/mission/src/3_Shared/util/cookies.js create mode 100644 mission/chapter06/mission/src/3_Shared/util/tokenUtil.js diff --git a/mission/chapter06/mission/package-lock.json b/mission/chapter06/mission/package-lock.json index ac29c53..d744760 100644 --- a/mission/chapter06/mission/package-lock.json +++ b/mission/chapter06/mission/package-lock.json @@ -10,6 +10,7 @@ "dependencies": { "@hookform/resolvers": "^3.9.1", "react": "^18.3.1", + "react-cookie": "^7.2.2", "react-dom": "^18.3.1", "react-hook-form": "^7.53.1", "react-icons": "^5.3.0", @@ -1296,6 +1297,12 @@ "@babel/types": "^7.20.7" } }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "license": "MIT" + }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -1303,6 +1310,16 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", + "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", + "license": "MIT", + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -1314,14 +1331,12 @@ "version": "15.7.13", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", - "dev": true, "license": "MIT" }, "node_modules/@types/react": { "version": "18.3.11", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.11.tgz", "integrity": "sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==", - "dev": true, "license": "MIT", "dependencies": { "@types/prop-types": "*", @@ -1734,6 +1749,15 @@ "dev": true, "license": "MIT" }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -2763,6 +2787,15 @@ "node": ">= 0.4" } }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -3696,6 +3729,20 @@ "node": ">=0.10.0" } }, + "node_modules/react-cookie": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/react-cookie/-/react-cookie-7.2.2.tgz", + "integrity": "sha512-e+hi6axHcw9VODoeVu8WyMWyoosa1pzpyjfvrLdF7CexfU+WSGZdDuRfHa4RJgTpfv3ZjdIpHE14HpYBieHFhg==", + "license": "MIT", + "dependencies": { + "@types/hoist-non-react-statics": "^3.3.5", + "hoist-non-react-statics": "^3.3.2", + "universal-cookie": "^7.0.0" + }, + "peerDependencies": { + "react": ">= 16.3.0" + } + }, "node_modules/react-dom": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", @@ -3753,7 +3800,6 @@ "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true, "license": "MIT" }, "node_modules/react-refresh": { @@ -4406,6 +4452,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/universal-cookie": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/universal-cookie/-/universal-cookie-7.2.2.tgz", + "integrity": "sha512-fMiOcS3TmzP2x5QV26pIH3mvhexLIT0HmPa3V7Q7knRfT9HG6kTwq02HZGLPw0sAOXrAmotElGRvTLCMbJsvxQ==", + "license": "MIT", + "dependencies": { + "@types/cookie": "^0.6.0", + "cookie": "^0.7.2" + } + }, "node_modules/update-browserslist-db": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", diff --git a/mission/chapter06/mission/package.json b/mission/chapter06/mission/package.json index 6e4797b..5449dce 100644 --- a/mission/chapter06/mission/package.json +++ b/mission/chapter06/mission/package.json @@ -12,6 +12,7 @@ "dependencies": { "@hookform/resolvers": "^3.9.1", "react": "^18.3.1", + "react-cookie": "^7.2.2", "react-dom": "^18.3.1", "react-hook-form": "^7.53.1", "react-icons": "^5.3.0", diff --git a/mission/chapter06/mission/src/0_App/ui/Navbar/index.jsx b/mission/chapter06/mission/src/0_App/ui/Navbar/index.jsx index 09e4973..c6a2af8 100644 --- a/mission/chapter06/mission/src/0_App/ui/Navbar/index.jsx +++ b/mission/chapter06/mission/src/0_App/ui/Navbar/index.jsx @@ -2,30 +2,56 @@ import STYLE from "./style"; import { handleNavigation } from "../../../3_Shared/model/handleNavigate"; import logoImg from "./assets/logo.svg"; import { useNavigate } from "react-router-dom"; - +import { getCookie, deleteCookie } from "../../../3_Shared/util/cookies"; +import useUserInfo from "../../../3_Shared/api/useUserInfo"; +import { deleteAllCookies } from "../../../3_Shared/util/cookies"; const Navbar = () => { const navigate = useNavigate(); + const accessToken = getCookie("accessToken") || null; + const [userInfo, userInfoLoading] = useUserInfo(accessToken); + if (userInfoLoading) return <>still loading...; + + return ( - { - handleNavigation(navigate, "/"); - }}/> - - { - handleNavigation(navigate, "login"); - }} - > - 로그인 - - { - handleNavigation(navigate, "signup"); - }} - > - 회원가입 - - + { + handleNavigation(navigate, "/"); + }} + /> + + {accessToken !== null ? ( + + {userInfo.email?.split("@")[0]} + { + deleteCookie("accessToken"); + deleteCookie("refreshToken"); + handleNavigation(navigate, "/"); + }} + > + 로그아웃 + + + ) : ( + + { + handleNavigation(navigate, "login"); + }} + > + 로그인 + + { + handleNavigation(navigate, "signup"); + }} + > + 회원가입 + + + )} ); }; diff --git a/mission/chapter06/mission/src/1_Page/LoginPage/api/authLogin.js b/mission/chapter06/mission/src/1_Page/LoginPage/api/authLogin.js new file mode 100644 index 0000000..f0c0820 --- /dev/null +++ b/mission/chapter06/mission/src/1_Page/LoginPage/api/authLogin.js @@ -0,0 +1,31 @@ +import { fetchRequest } from "../../../3_Shared/config/apiConfig"; +import { setCookie } from "../../../3_Shared/util/cookies"; +const BASE_URL = import.meta.env.VITE_UMC_BASE_URL; + +const authLogin = (data) => { + const { email, password } = data; + const body = { + email: email, + password: password, + }; + const login = async () => { + const loginResult = await fetchRequest( + "POST", + `${BASE_URL}/auth/login`, + body + ); + let expiration = new Date(Date.now() + 3600 * 24 * 1000); + setCookie("accessToken", loginResult.accessToken, { + path: "/", + expires: expiration, + }); + setCookie("refreshToken", loginResult.refreshToken, { + path: "/", + expires: expiration, + //httpOnly: true + }); + return loginResult; + }; + return login(); +}; +export default authLogin; diff --git a/mission/chapter06/mission/src/1_Page/LoginPage/index.jsx b/mission/chapter06/mission/src/1_Page/LoginPage/index.jsx index 1eac6e4..d4a3731 100644 --- a/mission/chapter06/mission/src/1_Page/LoginPage/index.jsx +++ b/mission/chapter06/mission/src/1_Page/LoginPage/index.jsx @@ -1,4 +1,5 @@ import STYLE from "./style"; +import authLogin from "./api/authLogin"; import { useForm } from "react-hook-form"; import { emailSchema, @@ -6,15 +7,20 @@ import { } from "../../3_Shared/validation/yupSchema"; import { yupResolver } from "@hookform/resolvers/yup"; import * as Input from "../../3_Shared/ui/Input/"; +import { handleNavigation } from "../../3_Shared/model/handleNavigate"; +import { useNavigate } from "react-router-dom"; const LoginPage = () => { + const navigate = useNavigate(); const yupSchema = emailSchema.concat(passwordSchema); // prettier-ignore const { register, handleSubmit, formState: { errors, isValid } } = useForm({ mode: "onChange", resolver: yupResolver(yupSchema), }); - const onSubmit = (data) => { - console.log(data); + const onSubmit = async (data) => { + const loginResult = await authLogin(data); + handleNavigation(navigate, "/"); + console.log(loginResult); }; return ( diff --git a/mission/chapter06/mission/src/1_Page/MovieDetailPage/api/useMovieDetail.js b/mission/chapter06/mission/src/1_Page/MovieDetailPage/api/useMovieDetail.js index 4744b25..ae1fce0 100644 --- a/mission/chapter06/mission/src/1_Page/MovieDetailPage/api/useMovieDetail.js +++ b/mission/chapter06/mission/src/1_Page/MovieDetailPage/api/useMovieDetail.js @@ -1,5 +1,6 @@ import React from "react"; -import {TMDB_fetchRequest} from "../../../3_Shared/config/apiConfig"; +import {fetchRequest} from "../../../3_Shared/config/apiConfig"; +const API_TOKEN = import.meta.env.VITE_TMDB_API_TOKEN; const BASE_URL = import.meta.env.VITE_TMDB_BASE_URL; const BASE_IMG_URL = "https://image.tmdb.org/t/p/"; const BASE_IMG_SIZE = "original"; @@ -9,12 +10,12 @@ const useMovieDetail = (id) => { const [movieDetail, setMovieDetail] = React.useState([]); React.useEffect(() => { const fetchMovie = async () => { - let movieDetailResult = await TMDB_fetchRequest( + let movieDetailResult = await fetchRequest( // 영화 정보 "GET", `${BASE_URL}/movie/${id}?language=ko-KR`, null, - true + API_TOKEN ); movieDetailResult.backdrop_path = `${BASE_IMG_URL}${BASE_IMG_SIZE}${movieDetailResult.backdrop_path}`; diff --git a/mission/chapter06/mission/src/1_Page/MovieDetailPage/api/useMovieProvider.js b/mission/chapter06/mission/src/1_Page/MovieDetailPage/api/useMovieProvider.js index e291497..717bc47 100644 --- a/mission/chapter06/mission/src/1_Page/MovieDetailPage/api/useMovieProvider.js +++ b/mission/chapter06/mission/src/1_Page/MovieDetailPage/api/useMovieProvider.js @@ -1,5 +1,6 @@ import React from "react"; -import {TMDB_fetchRequest} from "../../../3_Shared/config/apiConfig"; +import {fetchRequest} from "../../../3_Shared/config/apiConfig"; +const API_TOKEN = import.meta.env.VITE_TMDB_API_TOKEN; const BASE_URL = import.meta.env.VITE_TMDB_BASE_URL; const BASE_IMG_URL = "https://image.tmdb.org/t/p/"; const BASE_IMG_SIZE = "w185"; @@ -9,11 +10,11 @@ const useMovieProvider = (id) => { const [movieProvider, setMovieProvider] = React.useState([]); React.useEffect(() => { const fetchMovie = async () => { - let movieProviderResult = await TMDB_fetchRequest( // 영화 제작진 + let movieProviderResult = await fetchRequest( // 영화 제작진 "GET", `${BASE_URL}/movie/${id}/credits?language=ko-KR`, null, - true + API_TOKEN ); movieProviderResult.cast.forEach((element) => { diff --git a/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js b/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js index ad8f63e..aefdfa6 100644 --- a/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js +++ b/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js @@ -1,5 +1,6 @@ import React from "react"; -import { TMDB_fetchRequest } from "../../../../../3_Shared/config/apiConfig"; +import { fetchRequest } from "../../../../../3_Shared/config/apiConfig"; +const API_TOKEN = import.meta.env.VITE_TMDB_API_TOKEN; const BASE_URL = import.meta.env.VITE_TMDB_BASE_URL; const BASE_IMG_URL = "https://image.tmdb.org/t/p/"; const BASE_IMG_SIZE = "w500"; @@ -9,9 +10,11 @@ const useMovieList = (category, page) => { const [movieList, setMovieList] = React.useState([]); React.useEffect(() => { const fetchMovie = async () => { - let result = await TMDB_fetchRequest( + let result = await fetchRequest( "GET", - `${BASE_URL}/movie/${category}?language=ko-KR&page=${page}` + `${BASE_URL}/movie/${category}?language=ko-KR&page=${page}`, + null, + API_TOKEN ); result.results.forEach((e) => { e.poster_path = `${BASE_IMG_URL}${BASE_IMG_SIZE}${e.poster_path}`; diff --git a/mission/chapter06/mission/src/1_Page/SignUpPage/index.jsx b/mission/chapter06/mission/src/1_Page/SignUpPage/index.jsx index 5dbf87f..51dfdb2 100644 --- a/mission/chapter06/mission/src/1_Page/SignUpPage/index.jsx +++ b/mission/chapter06/mission/src/1_Page/SignUpPage/index.jsx @@ -3,8 +3,11 @@ import { useForm } from "react-hook-form"; import { emailSchema, passwordSchema, passwordCheckSchema } from "../../3_Shared/validation/yupSchema"; import { yupResolver } from "@hookform/resolvers/yup"; import authSignUp from "./api/authSignUp"; +import { useNavigate } from "react-router-dom"; +import { handleNavigation } from "../../3_Shared/model/handleNavigate"; import * as Input from "../../3_Shared/ui/Input/"; const SignUpPage = () => { + const navigate = useNavigate(); const yupSchema = emailSchema.concat(passwordSchema.concat(passwordCheckSchema)); // prettier-ignore const { register, handleSubmit, formState: { errors, isValid } } = useForm({ @@ -13,6 +16,7 @@ const SignUpPage = () => { const onSubmit = async (data) => { const signUpResult = await authSignUp(data); + handleNavigation(navigate, "/login"); console.log(signUpResult); }; diff --git a/mission/chapter06/mission/src/3_Shared/api/refreshAccessToken.js b/mission/chapter06/mission/src/3_Shared/api/refreshAccessToken.js new file mode 100644 index 0000000..b7d1547 --- /dev/null +++ b/mission/chapter06/mission/src/3_Shared/api/refreshAccessToken.js @@ -0,0 +1,20 @@ +import { fetchRequest } from "../config/apiConfig"; + +const BASE_URL = import.meta.env.VITE_UMC_BASE_URL; + +const refreshAccessToken = async (refreshToken) => { + try { + const fetchAccessTokenResult = await fetchRequest( + "POST", + `${BASE_URL}/auth/token/access`, + null, + refreshToken + ); + return fetchAccessTokenResult; + } catch (error) { + console.error("Failed to refresh access token:", error); + return null; + } +}; + +export default refreshAccessToken; diff --git a/mission/chapter06/mission/src/3_Shared/api/useUserInfo.js b/mission/chapter06/mission/src/3_Shared/api/useUserInfo.js new file mode 100644 index 0000000..78ecfee --- /dev/null +++ b/mission/chapter06/mission/src/3_Shared/api/useUserInfo.js @@ -0,0 +1,39 @@ +import React from "react"; +import { fetchRequest } from "../config/apiConfig"; +import { isTokenValid } from "../util/tokenUtil"; +import { getCookie, setCookie } from "../util/cookies"; +import refreshAccessToken from "./refreshAccessToken"; +const BASE_URL = import.meta.env.VITE_UMC_BASE_URL; + +const useUserInfo = (accessToken) => { + const [userInfo, setUserInfo] = React.useState(); + const [loading, setLoading] = React.useState(true); + React.useEffect(() => { + const fetchUserInfo = async (accessToken) => { + if (accessToken === null) { + console.log("not logged in"); + setLoading(false); + return; + } + if (!isTokenValid(accessToken)) { + const refreshToken = getCookie("refreshToken"); + const tokens = await refreshAccessToken(refreshToken); + accessToken = tokens.accessToken; + setCookie("accessToken", accessToken); + } + const fetchUserInfoResult = await fetchRequest( + "GET", + `${BASE_URL}/user/me`, + null, + accessToken + ); + setUserInfo(fetchUserInfoResult); + setLoading(false); + }; + + fetchUserInfo(accessToken); + }, [accessToken]); + + return [userInfo, loading]; +}; +export default useUserInfo; diff --git a/mission/chapter06/mission/src/3_Shared/config/apiConfig.js b/mission/chapter06/mission/src/3_Shared/config/apiConfig.js index ae3998c..7ec8719 100644 --- a/mission/chapter06/mission/src/3_Shared/config/apiConfig.js +++ b/mission/chapter06/mission/src/3_Shared/config/apiConfig.js @@ -1,49 +1,42 @@ -const API_TOKEN = import.meta.env.VITE_TMDB_API_TOKEN; +/* +******************* USAGE ******************* -const handleStatus = async (response) => { - switch (response.status) { - case 200: - return await response.json(); - case 201: - return await response.json(); - default: - alert("API error"); // 상태 코드가 200이 아닌 경우 경고 - return null; - } -}; +fetchRequest('METHOD', 'NETWROKING URL', 'BODY' = null, 'TOKEN' = null); -const apiConfig = (method, bodyData = null) => { - const config = { - method: method, - headers: { - "Content-Type": "application/json", - }, - body: bodyData ? JSON.stringify(bodyData) : null, - }; - return config; -}; +********************************************* +*/ -const TMDB_apiConfig = (method) => { +const apiConfig = (method, body, token) => { const config = { method: method, headers: { "Content-Type": "application/json", - Authorization: `Bearer ${API_TOKEN}`, }, + //credentials: token == "refreshToken" ? "include" : undefined, }; + if (token !== null) { + config.headers.Authorization = `Bearer ${token}`; + } + if (body !== null) { + config.body = JSON.stringify(body); + } return config; }; -export const fetchRequest = async (method, url, bodyData = null) => { - const response = await fetch(url, apiConfig(method, bodyData)); +export const fetchRequest = async (method, url, body = null, token = null) => { + const response = await fetch(url, apiConfig(method, body, token)); let result = handleStatus(response); return result; }; -export const TMDB_fetchRequest = async (method, url) => { - const response = await fetch(url, TMDB_apiConfig(method)); - - let result = handleStatus(response); - return result; +const handleStatus = async (response) => { + switch (response.status) { + case 200: + case 201: + return await response.json(); + default: + console.log("API error"); // 상태 코드가 200이 아닌 경우 경고 + return null; + } }; diff --git a/mission/chapter06/mission/src/3_Shared/util/cookies.js b/mission/chapter06/mission/src/3_Shared/util/cookies.js new file mode 100644 index 0000000..e645612 --- /dev/null +++ b/mission/chapter06/mission/src/3_Shared/util/cookies.js @@ -0,0 +1,23 @@ +import { Cookies } from "react-cookie"; + +const cookies = new Cookies(); + +export const setCookie = (name, value, option) => { + return cookies.set(name, value, { ...option }); +}; + +export const getCookie = (name) => { + return cookies.get(name); +}; + +export const deleteAllCookies = () => { + const cookies = document.cookie.split(";"); + cookies.forEach((cookie) => { + const cookieName = cookie.split("=")[0]; + document.cookie = `${cookieName}=; path=/; expires=Thu, 01 Jan 1970 00:00:00 UTC;`; + }); +}; + +export const deleteCookie = (name) => { + cookies.set(name, '', { path: '/', expires: new Date(0) }); // 과거 날짜로 설정 +}; \ No newline at end of file diff --git a/mission/chapter06/mission/src/3_Shared/util/tokenUtil.js b/mission/chapter06/mission/src/3_Shared/util/tokenUtil.js new file mode 100644 index 0000000..931517d --- /dev/null +++ b/mission/chapter06/mission/src/3_Shared/util/tokenUtil.js @@ -0,0 +1,8 @@ +export const isTokenValid = (token) => { + if (!token) return false; + const decoded = JSON.parse(atob(token.split('.')[1])); // Base64 디코딩 + const now = Math.floor(Date.now() / 1000); // 현재 시간 (초 단위) + return decoded.exp > now; // 만료 시간(exp)과 비교 +}; + + From b2b6adfaaf13f0ec53aecd230631310558e55d09 Mon Sep 17 00:00:00 2001 From: RyuDongHo Date: Wed, 13 Nov 2024 18:37:53 +0900 Subject: [PATCH 08/15] =?UTF-8?q?mission:=20=EA=B2=80=EC=83=89=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5+=EB=AC=B4=ED=95=9C=EC=8A=A4=ED=81=AC=EB=A1=A4=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9=20=EA=B2=80=EC=83=89=EA=B8=B0=EB=8A=A5?= =?UTF-8?q?=EC=9D=84=20=EA=B5=AC=ED=98=84=ED=95=98=EB=A9=B4=EC=84=9C=20?= =?UTF-8?q?=EA=B8=B0=EC=A1=B4=20MovlieList=20=EC=BB=B4=ED=8F=AC=EB=84=8C?= =?UTF-8?q?=ED=8A=B8=EB=A5=BC=20Widget=EB=A0=88=EC=9D=B4=EC=96=B4=EB=A1=9C?= =?UTF-8?q?=20=EC=9D=B4=EB=8F=99=20=EC=8B=9C=EC=BC=B0=EA=B3=A0,=20?= =?UTF-8?q?=EA=B8=B0=EC=A1=B4=EC=97=90=20=EC=A0=81=EC=9A=A9=EB=90=98?= =?UTF-8?q?=EC=96=B4=EC=9E=88=EB=8D=98=20=EB=AC=B4=ED=95=9C=EC=8A=A4?= =?UTF-8?q?=ED=81=AC=EB=A1=A4=20=EB=A1=9C=EC=A7=81=EC=9D=84=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=ED=96=88=EC=8A=B5=EB=8B=88=EB=8B=A4.=20MovieList?= =?UTF-8?q?=EB=8A=94=20=EC=B4=88=EA=B8=B0=EC=97=90=20=EA=B2=80=EC=83=89?= =?UTF-8?q?=EC=9D=80=20=EA=B3=A0=EB=A0=A4=EB=90=98=EC=A7=80=20=EC=95=8A?= =?UTF-8?q?=EC=95=98=EA=B8=B0=20=EB=95=8C=EB=AC=B8=EC=97=90=20useMovieList?= =?UTF-8?q?=20api=ED=95=A8=EC=88=98=EC=9D=98=20=EB=A1=9C=EC=A7=81=EC=9D=B4?= =?UTF-8?q?=20=EC=88=98=EC=A0=95=EB=90=98=EC=97=88=EC=8A=B5=EB=8B=88?= =?UTF-8?q?=EB=8B=A4.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mission/src/0_App/ui/Navbar/index.jsx | 7 +-- .../src/1_Page/LoginPage/api/authLogin.js | 1 + .../src/1_Page/MovieListPage/index.jsx | 4 +- .../ui/MovieList/api/useMovieList.js | 32 ---------- .../MovieListPage/ui/MovieList/style.js | 44 ------------- .../mission/src/1_Page/SearchPage/index.jsx | 13 +++- .../chapter06/mission/src/1_Page/index.jsx | 1 + .../2_Widget/MovieList/api/useMovieList.js | 61 +++++++++++++++++++ .../ui => 2_Widget}/MovieList/index.jsx | 22 ++++--- .../mission/src/2_Widget/MovieList/style.js | 14 +++++ .../MovieList/ui/Movie/index.jsx | 2 +- .../MovieList/ui/Movie/style.js | 8 --- .../mission/src/3_Shared/util/cookies.js | 1 + 13 files changed, 110 insertions(+), 100 deletions(-) delete mode 100644 mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js delete mode 100644 mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/style.js create mode 100644 mission/chapter06/mission/src/2_Widget/MovieList/api/useMovieList.js rename mission/chapter06/mission/src/{1_Page/MovieListPage/ui => 2_Widget}/MovieList/index.jsx (63%) create mode 100644 mission/chapter06/mission/src/2_Widget/MovieList/style.js rename mission/chapter06/mission/src/{1_Page/MovieListPage/ui => 2_Widget}/MovieList/ui/Movie/index.jsx (87%) rename mission/chapter06/mission/src/{1_Page/MovieListPage/ui => 2_Widget}/MovieList/ui/Movie/style.js (77%) diff --git a/mission/chapter06/mission/src/0_App/ui/Navbar/index.jsx b/mission/chapter06/mission/src/0_App/ui/Navbar/index.jsx index c6a2af8..7933066 100644 --- a/mission/chapter06/mission/src/0_App/ui/Navbar/index.jsx +++ b/mission/chapter06/mission/src/0_App/ui/Navbar/index.jsx @@ -2,7 +2,7 @@ import STYLE from "./style"; import { handleNavigation } from "../../../3_Shared/model/handleNavigate"; import logoImg from "./assets/logo.svg"; import { useNavigate } from "react-router-dom"; -import { getCookie, deleteCookie } from "../../../3_Shared/util/cookies"; +import { getCookie } from "../../../3_Shared/util/cookies"; import useUserInfo from "../../../3_Shared/api/useUserInfo"; import { deleteAllCookies } from "../../../3_Shared/util/cookies"; const Navbar = () => { @@ -23,11 +23,10 @@ const Navbar = () => { {accessToken !== null ? ( - {userInfo.email?.split("@")[0]} + {(userInfo.email)?.split("@")[0]} { - deleteCookie("accessToken"); - deleteCookie("refreshToken"); + deleteAllCookies(); handleNavigation(navigate, "/"); }} > diff --git a/mission/chapter06/mission/src/1_Page/LoginPage/api/authLogin.js b/mission/chapter06/mission/src/1_Page/LoginPage/api/authLogin.js index f0c0820..98a42b4 100644 --- a/mission/chapter06/mission/src/1_Page/LoginPage/api/authLogin.js +++ b/mission/chapter06/mission/src/1_Page/LoginPage/api/authLogin.js @@ -14,6 +14,7 @@ const authLogin = (data) => { `${BASE_URL}/auth/login`, body ); + console.log("login", loginResult) let expiration = new Date(Date.now() + 3600 * 24 * 1000); setCookie("accessToken", loginResult.accessToken, { path: "/", diff --git a/mission/chapter06/mission/src/1_Page/MovieListPage/index.jsx b/mission/chapter06/mission/src/1_Page/MovieListPage/index.jsx index 2851ed6..0c4134d 100644 --- a/mission/chapter06/mission/src/1_Page/MovieListPage/index.jsx +++ b/mission/chapter06/mission/src/1_Page/MovieListPage/index.jsx @@ -1,5 +1,5 @@ import { useParams } from "react-router-dom"; -import MovieList from "./ui/MovieList"; +import MovieList from "../../2_Widget/MovieList"; const MovieListPage = () => { const {category} = useParams(); @@ -8,4 +8,4 @@ const MovieListPage = () => { ); }; -export default MovieListPage; +export default MovieListPage; \ No newline at end of file diff --git a/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js b/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js deleted file mode 100644 index aefdfa6..0000000 --- a/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/api/useMovieList.js +++ /dev/null @@ -1,32 +0,0 @@ -import React from "react"; -import { fetchRequest } from "../../../../../3_Shared/config/apiConfig"; -const API_TOKEN = import.meta.env.VITE_TMDB_API_TOKEN; -const BASE_URL = import.meta.env.VITE_TMDB_BASE_URL; -const BASE_IMG_URL = "https://image.tmdb.org/t/p/"; -const BASE_IMG_SIZE = "w500"; - -const useMovieList = (category, page) => { - const [loading, setLoading] = React.useState(true); - const [movieList, setMovieList] = React.useState([]); - React.useEffect(() => { - const fetchMovie = async () => { - let result = await fetchRequest( - "GET", - `${BASE_URL}/movie/${category}?language=ko-KR&page=${page}`, - null, - API_TOKEN - ); - result.results.forEach((e) => { - e.poster_path = `${BASE_IMG_URL}${BASE_IMG_SIZE}${e.poster_path}`; - }); - setMovieList((prevList) => [...prevList, ...result.results]); - setLoading(false); - console.log(page, "page") - }; - - fetchMovie(); - }, [category, page]); - - return [movieList, loading]; -}; -export default useMovieList; diff --git a/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/style.js b/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/style.js deleted file mode 100644 index 18e5896..0000000 --- a/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/style.js +++ /dev/null @@ -1,44 +0,0 @@ -import styled from "styled-components"; - -const STYLE = { - MovieList: styled.div` - display: flex; - flex-wrap: wrap; - gap: 12px; - padding: 16px; - background-color: ${({ theme }) => theme.background}; - align-content: start; - `, - Movie: styled.div` - position: relative; - flex-basis: 160px; - `, - Thumbnail: styled.img` - width: 160px; - height: 240px; - border-radius: 8px; - margin: 0; - `, - ThumbnailHoverEffectDiv: styled.div` - position: absolute; - top: 0; - left: 0; - width: 160px; - height: 240px; - background-color: gray; - opacity: 0; - border-radius: 8px; - &:hover { - opacity: 0.5; - } - `, - MovieInfo: styled.div` - display: flex; - flex-direction: column; - gap: 4px; - margin: 2px; - font-size: small; - `, -}; - -export default STYLE; diff --git a/mission/chapter06/mission/src/1_Page/SearchPage/index.jsx b/mission/chapter06/mission/src/1_Page/SearchPage/index.jsx index f16a469..6c43a79 100644 --- a/mission/chapter06/mission/src/1_Page/SearchPage/index.jsx +++ b/mission/chapter06/mission/src/1_Page/SearchPage/index.jsx @@ -1,7 +1,18 @@ +import { handleNavigation } from "../../3_Shared/model/handleNavigate"; +import { useNavigate } from "react-router-dom"; +import MovieList from "../../2_Widget/MovieList"; +import React from "react"; const SearchPage = ()=>{ + const navigate = useNavigate(); + const keyword = React.useRef(""); return (
- 검색페이지 +
{ + e.preventDefault() + handleNavigation(navigate, `/search?keyword=${keyword.current.value}`)}}> + +
+
) } diff --git a/mission/chapter06/mission/src/1_Page/index.jsx b/mission/chapter06/mission/src/1_Page/index.jsx index 4e5ed91..29fea0b 100644 --- a/mission/chapter06/mission/src/1_Page/index.jsx +++ b/mission/chapter06/mission/src/1_Page/index.jsx @@ -18,6 +18,7 @@ const Page = () => { } /> } /> } /> + } /> } /> } /> {/* 에러 페이지 추가 예정 */} diff --git a/mission/chapter06/mission/src/2_Widget/MovieList/api/useMovieList.js b/mission/chapter06/mission/src/2_Widget/MovieList/api/useMovieList.js new file mode 100644 index 0000000..7e7e209 --- /dev/null +++ b/mission/chapter06/mission/src/2_Widget/MovieList/api/useMovieList.js @@ -0,0 +1,61 @@ +import React from "react"; +import { fetchRequest } from "../../../3_Shared/config/apiConfig"; +const API_TOKEN = import.meta.env.VITE_TMDB_API_TOKEN; +const BASE_URL = import.meta.env.VITE_TMDB_BASE_URL; +const BASE_IMG_URL = "https://image.tmdb.org/t/p/"; +const BASE_IMG_SIZE = "w500"; + +const useMovieList = (category, page, isSearch) => { + const [loading, setLoading] = React.useState(true); + const [movieList, setMovieList] = React.useState([]); + const [lastCategory, setLastCategory] = React.useState(null); // 이전 카테고리 추적 + const [lastIsSearch, setLastIsSearch] = React.useState(null); // 이전 검색 상태 추적 + + React.useEffect(() => { + if (page > 500) return; // API 제한 페이지 초과 방지 + + // 검색어 또는 카테고리가 변경되었을 때 데이터 초기화 + if (category !== lastCategory || isSearch !== lastIsSearch) { + setMovieList([]); + setLastCategory(category); + setLastIsSearch(isSearch); + } + + const fetchMovies = async () => { + try { + let url; + if (isSearch) { + url = `${BASE_URL}/search/movie?query=${encodeURIComponent( + category + )}&include_adult=false&language=ko-KR&page=${page}`; + } else { + url = `${BASE_URL}/movie/${category}?language=ko-KR&page=${page}`; + } + + const result = await fetchRequest("GET", url, null, API_TOKEN); + + // 결과 데이터 가공 + const processedResults = result.results.map((movie) => ({ + ...movie, + poster_path: `${BASE_IMG_URL}${BASE_IMG_SIZE}${movie.poster_path}`, + })); + + setMovieList((prevList) => + category !== lastCategory || isSearch !== lastIsSearch + ? processedResults // 검색어나 카테고리가 변경되면 데이터 덮어쓰기 + : [...prevList, ...processedResults] // 페이지네이션일 경우 데이터 추가 + ); + } catch (error) { + console.error("Failed to fetch movies:", error); + } finally { + setLoading(false); // 로딩 완료 + } + }; + + fetchMovies(); + }, [category, page, isSearch, lastCategory, lastIsSearch]); + + return [movieList, loading]; +}; + +export default useMovieList; diff --git a/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/index.jsx b/mission/chapter06/mission/src/2_Widget/MovieList/index.jsx similarity index 63% rename from mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/index.jsx rename to mission/chapter06/mission/src/2_Widget/MovieList/index.jsx index 8707a04..4ee5b81 100644 --- a/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/index.jsx +++ b/mission/chapter06/mission/src/2_Widget/MovieList/index.jsx @@ -1,23 +1,29 @@ import useMovieList from "./api/useMovieList"; import STYLE from "./style"; import React from "react"; -import Movie from "./ui/Movie"; -import { useParams } from "react-router-dom"; +import Movie from "./ui/Movie" +import { useParams, useSearchParams } from "react-router-dom"; import { useInView } from "react-intersection-observer"; const MovieList = () => { - const { category } = useParams(); const [page, setPage] = React.useState(1); - const [movieList, loading] = useMovieList(category, page); + const { category } = useParams(); + + // 쿼리 문자열 가져오기 + const [searchParams] = useSearchParams(); + const keyword = searchParams.get("keyword"); + const isSearch = !category && !!keyword; + const [movieList, loading] = useMovieList(isSearch? keyword : category, page, isSearch); + const { ref, inView } = useInView({ threshold: 0, }); - React.useEffect(() =>{ - if(inView && !loading){ - setPage((prev) => prev+1); + React.useEffect(() => { + if (inView && !loading) { + setPage((prev) => prev + 1); } - }, [inView, loading]) + }, [inView, loading]); if (loading) return
still loading...
; // API loading diff --git a/mission/chapter06/mission/src/2_Widget/MovieList/style.js b/mission/chapter06/mission/src/2_Widget/MovieList/style.js new file mode 100644 index 0000000..cc039dd --- /dev/null +++ b/mission/chapter06/mission/src/2_Widget/MovieList/style.js @@ -0,0 +1,14 @@ +import styled from "styled-components"; + +const STYLE = { + MovieList: styled.div` + display: flex; + flex-wrap: wrap; + gap: 12px; + padding: 16px; + background-color: ${({ theme }) => theme.background}; + align-content: start; + ` +}; + +export default STYLE; diff --git a/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/index.jsx b/mission/chapter06/mission/src/2_Widget/MovieList/ui/Movie/index.jsx similarity index 87% rename from mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/index.jsx rename to mission/chapter06/mission/src/2_Widget/MovieList/ui/Movie/index.jsx index 3a3b42e..af23848 100644 --- a/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/index.jsx +++ b/mission/chapter06/mission/src/2_Widget/MovieList/ui/Movie/index.jsx @@ -1,6 +1,6 @@ import STYLE from "./style"; import { useNavigate } from "react-router-dom"; -import { handleNavigation } from "../../../../../../3_Shared/model/handleNavigate"; +import { handleNavigation } from "../../../../3_Shared/model/handleNavigate"; const Movie = (props) => { const { observe, data} = props; const { poster_path, title, release_date, id } = data; diff --git a/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/style.js b/mission/chapter06/mission/src/2_Widget/MovieList/ui/Movie/style.js similarity index 77% rename from mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/style.js rename to mission/chapter06/mission/src/2_Widget/MovieList/ui/Movie/style.js index 18e5896..e8d6551 100644 --- a/mission/chapter06/mission/src/1_Page/MovieListPage/ui/MovieList/ui/Movie/style.js +++ b/mission/chapter06/mission/src/2_Widget/MovieList/ui/Movie/style.js @@ -1,14 +1,6 @@ import styled from "styled-components"; const STYLE = { - MovieList: styled.div` - display: flex; - flex-wrap: wrap; - gap: 12px; - padding: 16px; - background-color: ${({ theme }) => theme.background}; - align-content: start; - `, Movie: styled.div` position: relative; flex-basis: 160px; diff --git a/mission/chapter06/mission/src/3_Shared/util/cookies.js b/mission/chapter06/mission/src/3_Shared/util/cookies.js index e645612..5a9b753 100644 --- a/mission/chapter06/mission/src/3_Shared/util/cookies.js +++ b/mission/chapter06/mission/src/3_Shared/util/cookies.js @@ -19,5 +19,6 @@ export const deleteAllCookies = () => { }; export const deleteCookie = (name) => { + document.cookie = `${name}=; path=/; expires=Thu, 01 Jan 1970 00:00:00 UTC;`; cookies.set(name, '', { path: '/', expires: new Date(0) }); // 과거 날짜로 설정 }; \ No newline at end of file From 9a86d97b3a75b3ca0d946a5193d7197dc217fdf2 Mon Sep 17 00:00:00 2001 From: RyuDongHo Date: Wed, 13 Nov 2024 20:04:53 +0900 Subject: [PATCH 09/15] =?UTF-8?q?mission:=20debounce=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20=EB=B0=8F=20=EB=B2=84=EA=B7=B8=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20debounce=EB=A5=BC=20=EC=B6=94=EA=B0=80=ED=95=98?= =?UTF-8?q?=EA=B8=B4=20=ED=96=88=EB=8A=94=EB=8D=B0,=20=EC=A0=9C=EA=B0=80?= =?UTF-8?q?=20=EA=B5=AC=ED=98=84=ED=95=9C=20=EB=A1=9C=EC=A7=81=EC=83=81=20?= =?UTF-8?q?=EA=B2=80=EC=83=89=EC=97=90=20debounce=EA=B0=80=20=EB=A7=9E?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EA=B8=B0=EB=95=8C=EB=AC=B8=EC=97=90=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9=EC=9D=80=20=ED=95=98=EC=A7=80=20=EC=95=8A?= =?UTF-8?q?=EC=95=98=EA=B3=A0=20=EC=BF=A0=ED=82=A4=EA=B0=80=20=EB=98=91?= =?UTF-8?q?=EB=B0=94=EB=A1=9C=20=EC=82=AD=EC=A0=9C=EB=90=98=EC=A7=80=20?= =?UTF-8?q?=EC=95=8A=EB=8A=94=20=EB=AC=B8=EC=A0=9C=EB=A5=BC=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=ED=95=98=EA=B3=A0,=20=EC=9D=BC=EB=B6=80=20=EC=8A=A4?= =?UTF-8?q?=ED=83=80=EC=9D=BC=20=EC=88=98=EC=A0=95=ED=96=88=EC=8A=B5?= =?UTF-8?q?=EB=8B=88=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mission/src/0_App/ui/Navbar/index.jsx | 5 +++-- .../src/1_Page/LoginPage/api/authLogin.js | 4 +++- .../mission/src/1_Page/SearchPage/index.jsx | 3 ++- .../mission/src/3_Shared/lib/useDebounce.js | 19 +++++++++++++++++++ .../mission/src/3_Shared/ui/Input/index.jsx | 4 ++-- .../mission/src/3_Shared/ui/Input/style.js | 8 ++++++++ .../mission/src/3_Shared/util/cookies.js | 12 ++++++------ 7 files changed, 43 insertions(+), 12 deletions(-) create mode 100644 mission/chapter06/mission/src/3_Shared/lib/useDebounce.js diff --git a/mission/chapter06/mission/src/0_App/ui/Navbar/index.jsx b/mission/chapter06/mission/src/0_App/ui/Navbar/index.jsx index 7933066..ee63ff3 100644 --- a/mission/chapter06/mission/src/0_App/ui/Navbar/index.jsx +++ b/mission/chapter06/mission/src/0_App/ui/Navbar/index.jsx @@ -4,7 +4,7 @@ import logoImg from "./assets/logo.svg"; import { useNavigate } from "react-router-dom"; import { getCookie } from "../../../3_Shared/util/cookies"; import useUserInfo from "../../../3_Shared/api/useUserInfo"; -import { deleteAllCookies } from "../../../3_Shared/util/cookies"; +import { deleteAllCookies, deleteCookie } from "../../../3_Shared/util/cookies"; const Navbar = () => { const navigate = useNavigate(); const accessToken = getCookie("accessToken") || null; @@ -26,7 +26,8 @@ const Navbar = () => { {(userInfo.email)?.split("@")[0]} { - deleteAllCookies(); + deleteCookie("accessToken") + deleteCookie("refreshToken") handleNavigation(navigate, "/"); }} > diff --git a/mission/chapter06/mission/src/1_Page/LoginPage/api/authLogin.js b/mission/chapter06/mission/src/1_Page/LoginPage/api/authLogin.js index 98a42b4..a396fd8 100644 --- a/mission/chapter06/mission/src/1_Page/LoginPage/api/authLogin.js +++ b/mission/chapter06/mission/src/1_Page/LoginPage/api/authLogin.js @@ -15,7 +15,9 @@ const authLogin = (data) => { body ); console.log("login", loginResult) - let expiration = new Date(Date.now() + 3600 * 24 * 1000); + let expiration = new Date(); + expiration.setTime(expiration.getTime() + 3600 * 24 * 1000); // 1일 후 만료 + setCookie("accessToken", loginResult.accessToken, { path: "/", expires: expiration, diff --git a/mission/chapter06/mission/src/1_Page/SearchPage/index.jsx b/mission/chapter06/mission/src/1_Page/SearchPage/index.jsx index 6c43a79..11da60b 100644 --- a/mission/chapter06/mission/src/1_Page/SearchPage/index.jsx +++ b/mission/chapter06/mission/src/1_Page/SearchPage/index.jsx @@ -2,6 +2,7 @@ import { handleNavigation } from "../../3_Shared/model/handleNavigate"; import { useNavigate } from "react-router-dom"; import MovieList from "../../2_Widget/MovieList"; import React from "react"; +import { LongInput } from "../../3_Shared/ui/Input"; const SearchPage = ()=>{ const navigate = useNavigate(); const keyword = React.useRef(""); @@ -10,7 +11,7 @@ const SearchPage = ()=>{
{ e.preventDefault() handleNavigation(navigate, `/search?keyword=${keyword.current.value}`)}}> - + diff --git a/mission/chapter06/mission/src/3_Shared/lib/useDebounce.js b/mission/chapter06/mission/src/3_Shared/lib/useDebounce.js new file mode 100644 index 0000000..b713184 --- /dev/null +++ b/mission/chapter06/mission/src/3_Shared/lib/useDebounce.js @@ -0,0 +1,19 @@ +import React from "react"; + +const useDebounce = (value, delay) => { + const [debouncedValue, setDebouncedValue] = React.useState(value); + + React.useEffect(()=>{ + const debounceTimer = setTimeout(()=>{ + setDebouncedValue(value); + }, delay) + + return () => { + clearTimeout(debounceTimer); + } + }, [value, delay]) + + return debouncedValue; +} + +export default useDebounce; \ No newline at end of file diff --git a/mission/chapter06/mission/src/3_Shared/ui/Input/index.jsx b/mission/chapter06/mission/src/3_Shared/ui/Input/index.jsx index a8d13e6..7c220d8 100644 --- a/mission/chapter06/mission/src/3_Shared/ui/Input/index.jsx +++ b/mission/chapter06/mission/src/3_Shared/ui/Input/index.jsx @@ -1,2 +1,2 @@ -import { Container, Label, DefaultInput, SubmitInput, InputErrMsg } from "./style" -export { Container, Label, DefaultInput, SubmitInput, InputErrMsg } \ No newline at end of file +import { Container, LongInput, Label, DefaultInput, SubmitInput, InputErrMsg } from "./style" +export { Container, LongInput, Label, DefaultInput, SubmitInput, InputErrMsg } \ No newline at end of file diff --git a/mission/chapter06/mission/src/3_Shared/ui/Input/style.js b/mission/chapter06/mission/src/3_Shared/ui/Input/style.js index e5466a6..6507c91 100644 --- a/mission/chapter06/mission/src/3_Shared/ui/Input/style.js +++ b/mission/chapter06/mission/src/3_Shared/ui/Input/style.js @@ -21,6 +21,14 @@ export const DefaultInput = styled.input` } `; +export const LongInput = styled.input` + width: 720px; + height: 50px; + border-radius: 8px; + outline: none; + color: black; +` + export const SubmitInput = styled.input` width: 360px; height: 50px; diff --git a/mission/chapter06/mission/src/3_Shared/util/cookies.js b/mission/chapter06/mission/src/3_Shared/util/cookies.js index 5a9b753..8556197 100644 --- a/mission/chapter06/mission/src/3_Shared/util/cookies.js +++ b/mission/chapter06/mission/src/3_Shared/util/cookies.js @@ -10,15 +10,15 @@ export const getCookie = (name) => { return cookies.get(name); }; +// 모든 쿠키 삭제 export const deleteAllCookies = () => { - const cookies = document.cookie.split(";"); - cookies.forEach((cookie) => { - const cookieName = cookie.split("=")[0]; - document.cookie = `${cookieName}=; path=/; expires=Thu, 01 Jan 1970 00:00:00 UTC;`; + const allCookies = cookies.getAll(); // 모든 쿠키 가져오기 + Object.keys(allCookies).forEach((cookieName) => { + cookies.remove(cookieName, { path: "/" }); // 각 쿠키 삭제 }); }; +// 특정 쿠키 삭제 export const deleteCookie = (name) => { - document.cookie = `${name}=; path=/; expires=Thu, 01 Jan 1970 00:00:00 UTC;`; - cookies.set(name, '', { path: '/', expires: new Date(0) }); // 과거 날짜로 설정 + cookies.remove(name, { path: "/" }); // react-cookie의 remove 메서드 사용 }; \ No newline at end of file From 96e556c468e7b4d02f71f82ed963ec583501a64e Mon Sep 17 00:00:00 2001 From: RyuDongHo Date: Wed, 13 Nov 2024 23:30:39 +0900 Subject: [PATCH 10/15] =?UTF-8?q?mission:=20fix=20loading=20state=20of=20M?= =?UTF-8?q?ovie=20MovieList=20=EB=8D=B0=EC=9D=B4=ED=84=B0=EB=A5=BC=20?= =?UTF-8?q?=EB=B0=9B=EC=95=84=EC=98=A4=EB=A9=B4=EC=84=9C=20loading=20state?= =?UTF-8?q?=EA=B0=80=20=EC=9E=98=EB=AA=BB=20=EA=B4=80=EB=A6=AC=EB=90=98?= =?UTF-8?q?=EA=B3=A0=20=EC=9E=88=EC=96=B4=20skeleton=20ui=EA=B0=80=20?= =?UTF-8?q?=EB=98=91=EB=B0=94=EB=A1=9C=20=EC=B6=9C=EB=A0=A5=EB=90=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EB=8D=98=20=EC=9D=B4=EC=8A=88=EB=A5=BC=20?= =?UTF-8?q?=ED=95=B4=EA=B2=B0=ED=96=88=EC=8A=B5=EB=8B=88=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MovieDetailPage/api/useMovieDetail.js | 1 + .../mission/src/1_Page/SignUpPage/index.jsx | 2 +- .../2_Widget/MovieList/api/useMovieList.js | 18 ++++--- .../mission/src/2_Widget/MovieList/index.jsx | 48 ++++++++++++------- .../mission/src/3_Shared/api/useUserInfo.js | 7 ++- .../src/3_Shared/ui/skeletonUi/index.jsx | 2 + .../src/3_Shared/ui/skeletonUi/style.js | 18 +++++++ 7 files changed, 71 insertions(+), 25 deletions(-) create mode 100644 mission/chapter06/mission/src/3_Shared/ui/skeletonUi/index.jsx create mode 100644 mission/chapter06/mission/src/3_Shared/ui/skeletonUi/style.js diff --git a/mission/chapter06/mission/src/1_Page/MovieDetailPage/api/useMovieDetail.js b/mission/chapter06/mission/src/1_Page/MovieDetailPage/api/useMovieDetail.js index ae1fce0..46eaf39 100644 --- a/mission/chapter06/mission/src/1_Page/MovieDetailPage/api/useMovieDetail.js +++ b/mission/chapter06/mission/src/1_Page/MovieDetailPage/api/useMovieDetail.js @@ -10,6 +10,7 @@ const useMovieDetail = (id) => { const [movieDetail, setMovieDetail] = React.useState([]); React.useEffect(() => { const fetchMovie = async () => { + setLoading(true); let movieDetailResult = await fetchRequest( // 영화 정보 "GET", diff --git a/mission/chapter06/mission/src/1_Page/SignUpPage/index.jsx b/mission/chapter06/mission/src/1_Page/SignUpPage/index.jsx index 51dfdb2..6b7a55a 100644 --- a/mission/chapter06/mission/src/1_Page/SignUpPage/index.jsx +++ b/mission/chapter06/mission/src/1_Page/SignUpPage/index.jsx @@ -52,7 +52,7 @@ const SignUpPage = () => { /> {errors.passwordCheck?.message} - + ); }; diff --git a/mission/chapter06/mission/src/2_Widget/MovieList/api/useMovieList.js b/mission/chapter06/mission/src/2_Widget/MovieList/api/useMovieList.js index 7e7e209..b8359f5 100644 --- a/mission/chapter06/mission/src/2_Widget/MovieList/api/useMovieList.js +++ b/mission/chapter06/mission/src/2_Widget/MovieList/api/useMovieList.js @@ -6,13 +6,17 @@ const BASE_IMG_URL = "https://image.tmdb.org/t/p/"; const BASE_IMG_SIZE = "w500"; const useMovieList = (category, page, isSearch) => { - const [loading, setLoading] = React.useState(true); + const [loading, setLoading] = React.useState(false); const [movieList, setMovieList] = React.useState([]); const [lastCategory, setLastCategory] = React.useState(null); // 이전 카테고리 추적 const [lastIsSearch, setLastIsSearch] = React.useState(null); // 이전 검색 상태 추적 React.useEffect(() => { - if (page > 500) return; // API 제한 페이지 초과 방지 + console.log(loading) + if (category === "" || page > 500) { + setLoading(false); + return; + } // 검색어 또는 카테고리가 변경되었을 때 데이터 초기화 if (category !== lastCategory || isSearch !== lastIsSearch) { @@ -23,6 +27,7 @@ const useMovieList = (category, page, isSearch) => { const fetchMovies = async () => { try { + setLoading(true); let url; if (isSearch) { url = `${BASE_URL}/search/movie?query=${encodeURIComponent( @@ -40,10 +45,11 @@ const useMovieList = (category, page, isSearch) => { poster_path: `${BASE_IMG_URL}${BASE_IMG_SIZE}${movie.poster_path}`, })); - setMovieList((prevList) => - category !== lastCategory || isSearch !== lastIsSearch - ? processedResults // 검색어나 카테고리가 변경되면 데이터 덮어쓰기 - : [...prevList, ...processedResults] // 페이지네이션일 경우 데이터 추가 + setMovieList( + (prevList) => + category !== lastCategory || isSearch !== lastIsSearch + ? processedResults // 검색어나 카테고리가 변경되면 데이터 덮어쓰기 + : [...prevList, ...processedResults] // 페이지네이션일 경우 데이터 추가 ); } catch (error) { console.error("Failed to fetch movies:", error); diff --git a/mission/chapter06/mission/src/2_Widget/MovieList/index.jsx b/mission/chapter06/mission/src/2_Widget/MovieList/index.jsx index 4ee5b81..ba06637 100644 --- a/mission/chapter06/mission/src/2_Widget/MovieList/index.jsx +++ b/mission/chapter06/mission/src/2_Widget/MovieList/index.jsx @@ -1,7 +1,8 @@ import useMovieList from "./api/useMovieList"; import STYLE from "./style"; import React from "react"; -import Movie from "./ui/Movie" +import Movie from "./ui/Movie"; +import { SkeletonContainer, CardSkeleton } from "../../3_Shared/ui/skeletonUi"; import { useParams, useSearchParams } from "react-router-dom"; import { useInView } from "react-intersection-observer"; const MovieList = () => { @@ -12,8 +13,11 @@ const MovieList = () => { const [searchParams] = useSearchParams(); const keyword = searchParams.get("keyword"); const isSearch = !category && !!keyword; - const [movieList, loading] = useMovieList(isSearch? keyword : category, page, isSearch); - + const [movieList, loading] = useMovieList( + isSearch ? keyword : category, + page, + isSearch + ); const { ref, inView } = useInView({ threshold: 0, @@ -25,21 +29,31 @@ const MovieList = () => { } }, [inView, loading]); - if (loading) return
still loading...
; // API loading - return ( - - {movieList.map((elem, index) => { - return ( - - ); - })} - {loading &&
Loading more movies...
} -
+ <> + + {movieList.map((elem, index) => { + return ( + + ); + })} + {(loading && !!keyword) && ( + + {new Array(30).fill(null).map((_, index) => ( + + ))} + + )} + + + {(!loading && movieList.length <= 0 && !!keyword) && ( +

no result about {keyword}

+ )} + ); }; MovieList.displayName = "MovieList"; diff --git a/mission/chapter06/mission/src/3_Shared/api/useUserInfo.js b/mission/chapter06/mission/src/3_Shared/api/useUserInfo.js index 78ecfee..56fbc6d 100644 --- a/mission/chapter06/mission/src/3_Shared/api/useUserInfo.js +++ b/mission/chapter06/mission/src/3_Shared/api/useUserInfo.js @@ -19,7 +19,12 @@ const useUserInfo = (accessToken) => { const refreshToken = getCookie("refreshToken"); const tokens = await refreshAccessToken(refreshToken); accessToken = tokens.accessToken; - setCookie("accessToken", accessToken); + let expiration = new Date(); + expiration.setTime(expiration.getTime() + 3600 * 24 * 1000); // 1일 후 만료 + setCookie("accessToken", accessToken, { + path: "/", + expires: expiration, + }); } const fetchUserInfoResult = await fetchRequest( "GET", diff --git a/mission/chapter06/mission/src/3_Shared/ui/skeletonUi/index.jsx b/mission/chapter06/mission/src/3_Shared/ui/skeletonUi/index.jsx new file mode 100644 index 0000000..b17b24e --- /dev/null +++ b/mission/chapter06/mission/src/3_Shared/ui/skeletonUi/index.jsx @@ -0,0 +1,2 @@ +import { SkeletonContainer, CardSkeleton } from "./style" +export { SkeletonContainer, CardSkeleton } \ No newline at end of file diff --git a/mission/chapter06/mission/src/3_Shared/ui/skeletonUi/style.js b/mission/chapter06/mission/src/3_Shared/ui/skeletonUi/style.js new file mode 100644 index 0000000..5b5c508 --- /dev/null +++ b/mission/chapter06/mission/src/3_Shared/ui/skeletonUi/style.js @@ -0,0 +1,18 @@ +import styled from "styled-components"; + +export const SkeletonContainer = styled.div` + display: flex; + flex-wrap: wrap; + gap: 12px; + padding: 16px; + background-color: ${({ theme }) => theme.background}; + align-content: start; +`; +export const CardSkeleton = styled.div` + width: 160px; + height: 240px; + border-radius: 8px; + margin: 0; + background-color: gray; + opacity: 0.7; +`; From e8d606a8e37cd9526db4158a107cb54f2059e639 Mon Sep 17 00:00:00 2001 From: RyuDongHo Date: Wed, 13 Nov 2024 23:52:04 +0900 Subject: [PATCH 11/15] =?UTF-8?q?chore:=20=EC=BD=94=EB=93=9C=20=EC=A0=95?= =?UTF-8?q?=EB=A6=AC=20=EC=9D=BC=EB=B6=80=20=EC=BD=94=EB=93=9C=20=EC=A0=95?= =?UTF-8?q?=EB=A6=AC=20=ED=96=88=EC=8A=B5=EB=8B=88=EB=8B=A4.=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=EC=9D=80=20=EB=B3=80=ED=95=9C=20=EB=B6=80=EB=B6=84=20?= =?UTF-8?q?=EC=97=86=EC=8A=B5=EB=8B=88=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mission/chapter06/mission/src/1_Page/MovieListPage/index.jsx | 4 +--- .../mission/src/2_Widget/MovieList/api/useMovieList.js | 1 - mission/chapter06/mission/src/2_Widget/MovieList/index.jsx | 2 +- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/mission/chapter06/mission/src/1_Page/MovieListPage/index.jsx b/mission/chapter06/mission/src/1_Page/MovieListPage/index.jsx index 0c4134d..2e6ca6c 100644 --- a/mission/chapter06/mission/src/1_Page/MovieListPage/index.jsx +++ b/mission/chapter06/mission/src/1_Page/MovieListPage/index.jsx @@ -1,10 +1,8 @@ -import { useParams } from "react-router-dom"; import MovieList from "../../2_Widget/MovieList"; const MovieListPage = () => { - const {category} = useParams(); return ( - + ); }; diff --git a/mission/chapter06/mission/src/2_Widget/MovieList/api/useMovieList.js b/mission/chapter06/mission/src/2_Widget/MovieList/api/useMovieList.js index b8359f5..612d7b4 100644 --- a/mission/chapter06/mission/src/2_Widget/MovieList/api/useMovieList.js +++ b/mission/chapter06/mission/src/2_Widget/MovieList/api/useMovieList.js @@ -12,7 +12,6 @@ const useMovieList = (category, page, isSearch) => { const [lastIsSearch, setLastIsSearch] = React.useState(null); // 이전 검색 상태 추적 React.useEffect(() => { - console.log(loading) if (category === "" || page > 500) { setLoading(false); return; diff --git a/mission/chapter06/mission/src/2_Widget/MovieList/index.jsx b/mission/chapter06/mission/src/2_Widget/MovieList/index.jsx index ba06637..2f1ab12 100644 --- a/mission/chapter06/mission/src/2_Widget/MovieList/index.jsx +++ b/mission/chapter06/mission/src/2_Widget/MovieList/index.jsx @@ -41,7 +41,7 @@ const MovieList = () => { /> ); })} - {(loading && !!keyword) && ( + {(loading) && ( {new Array(30).fill(null).map((_, index) => ( From 8384963858e5fd8127281f95bf63aad1442d2567 Mon Sep 17 00:00:00 2001 From: RyuDongHo Date: Thu, 14 Nov 2024 00:11:16 +0900 Subject: [PATCH 12/15] =?UTF-8?q?chore:=20style=20=EC=88=98=EC=A0=95=20app?= =?UTF-8?q?=20=EC=9D=98=20style=ED=8C=8C=EC=9D=BC=EC=9D=84=20=EC=A0=95?= =?UTF-8?q?=EB=A6=AC=ED=95=98=EB=A9=B4=EC=84=9C=20appcontainer=EB=A5=BC=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=ED=95=98=EC=97=AC=20sticky=20=EC=86=8D?= =?UTF-8?q?=EC=84=B1=EC=9D=B4=20=EB=98=91=EB=B0=94=EB=A1=9C=20=EC=9E=91?= =?UTF-8?q?=EB=8F=99=ED=95=98=EB=8F=84=EB=A1=9D=20=ED=95=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mission/chapter06/mission/src/0_App/index.jsx | 11 +++++++---- .../mission/src/0_App/{ => style}/globalStyle.js | 0 mission/chapter06/mission/src/0_App/style/style.js | 9 +++++++++ .../chapter06/mission/src/0_App/{ => style}/theme.js | 0 4 files changed, 16 insertions(+), 4 deletions(-) rename mission/chapter06/mission/src/0_App/{ => style}/globalStyle.js (100%) create mode 100644 mission/chapter06/mission/src/0_App/style/style.js rename mission/chapter06/mission/src/0_App/{ => style}/theme.js (100%) diff --git a/mission/chapter06/mission/src/0_App/index.jsx b/mission/chapter06/mission/src/0_App/index.jsx index 9374bd3..b9a375e 100644 --- a/mission/chapter06/mission/src/0_App/index.jsx +++ b/mission/chapter06/mission/src/0_App/index.jsx @@ -1,17 +1,20 @@ import Page from "../1_Page"; import { BrowserRouter } from "react-router-dom"; import { ThemeProvider } from "styled-components"; -import GlobalStyles from "./globalStyle.js"; +import GlobalStyles from "./style/globalStyle.js"; import Navbar from "./ui/Navbar/index.jsx"; +import STYLE from "./style/style.js"; -import theme from "./theme.js"; +import theme from "./style/theme.js"; function App() { return ( - - + + + + ); diff --git a/mission/chapter06/mission/src/0_App/globalStyle.js b/mission/chapter06/mission/src/0_App/style/globalStyle.js similarity index 100% rename from mission/chapter06/mission/src/0_App/globalStyle.js rename to mission/chapter06/mission/src/0_App/style/globalStyle.js diff --git a/mission/chapter06/mission/src/0_App/style/style.js b/mission/chapter06/mission/src/0_App/style/style.js new file mode 100644 index 0000000..c99302b --- /dev/null +++ b/mission/chapter06/mission/src/0_App/style/style.js @@ -0,0 +1,9 @@ +import styled from "styled-components"; + +const STYLE = { + AppContainer: styled.div` + position: relative; + `, +}; + +export default STYLE; diff --git a/mission/chapter06/mission/src/0_App/theme.js b/mission/chapter06/mission/src/0_App/style/theme.js similarity index 100% rename from mission/chapter06/mission/src/0_App/theme.js rename to mission/chapter06/mission/src/0_App/style/theme.js From f6766cfae2a7a682760c97ba670487f8f631dfe7 Mon Sep 17 00:00:00 2001 From: RyuDongHo Date: Thu, 14 Nov 2024 01:05:43 +0900 Subject: [PATCH 13/15] =?UTF-8?q?mission:=20todoList=20refactor=20recoil?= =?UTF-8?q?=EC=9D=84=20=EC=A0=81=EC=9A=A9=ED=95=B4=EB=B4=A4=EC=8A=B5?= =?UTF-8?q?=EB=8B=88=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mission/chapter06/mission/src/0_App/index.jsx | 2 - .../mission/src/0_App/style/style.js | 2 + mission/chapter06/mission01/.gitignore | 24 + mission/chapter06/mission01/README.md | 8 + mission/chapter06/mission01/eslint.config.js | 39 + mission/chapter06/mission01/index.html | 13 + mission/chapter06/mission01/package-lock.json | 4510 +++++++++++++++++ mission/chapter06/mission01/package.json | 29 + mission/chapter06/mission01/public/vite.svg | 1 + mission/chapter06/mission01/src/App/index.jsx | 37 + .../mission01/src/App/model/useTodoList.js | 55 + .../src/App/recoil/useTodoListAtom.js | 17 + mission/chapter06/mission01/src/App/style.css | 16 + .../src/App/ui/todoListBtns/index.jsx | 35 + .../src/App/ui/todoListBtns/style.css | 4 + mission/chapter06/mission01/src/index.jsx | 11 + mission/chapter06/mission01/src/style.css | 10 + mission/chapter06/mission01/vite.config.js | 7 + 18 files changed, 4818 insertions(+), 2 deletions(-) create mode 100644 mission/chapter06/mission01/.gitignore create mode 100644 mission/chapter06/mission01/README.md create mode 100644 mission/chapter06/mission01/eslint.config.js create mode 100644 mission/chapter06/mission01/index.html create mode 100644 mission/chapter06/mission01/package-lock.json create mode 100644 mission/chapter06/mission01/package.json create mode 100644 mission/chapter06/mission01/public/vite.svg create mode 100644 mission/chapter06/mission01/src/App/index.jsx create mode 100644 mission/chapter06/mission01/src/App/model/useTodoList.js create mode 100644 mission/chapter06/mission01/src/App/recoil/useTodoListAtom.js create mode 100644 mission/chapter06/mission01/src/App/style.css create mode 100644 mission/chapter06/mission01/src/App/ui/todoListBtns/index.jsx create mode 100644 mission/chapter06/mission01/src/App/ui/todoListBtns/style.css create mode 100644 mission/chapter06/mission01/src/index.jsx create mode 100644 mission/chapter06/mission01/src/style.css create mode 100644 mission/chapter06/mission01/vite.config.js diff --git a/mission/chapter06/mission/src/0_App/index.jsx b/mission/chapter06/mission/src/0_App/index.jsx index b9a375e..7949849 100644 --- a/mission/chapter06/mission/src/0_App/index.jsx +++ b/mission/chapter06/mission/src/0_App/index.jsx @@ -11,10 +11,8 @@ function App() { - - ); diff --git a/mission/chapter06/mission/src/0_App/style/style.js b/mission/chapter06/mission/src/0_App/style/style.js index c99302b..7238b7a 100644 --- a/mission/chapter06/mission/src/0_App/style/style.js +++ b/mission/chapter06/mission/src/0_App/style/style.js @@ -3,6 +3,8 @@ import styled from "styled-components"; const STYLE = { AppContainer: styled.div` position: relative; + width: 100%; + height: 100%; `, }; diff --git a/mission/chapter06/mission01/.gitignore b/mission/chapter06/mission01/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/mission/chapter06/mission01/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/mission/chapter06/mission01/README.md b/mission/chapter06/mission01/README.md new file mode 100644 index 0000000..f768e33 --- /dev/null +++ b/mission/chapter06/mission01/README.md @@ -0,0 +1,8 @@ +# React + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh diff --git a/mission/chapter06/mission01/eslint.config.js b/mission/chapter06/mission01/eslint.config.js new file mode 100644 index 0000000..be0ee6d --- /dev/null +++ b/mission/chapter06/mission01/eslint.config.js @@ -0,0 +1,39 @@ +import js from '@eslint/js' +import globals from 'globals' +import react from 'eslint-plugin-react' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' + +export default [ + { ignores: ['dist'] }, + { + files: ['**/*.{js,jsx}'], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + parserOptions: { + ecmaVersion: 'latest', + ecmaFeatures: { jsx: true }, + sourceType: 'module', + }, + }, + settings: { react: { version: '18.3' } }, + plugins: { + react, + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...js.configs.recommended.rules, + ...react.configs.recommended.rules, + ...react.configs['jsx-runtime'].rules, + ...reactHooks.configs.recommended.rules, + 'react/jsx-no-target-blank': 'off', + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + "react/prop-types": "off" + }, + }, +] diff --git a/mission/chapter06/mission01/index.html b/mission/chapter06/mission01/index.html new file mode 100644 index 0000000..927abb0 --- /dev/null +++ b/mission/chapter06/mission01/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + React + + +
+ + + diff --git a/mission/chapter06/mission01/package-lock.json b/mission/chapter06/mission01/package-lock.json new file mode 100644 index 0000000..e771234 --- /dev/null +++ b/mission/chapter06/mission01/package-lock.json @@ -0,0 +1,4510 @@ +{ + "name": "mission01", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "mission01", + "version": "0.0.0", + "dependencies": { + "react": "^18.3.1", + "react-dom": "^18.3.1", + "recoil": "^0.7.7" + }, + "devDependencies": { + "@eslint/js": "^9.9.0", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.1", + "eslint": "^9.9.0", + "eslint-plugin-react": "^7.35.0", + "eslint-plugin-react-hooks": "^5.1.0-rc.0", + "eslint-plugin-react-refresh": "^0.4.9", + "globals": "^15.9.0", + "vite": "^5.4.1" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz", + "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.6.tgz", + "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.6", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.6.tgz", + "integrity": "sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz", + "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.6" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.7.tgz", + "integrity": "sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.7.tgz", + "integrity": "sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.6.tgz", + "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.6", + "@babel/parser": "^7.25.6", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", + "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", + "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", + "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.6.0.tgz", + "integrity": "sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.11.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.11.1.tgz", + "integrity": "sha512-/qu+TWz8WwPWc7/HcIJKi+c+MOm46GdVaSlTTQcaqaL53+GsoA6MxWp5PtTx48qbSP7ylM1Kn7nhvkugfJvRSA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz", + "integrity": "sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz", + "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.23.0.tgz", + "integrity": "sha512-8OR+Ok3SGEMsAZispLx8jruuXw0HVF16k+ub2eNXKHDmdxL4cf9NlNpAzhlOhNyXzKDEJuFeq0nZm+XlNb1IFw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.23.0.tgz", + "integrity": "sha512-rEFtX1nP8gqmLmPZsXRMoLVNB5JBwOzIAk/XAcEPuKrPa2nPJ+DuGGpfQUR0XjRm8KjHfTZLpWbKXkA5BoFL3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.23.0.tgz", + "integrity": "sha512-ZbqlMkJRMMPeapfaU4drYHns7Q5MIxjM/QeOO62qQZGPh9XWziap+NF9fsqPHT0KzEL6HaPspC7sOwpgyA3J9g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.23.0.tgz", + "integrity": "sha512-PfmgQp78xx5rBCgn2oYPQ1rQTtOaQCna0kRaBlc5w7RlA3TDGGo7m3XaptgitUZ54US9915i7KeVPHoy3/W8tA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.23.0.tgz", + "integrity": "sha512-WAeZfAAPus56eQgBioezXRRzArAjWJGjNo/M+BHZygUcs9EePIuGI1Wfc6U/Ki+tMW17FFGvhCfYnfcKPh18SA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.23.0.tgz", + "integrity": "sha512-v7PGcp1O5XKZxKX8phTXtmJDVpE20Ub1eF6w9iMmI3qrrPak6yR9/5eeq7ziLMrMTjppkkskXyxnmm00HdtXjA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.23.0.tgz", + "integrity": "sha512-nAbWsDZ9UkU6xQiXEyXBNHAKbzSAi95H3gTStJq9UGiS1v+YVXwRHcQOQEF/3CHuhX5BVhShKoeOf6Q/1M+Zhg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.23.0.tgz", + "integrity": "sha512-5QT/Di5FbGNPaVw8hHO1wETunwkPuZBIu6W+5GNArlKHD9fkMHy7vS8zGHJk38oObXfWdsuLMogD4sBySLJ54g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.23.0.tgz", + "integrity": "sha512-Sefl6vPyn5axzCsO13r1sHLcmPuiSOrKIImnq34CBurntcJ+lkQgAaTt/9JkgGmaZJ+OkaHmAJl4Bfd0DmdtOQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.23.0.tgz", + "integrity": "sha512-o4QI2KU/QbP7ZExMse6ULotdV3oJUYMrdx3rBZCgUF3ur3gJPfe8Fuasn6tia16c5kZBBw0aTmaUygad6VB/hQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.23.0.tgz", + "integrity": "sha512-+bxqx+V/D4FGrpXzPGKp/SEZIZ8cIW3K7wOtcJAoCrmXvzRtmdUhYNbgd+RztLzfDEfA2WtKj5F4tcbNPuqgeg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.23.0.tgz", + "integrity": "sha512-I/eXsdVoCKtSgK9OwyQKPAfricWKUMNCwJKtatRYMmDo5N859tbO3UsBw5kT3dU1n6ZcM1JDzPRSGhAUkxfLxw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.23.0.tgz", + "integrity": "sha512-4ZoDZy5ShLbbe1KPSafbFh1vbl0asTVfkABC7eWqIs01+66ncM82YJxV2VtV3YVJTqq2P8HMx3DCoRSWB/N3rw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.23.0.tgz", + "integrity": "sha512-+5Ky8dhft4STaOEbZu3/NU4QIyYssKO+r1cD3FzuusA0vO5gso15on7qGzKdNXnc1gOrsgCqZjRw1w+zL4y4hQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.23.0.tgz", + "integrity": "sha512-0SPJk4cPZQhq9qA1UhIRumSE3+JJIBBjtlGl5PNC///BoaByckNZd53rOYD0glpTkYFBQSt7AkMeLVPfx65+BQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.23.0.tgz", + "integrity": "sha512-lqCK5GQC8fNo0+JvTSxcG7YB1UKYp8yrNLhsArlvPWN+16ovSZgoehlVHg6X0sSWPUkpjRBR5TuR12ZugowZ4g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.13", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.10", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.10.tgz", + "integrity": "sha512-02sAAlBnP39JgXwkAq3PeU9DVaaGpZyF3MGcC0MKgQVkZor5IiiDAipVaxQHtDJAmO4GIy/rVBy/LzVj76Cyqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.2.tgz", + "integrity": "sha512-hieu+o05v4glEBucTcKMK3dlES0OeJlD9YVOAPraVMOInBCwzumaIFiUjr4bHK7NPgnAHgiskUoceKercrN8vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.2", + "@babel/plugin-transform-react-jsx-self": "^7.24.7", + "@babel/plugin-transform-react-jsx-source": "^7.24.7", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0" + } + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/browserslist": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001664", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001664.tgz", + "integrity": "sha512-AmE7k4dXiNKQipgn7a2xg558IRqPN3jMQY/rOsbxDhrd0tyChwbITBfiwtnqz8bi2M5mIWbxAYBvk7W7QBUS2g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.30", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.30.tgz", + "integrity": "sha512-sXI35EBN4lYxzc/pIGorlymYNzDBOqkSlVRe6MkgBsW/hW1tpC/HDJ2fjG7XnjakzfLEuvdmux0Mjs6jHq4UOA==", + "dev": true, + "license": "ISC" + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", + "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "9.11.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.11.1.tgz", + "integrity": "sha512-MobhYKIoAO1s1e4VUrgx1l1Sk2JBR/Gqjjgw8+mfgoLE2xwsHur4gdfTxyTgShrhvdVFTaJSgMiQBl1jv/AWxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.11.0", + "@eslint/config-array": "^0.18.0", + "@eslint/core": "^0.6.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.11.1", + "@eslint/plugin-kit": "^0.2.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.3.0", + "@nodelib/fs.walk": "^1.2.8", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.0.2", + "eslint-visitor-keys": "^4.0.0", + "espree": "^10.1.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.0.tgz", + "integrity": "sha512-IHBePmfWH5lKhJnJ7WB1V+v/GolbB0rjS8XYVCSQCZKaQCAUhMoVoOEn1Ef8Z8Wf0a7l8KTJvuZg5/e4qrZ6nA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.19", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.1.0-rc-fb9a90fa48-20240614", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0-rc-fb9a90fa48-20240614.tgz", + "integrity": "sha512-xsiRwaDNF5wWNC4ZHLut+x/YcAxksUd9Rizt7LaEn3bV8VyYRpXnRJQlLOfYaVy9esk4DFP4zPPnoNVjq5Gc0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.12.tgz", + "integrity": "sha512-9neVjoGv20FwYtCP6CB1dzR1vr57ZDNOXst21wd2xJ/cTlM2xLq0GWVlSNTdMn/4BtP6cHYBMCSp1wFBJ9jBsg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-scope": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.1.0.tgz", + "integrity": "sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz", + "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.2.0.tgz", + "integrity": "sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.12.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "15.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.9.0.tgz", + "integrity": "sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hamt_plus": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hamt_plus/-/hamt_plus-1.0.2.tgz", + "integrity": "sha512-t2JXKaehnMb9paaYA7J0BX8QQAY8lwfQ9Gjf4pg/mk4krt+cmwmU652HOoWonf+7+EQV97ARPMhhVgU1ra2GhA==", + "license": "MIT" + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true, + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "dev": true, + "license": "ISC" + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/recoil": { + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/recoil/-/recoil-0.7.7.tgz", + "integrity": "sha512-8Og5KPQW9LwC577Vc7Ug2P0vQshkv1y3zG3tSSkWMqkWSwHmE+by06L8JtnGocjW6gcCvfwB3YtrJG6/tWivNQ==", + "license": "MIT", + "dependencies": { + "hamt_plus": "1.0.2" + }, + "peerDependencies": { + "react": ">=16.13.1" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.23.0.tgz", + "integrity": "sha512-vXB4IT9/KLDrS2WRXmY22sVB2wTsTwkpxjB8Q3mnakTENcYw3FRmfdYDy/acNmls+lHmDazgrRjK/yQ6hQAtwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.23.0", + "@rollup/rollup-android-arm64": "4.23.0", + "@rollup/rollup-darwin-arm64": "4.23.0", + "@rollup/rollup-darwin-x64": "4.23.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.23.0", + "@rollup/rollup-linux-arm-musleabihf": "4.23.0", + "@rollup/rollup-linux-arm64-gnu": "4.23.0", + "@rollup/rollup-linux-arm64-musl": "4.23.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.23.0", + "@rollup/rollup-linux-riscv64-gnu": "4.23.0", + "@rollup/rollup-linux-s390x-gnu": "4.23.0", + "@rollup/rollup-linux-x64-gnu": "4.23.0", + "@rollup/rollup-linux-x64-musl": "4.23.0", + "@rollup/rollup-win32-arm64-msvc": "4.23.0", + "@rollup/rollup-win32-ia32-msvc": "4.23.0", + "@rollup/rollup-win32-x64-msvc": "4.23.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vite": { + "version": "5.4.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz", + "integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", + "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", + "dev": true, + "license": "MIT", + "dependencies": { + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/mission/chapter06/mission01/package.json b/mission/chapter06/mission01/package.json new file mode 100644 index 0000000..e5a58c6 --- /dev/null +++ b/mission/chapter06/mission01/package.json @@ -0,0 +1,29 @@ +{ + "name": "mission01", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "react": "^18.3.1", + "react-dom": "^18.3.1", + "recoil": "^0.7.7" + }, + "devDependencies": { + "@eslint/js": "^9.9.0", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.1", + "eslint": "^9.9.0", + "eslint-plugin-react": "^7.35.0", + "eslint-plugin-react-hooks": "^5.1.0-rc.0", + "eslint-plugin-react-refresh": "^0.4.9", + "globals": "^15.9.0", + "vite": "^5.4.1" + } +} diff --git a/mission/chapter06/mission01/public/vite.svg b/mission/chapter06/mission01/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/mission/chapter06/mission01/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/mission/chapter06/mission01/src/App/index.jsx b/mission/chapter06/mission01/src/App/index.jsx new file mode 100644 index 0000000..b41f9fd --- /dev/null +++ b/mission/chapter06/mission01/src/App/index.jsx @@ -0,0 +1,37 @@ +import React from "react"; +import "./style.css"; +import useTodoList from "./model/useTodoList.js"; +import TodoListBtns from "./ui/todoListBtns/index.jsx"; +function App() { + const todoContentMainInput = React.useRef(); + const [todoList, renderTodoList, handleTodoListBtn] = useTodoList(); + + return ( +
+ {/* 할 일 입력 영역 */} +
{ + renderTodoList(event, todoContentMainInput.current); + }} + > + + +
+ {/* 할 일 출력 영역 */} +
+ {todoList.map((elem, index) => { + return ( + + ); + })} +
+
+ ); +} + +export default App; diff --git a/mission/chapter06/mission01/src/App/model/useTodoList.js b/mission/chapter06/mission01/src/App/model/useTodoList.js new file mode 100644 index 0000000..e51035c --- /dev/null +++ b/mission/chapter06/mission01/src/App/model/useTodoList.js @@ -0,0 +1,55 @@ +import React from "react"; +import useTodoListAtom from "../recoil/useTodoListAtom"; + +const useTodoList = () => { + const [todoList, setTodoList] = useTodoListAtom(); + + // todo list 갱신 + const renderTodoList = (event, todoContent) => { + const inputValue = todoContent.value; + event.preventDefault(); + setTodoList([ + ...todoList, + { + idx: Math.floor(Math.random() * 100) + 2, + content: inputValue, + isModifing: false, + }, + ]); + todoContent.value = ""; + }; + // todo list 버튼 이벤트 관리 + const handleTodoListBtn = (event, idx, contentRef) => { + const tempList = [...todoList]; + const id = event.target.id; + switch (id) { + // 삭제 버튼 + case "deleteBtn": + setTodoList(todoList.filter((elem) => elem.idx !== idx)); + return; + // 수정 진행 버튼 + case "startModifyBtn": + tempList.forEach((elem) => { + if (elem.idx === idx) elem.isModifing = true; + }); + setTodoList(tempList); + return; + // 수정 완료 버튼 + case "endModifyBtn": + if (!contentRef) return null; + tempList.forEach((elem) => { + if (elem.idx === idx) { + elem.isModifing = false; + elem.content = contentRef.value; + } + }); + setTodoList(tempList); + return; + default: + return; + } + }; + return [todoList, renderTodoList, handleTodoListBtn]; +}; + +export default useTodoList; diff --git a/mission/chapter06/mission01/src/App/recoil/useTodoListAtom.js b/mission/chapter06/mission01/src/App/recoil/useTodoListAtom.js new file mode 100644 index 0000000..02d7a1d --- /dev/null +++ b/mission/chapter06/mission01/src/App/recoil/useTodoListAtom.js @@ -0,0 +1,17 @@ +import { atom } from "recoil"; +import { useRecoilValue } from "recoil"; +import { useSetRecoilState } from "recoil"; +// key는 절대 겹치지 않게 설정 +const todoListAtom = atom({ key: "TOTODOLIST_ATOM", default: [] }); + +const useTodoListAtom = () => { + const todoList = useRecoilValue(todoListAtom); + const setTodoList = useSetRecoilState(todoListAtom); + + const setTodoListEvent = (value) => { + setTodoList(value); + }; + + return [todoList, setTodoListEvent]; +}; +export default useTodoListAtom; diff --git a/mission/chapter06/mission01/src/App/style.css b/mission/chapter06/mission01/src/App/style.css new file mode 100644 index 0000000..50264f5 --- /dev/null +++ b/mission/chapter06/mission01/src/App/style.css @@ -0,0 +1,16 @@ +main{ + display: flex; + flex-direction: column; + align-items: center; + margin: 200px auto; + gap: 8px; +} +.inputArea{ + display: flex; + gap: 16px; +} +.outputArea{ + display: flex; + flex-direction: column; + gap: 8px; +} \ No newline at end of file diff --git a/mission/chapter06/mission01/src/App/ui/todoListBtns/index.jsx b/mission/chapter06/mission01/src/App/ui/todoListBtns/index.jsx new file mode 100644 index 0000000..b026949 --- /dev/null +++ b/mission/chapter06/mission01/src/App/ui/todoListBtns/index.jsx @@ -0,0 +1,35 @@ +import React from "react"; +import "./style.css"; +const TodoListBtns = (props) => { + const todoContentRef = React.useRef(); + const { elem, handleTodoListBtn } = props; + return ( +
{ + handleTodoListBtn(event, elem.idx, todoContentRef.current); + }} + > + {elem.idx}. + + + + +
+ ); +}; + +export default TodoListBtns; diff --git a/mission/chapter06/mission01/src/App/ui/todoListBtns/style.css b/mission/chapter06/mission01/src/App/ui/todoListBtns/style.css new file mode 100644 index 0000000..1b3e23b --- /dev/null +++ b/mission/chapter06/mission01/src/App/ui/todoListBtns/style.css @@ -0,0 +1,4 @@ +.todoList__content { + display: flex; + gap: 4px; +} diff --git a/mission/chapter06/mission01/src/index.jsx b/mission/chapter06/mission01/src/index.jsx new file mode 100644 index 0000000..0bb1b70 --- /dev/null +++ b/mission/chapter06/mission01/src/index.jsx @@ -0,0 +1,11 @@ +import { StrictMode } from 'react' +import { createRoot } from 'react-dom/client' +import { RecoilRoot } from 'recoil' +import App from './App' +import './style.css' + +createRoot(document.getElementById('root')).render( + + + , +) diff --git a/mission/chapter06/mission01/src/style.css b/mission/chapter06/mission01/src/style.css new file mode 100644 index 0000000..0698a8b --- /dev/null +++ b/mission/chapter06/mission01/src/style.css @@ -0,0 +1,10 @@ +p { + margin: 0; + padding: 0; +} +input{ + cursor: pointer; + outline: none; + border: none; + border-bottom: 1px black solid; +} \ No newline at end of file diff --git a/mission/chapter06/mission01/vite.config.js b/mission/chapter06/mission01/vite.config.js new file mode 100644 index 0000000..5a33944 --- /dev/null +++ b/mission/chapter06/mission01/vite.config.js @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}) From 8f9fa93ec4e6fd32a720dd6fc636719ff1377c73 Mon Sep 17 00:00:00 2001 From: RyuDongHo Date: Thu, 14 Nov 2024 01:22:03 +0900 Subject: [PATCH 14/15] =?UTF-8?q?fix:=20todoList=20bug=20fix=20todoList?= =?UTF-8?q?=EC=97=90=EC=84=9C=20state=EB=A5=BC=20=EC=96=95=EC=9D=80?= =?UTF-8?q?=EB=B3=B5=EC=82=AC=ED=95=98=EC=97=AC=20=EC=9E=98=EB=AA=BB=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=ED=95=98=EB=8D=98=20=EB=B6=80=EB=B6=84=20?= =?UTF-8?q?=EC=9D=B4=EC=9E=88=EC=96=B4=20=EC=88=98=EC=A0=95=ED=96=88?= =?UTF-8?q?=EC=8A=B5=EB=8B=88=EB=8B=A4.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mission/chapter06/mission01/src/App/model/useTodoList.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mission/chapter06/mission01/src/App/model/useTodoList.js b/mission/chapter06/mission01/src/App/model/useTodoList.js index e51035c..d1f5111 100644 --- a/mission/chapter06/mission01/src/App/model/useTodoList.js +++ b/mission/chapter06/mission01/src/App/model/useTodoList.js @@ -20,7 +20,7 @@ const useTodoList = () => { }; // todo list 버튼 이벤트 관리 const handleTodoListBtn = (event, idx, contentRef) => { - const tempList = [...todoList]; + let tempList = JSON.parse(JSON.stringify(todoList)); const id = event.target.id; switch (id) { // 삭제 버튼 From 40b7e78424e4b050ff3f4adb0268fab8ff3164da Mon Sep 17 00:00:00 2001 From: RyuDongHo Date: Thu, 14 Nov 2024 01:30:10 +0900 Subject: [PATCH 15/15] =?UTF-8?q?keyword:=205~6=EC=A3=BC=EC=B0=A8=20?= =?UTF-8?q?=ED=82=A4=EC=9B=8C=EB=93=9C=20=EC=B6=94=EA=B0=80=2005=2006=20ch?= =?UTF-8?q?apter=20=ED=82=A4=EC=9B=8C=EB=93=9C=20=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?=ED=96=88=EC=8A=B5=EB=8B=88=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keyword/chapter05/keyword.md | 615 +++++++++++++++++++++++++++++++++++ keyword/chapter06/keyword.md | 337 +++++++++++++++++++ 2 files changed, 952 insertions(+) create mode 100644 keyword/chapter05/keyword.md create mode 100644 keyword/chapter06/keyword.md diff --git a/keyword/chapter05/keyword.md b/keyword/chapter05/keyword.md new file mode 100644 index 0000000..8a0e0e3 --- /dev/null +++ b/keyword/chapter05/keyword.md @@ -0,0 +1,615 @@ +# 📝 학습 목표 + +--- + +1. **`유효성 검사`**에 대해 학습합니다. +2. **`input 태그`**의 여러가지 속성에 대해 학습합니다. +3. **`Custom Hook`**을 만들었을 떄의 장점에 대해 알아봅니다. +4. **`Custom Hook`**을 활용하여, 효율적으로, 유효성 검사를 하며, 폼 데이터를 관리하는 방법에 대해 알아봅니다. + +# ⚠️  스터디 진행 방법 + +--- + +1. 스터디를 진행하기 전, 워크북 내용들을 모두 채우고 스터디에서 서로 모르는 내용들을 스터디원과 함께 공유해 주세요. +2. 실습과 미션은 워크북 내용들을 모두 완료한 후, 스터디 전에 진행해 오세요! + - 1주 차 스터디 이전에 1주 차 워크북을 완성한 후 스터디를 진행해 주세요. +3. 스터디 시간에는 각자 해 온 미션들을 공유하고, 아래의 과정을 진행합니다. + 1. 스터디원과 함께 코드 리뷰 진행. + 2. 코드 리뷰 이후, 본인의 코드의 문제가 있는 경우 리팩토링 진행. + 3. 팀원들과, 조금 더 코드를 깔끔하게 작성할 수 있는 개선점이 있을지 고민 후, 리팩토링 진행. + 4. 각자 미션을 진행하면서 해결하지 못한 이슈를 공유 후, 해당 이슈를 도움받아 해결. +4. 매주 주어진 미션을 성실하게 제출합니다. +5. 🍠 이모지가 붙어있는 곳은, 직접 여러분들이 채워 넣으셔야 하는 부분입니다. 꼭 Google을 통한 검색을 하시고, VSCode를 활용하여, 실행 결과를 눈으로 보시면서 정리해 주세요! + +# 📸 잠깐 ! 스터디 인증샷은 찍으셨나요?📸 + +--- + +* 스터디리더께서 대표로 매 주차마다 한 장 남겨주시면 좋겠습니다!🙆💗 + (사진을 저장해서 이미지 임베드를 하셔도 좋고, 복사+붙여넣기해서 넣어주셔도 좋습니다!) + +[]() + +# 🎯 핵심 키워드 + +--- + + + +### 키워드 정리 🍠 + +- useRef 🍠 + + 렌더링이 되어도, 유지하고 싶은 값이 있을 때 사용합니다. + + useRef로 값을 저장합니다. + +- input의 주요 프로퍼티 🍠 + - 아래 내용 이외에, 자주 사용하는 프로퍼티가 있으면 추가로 더 정리해주세요! 🍠 + + email 타입을 쓰면, 간단하게 이메일 형식을 입력하도록 하는 입력 창을 만들 수 있습니다. + + + ### 1. `type` + + - **설명**: 입력 필드의 종류를 설정합니다. + - **값 예시**: `"text"`, `"password"`, `"email"`, `"number"`, `"checkbox"`, `"radio"` 등 + - **예시**: `` + + ### 2. `value` + + - **설명**: 입력 필드의 값을 설정하고 제어할 때 사용됩니다. **Controlled Component**에서 자주 사용됩니다. + - **값 예시**: 문자열 또는 숫자 + - **예시**: `` + + ### 3. `defaultValue` + + - **설명**: 초기값을 설정하는 데 사용됩니다. + - **값 예시**: 문자열 또는 숫자 + - **예시**: `` + + ### 4. `onChange` + + - **설명**: 사용자가 입력 필드에 값을 입력하거나 변경할 때 호출되는 이벤트 핸들러입니다. + - **값 예시**: 함수 + - **예시**: ` setValue(e.target.value)} />` + + ### 5. `placeholder` + + - **설명**: 입력 필드가 비어 있을 때 표시되는 힌트 텍스트입니다. + - **값 예시**: 문자열 + - **예시**: `` + + ### 6. `checked` + + - **설명**: 체크박스나 라디오 버튼이 선택되었는지 여부를 제어합니다. + - **값 예시**: `true` 또는 `false` + - **예시**: `` + + ### 7. `defaultChecked` + + - **설명**: 체크박스나 라디오 버튼의 초기 상태를 설정합니다. + - **값 예시**: `true` 또는 `false` + - **예시**: `` + + ### 8. `disabled` + + - **설명**: 입력 필드를 비활성화하여 사용자 입력을 막습니다. + - **값 예시**: `true` 또는 `false` + - **예시**: `` + + ### 9. `readOnly` + + - **설명**: 입력 필드의 값을 읽기 전용으로 설정합니다. 사용자는 값을 변경할 수 없습니다. + - **값 예시**: `true` 또는 `false` + - **예시**: `` + + ### 10. `name` + + - **설명**: 폼 데이터를 제출할 때 서버로 전송되는 데이터의 이름을 지정합니다. + - **값 예시**: 문자열 + - **예시**: `` + + ### 11. `maxLength` + + - **설명**: 입력할 수 있는 최대 글자 수를 지정합니다. + - **값 예시**: 숫자 + - **예시**: `` + + ### 12. `min` / `max` + + - **설명**: 숫자 또는 날짜 입력에서 사용할 수 있는 최소/최대 값을 지정합니다. + - **값 예시**: 숫자 또는 날짜 + - **예시**: `` + + ### 13. `autoFocus` + + - **설명**: 페이지가 로드될 때 자동으로 입력 필드에 포커스를 줍니다. + - **값 예시**: `true` 또는 `false` + - **예시**: `` + + ### 14. `required` + + - **설명**: 입력 필드를 필수 입력으로 설정합니다. 폼을 제출할 때 이 필드가 비어 있으면 제출이 거부됩니다. + - **값 예시**: `true` 또는 `false` + - **예시**: `` + +### **`Controlled Input`** vs **`UnControlled Input`** + +- Controlled Input + + ### Controlled Input + + **`Controlled Input`**은 React의 상태(state)에 의해 폼의 값을 관리하는 방식입니다. Input의 value가 컴포넌트의 상태에 연결되어 있고, 상태값이 달라질 떄 마다, 입력 필드의 값도 갱신됩니다. + + 쉽게 말해서, Input의 값은, **`React Component가 제어`**하고, 모든 입력 변화 또한, **`컴포넌트의 상태로 반영`**되어집니다. + + 특징 + + - Input의 value는, React의 **`state`**로 관리됩니다. + - 상태 값이, **`Input의 value 속성에 직접적으로 연결`** 됨. + - **`Input`**의 **`Value`**가 **`변경`**되면, **`상태가 업데이트`**되고, **`상태가 다시 렌더링을 Trigger`** 함. + - **`React`**가 **`Form 요소의 현재 값을 항상 알고 있기에 제어가 용이`**. + + ```tsx + import { useState } from 'react'; + + function ControlledInput() { + const [inputValue, setInputValue] = useState(''); + + const handleChange = (event) => { + setInputValue(event.target.value); + }; + + return ( +
+ +

입력: {inputValue}

+
+ ); + } + + export default ControlledInput; + + ``` + + ### 장점: + + - 상태를 통해 값이 직접적으로 제어되기 때문에 **`폼 데이터를 검증`**하거나 **`조작`**하기가 쉽습니다. + - **`사용자 입력을 실시간으로 검증`**하거나 **`포맷을 조정`**할 수 있습니다. + + ### 단점: + + - **`컴포넌트에서 상태 관리가 복잡`**해질 수 있으며, 특히 폼 데이터에 너무 많은 value들을 관리하는 경우 **`성능에 부담`**이 될 수 있습니다. + +- UnControlled Input + + ### UnControlled Input + + **`Uncontrolled Input`**은 React의 state가 아닌 DOM 자체에서 입력 값을 관리하는 방식입니다. 폼의 값은 **`React 컴포넌트가 직접 관리하지 않고`**, 필요할 때 DOM에서 직접 값을 참조하는 방법입니다. 이를 위해 `ref`를 사용하여 **`DOM 요소에 직접 접근`**할 수 있습니다. + + ### 특징 + + - 입력값이 `state`에 의존하지 않고, React의 제어 밖에서 관리됩니다. + - 폼 요소의 값은 사용자가 입력하는 대로 DOM에 저장되며, 필요할 때만 값을 읽어 옵니다. + - React의 상태를 사용하지 않기 때문에 폼을 간단하게 유지할 수 있습니다. + + ```tsx + import { useRef } from 'react'; + + function UncontrolledInput() { + const inputRef = useRef(null); + + const handleSubmit = () => { + console.log(`입력: ${inputRef.current.value}`); + }; + + return ( +
+ + +
+ ); + } + + export default UncontrolledInput; + + ``` + + ### 장점 + + - 상태 관리가 필요 없으므로 간단한 폼에 적합하며, **`성능적으로도 유리`**할 수 있습니다. + - 작은 폼이나 **`상태가 필요 없는 경우 사용하기 쉽습니다.`** + + ### 단점 + + - 입력 값을 **`실시간으로 검증하거나 조작하기 어려우며`**, 폼 데이터와 관련된 논리를 관리하는 데 제약이 있을 수 있습니다. + - **`DOM에 직접 접근`**하기 때문에 **`React의 단방향 데이터 흐름을 벗어나는 경우`**가 생길 수 있습니다. + + +### react-hook-form & yup 🍠 + +**`react-hook-form`**과 **`yup`**은 React에서 폼을 간편하게 관리하고, 유효성 검사를 수행하는 데 유용한 라이브러리 입니다. 두 개의 라이브러리를 함께 사용하면, 폼 입력 관리와 검증 과정을 매우 효율적으로 처리할 수 있습니다. + +현재, 여기서는 **`yup`**을 통한, **`validation`**을 설명하지만, 혹시라도, 본인이 작업하시는 프로젝트가 **`TypeScript`**시라면, **`zod`**를 사용하는 것이 조금 더 유리할 수도 있으니, **`zod`**를 더욱 추천드립니다! + +https://tech.inflab.com/202207-rallit-form-refactoring/react-hook-form/ + +- **`react-hook-form`** 공식문서 설명 + + ### react-hook-form + + https://react-hook-form.com/get-started + + 주요 특징 + + 1. DX (개발자 경험) + + 직관적이고, 기능이 완벽한 API로, 개발자가 폼을 구축할 떄 매끄러운 경험을 제공합니다. + + 2. HTML 표준 + + 기존의 HTML 마크업을 활용하여 제약 기반 검증 API로 폼을 검증합니다. + + 3. 가벼움 + + 패키지 크기는 매우 중요합니다. React Hook Form은 의존성이 없는 작은 라이브러리이다. + + 4. 성능 + + 리렌더링 횟수를 최소화하고, 검증 계산을 줄이며, 더 빠른 마운팅을 제공. + + 5. 채택 가능성 + + 폼 상태는 본질적으로 로컬에 있기 떄문에 다른 의존성 없이도 쉽게 채택 가능하다. + + 6. UX (사용자 경험) + + 최상의 사용자 경험을 제공하기 위해 일관된 검증 전략을 지향. + +- **`yup`** 공식문서 설명 + + ### yup + + https://github.com/jquense/yup + + **`Yup`**은 런타임 값 파싱 및 검증을 위한 스키마 빌더입니다. 스키마를 정의하고, 값을 변환하여 일치시키거나, 기존 값의 형태를 검증하거나, 두 작업을 모두 수행할 수 있습니다. **`Yup 스키마`**는 매우 표현력이 뛰어나며 복잡하고 상호 의존적인 검증이나 값 변환을 모델링할 수 있습니다. + + 주요 기능: + + 1. 간결하면서도 표현력이 뛰어난 스키마 인터페이스로, 간단한 데이터 모델부터 복잡한 데이터 모델까지 설계 가능 + 2. 강력한 TypeScript 지원: 스키마에서 정적 타입을 추론하거나, 스키마가 올바르게 타입을 구현하는지 확인 + 3. 내장된 비동기 검증 지원: 서버 측 및 클라이언트 측 검증을 동일하게 모델링 가능 + 4. 확장성: 타입 안정성이 보장된 메서드와 스키마를 추가할 수 있음 + 5. 풍부한 오류 세부 정보 제공으로 디버깅이 쉬움 +- **react-hook-form & yup validation 실습 🍠** + + ### 실습 + + 아래와 같이 **`라이브러리를 설치`**해줍니다. + + ```tsx + yarn add react-hook-form yup + ``` + + 그 이후 **`useForm`** hook을 불러옵니다. + + ```tsx + import {useForm} from 'react-hook-form' + + const SignUpPage = () => { + const {register, handleSubmit} = useForm(); + + const onSubmit = () => { + console.log('폼 데이터 제출') + } + + return ( +
+ + + +
+ ); + }; + + export default SignUpPage; + + ``` + + 1. **`register`**를 통해서, 각 **`input`**에 연결해줍니다. 이 떄 **`spread operator`**를 통해서, 원하는 **`name`**과 함께 연결을 해주면 된다고 이해하시면 됩니다. + 2. form 태그 안에는 자체적으로 **`onSubmit`** 내부에 함수를 연결해줄 수 있습니다. 이 떄, **`useForm`** Hook에서 제공해주는 **`handleSubmit`**을 연결해주고, 자체적으로 **`onSubmit`** 함수를 통해서, data를 전달 받아, **`data 호출`**하면 됩니다. + + ```tsx + import {useForm} from 'react-hook-form' + + const SignUpPage = () => { + const {register, handleSubmit} = useForm(); + + const onSubmit = (data) => { + console.log('폼 데이터 제출') + console.log(data); + } + + return ( +
+ + + +
+ ); + }; + + export default SignUpPage; + + ``` + + 제가 만약 **`formData`**의 **`register`**에 아래와 같이 **`email`**, **`password`** 라는 이름으로, 연결했으니 아래와 같이 데이터가 출력됩니다. + + ![스크린샷 2024-09-17 오후 4.12.51.png](https://prod-files-secure.s3.us-west-2.amazonaws.com/f1912130-0409-4e90-a90f-6091ae253e73/e2a62981-5cb1-4703-aed2-d758f6bde89d/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-09-17_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_4.12.51.png) + + 우리가 위에서, 설명하기에는 **`yup`**을 활용해서, 유효성 검사를 진행한다고 했습니다. 이를 하기 위해서는 우리가 만든, **`schema`**를 **`resolve`** 하는 과정이 필요한데, 이를 위해 아래 라이브러리가 하나 더 필요합니다. + + ```tsx + yarn add @hookform/resolvers + ``` + + 먼저, 이메일과 비밀번호 관련해서 **`schema`**를 생성해보겠습니다. 여기서 말하는 **`schema`**는 쉽게 생각해서 **`유효성 검사`**라고 생각하시면 됩니다. + + 우리의 **`회원가입 유효성 검사 조건`**은 아래와 같다는 가정하에 진행해보겠습니다. + + ### 이메일 유효성 검사 조건 + + - [x] 문자열이어야 한다. + - [x] 필수로 입력되어야 한다. + + ### 비밀번호 유효성 검사 조건 + + - [x] 문자열이어야 한다. + - [x] 최소 8글자이어야 한다. + - [x] 최대 16자이어야 한다. + - [x] 필수로 입력되어야 한다. + + **`yup`**의 **`object`**를 통해, **`schema`**의 **`shape을 정의`**할 수 있습니다. + + ```tsx + import {useForm} from 'react-hook-form' + import * as yup from 'yup' + // TIP: zod를 사용하신다면 @hookform/resolvers/zod 를 import 하시면 됩니다! + import {yupResolver} from '@hookform/resolvers/yup' + + const SignUpPage = () => { + const schema = yup.object().shape({ + email: yup.string().email().required(), + password: yup.string().min(8).max(16).required(), + }) + + const {register, handleSubmit} = useForm(); + + const onSubmit = (data) => { + console.log('폼 데이터 제출') + console.log(data); + } + + return ( +
+ + + +
+ ); + }; + + export default SignUpPage; + + ``` + + 실제로, 이렇게 하면 적용이 되지 않습니다. 추가적인 처리를 해주어야 합니다. 우리가, 위에서 패키지로 설치한 **`yupResolver`**를 통해, 우리가 만든 **`schema`**를 연결시켜주면 됩니다. + + ```tsx + const {register, handleSubmit} = useForm({ + resolver: yupResolver(schema) + }); + ``` + + 그럼 이제 유효성 검사가 매우 잘되는 것을 확인할 수 있습니다. + + 에러 메시지를 확인하고 싶으시면, **`useForm`** hook에서 **`formState`**를 추가로 불러와야 합니다. + + ```tsx + const {register, handleSubmit, formState: {errors}} = useForm({ + resolver: yupResolver(schema) + }); + ``` + + 아래와 같이 전체 코드를 구성하면 에러메시지를 볼 수 있습니다. + + ```tsx + import {useForm} from 'react-hook-form' + import * as yup from 'yup' + import {yupResolver} from '@hookform/resolvers/yup' + + const SignUpPage = () => { + const schema = yup.object().shape({ + email: yup.string().email().required(), + password: yup.string().min(8).max(16).required(), + }) + + const {register, handleSubmit, formState: {errors}} = useForm({ + resolver: yupResolver(schema) + }); + + const onSubmit = (data) => { + console.log('폼 데이터 제출') + console.log(data); + } + + return ( +
+ + // register 한 이름에 맞게 연결해주세요! +

{errors.email?.message}

+ +

{errors.password?.message}

+ +
+ ); + }; + + export default SignUpPage; + + ``` + + ![스크린샷 2024-09-17 오후 5.07.41.png](https://prod-files-secure.s3.us-west-2.amazonaws.com/f1912130-0409-4e90-a90f-6091ae253e73/6b74818d-e5d1-4b3f-b151-04c085b46578/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-09-17_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_5.07.41.png) + + 위와 같이 에러메시지가, 나옵니다. 하지만, 우리는 한국인이기에, 영어로 된 에러메시지를 원하는 사람은 많지 않을 것 입니다. + + **`커스텀 에러 메시지 또한 선언`**해줄 수 있습니다. + + ```tsx + const schema = yup.object().shape({ + email: yup.string().email().required('이메일을 반드시 입력해주세요.'), + password: yup.string().min(8, '비밀번호는 8자 이상이어야 합니다.').max(16, '비밀번호는 16자 이하여야 합니다.').required(), + }) + ``` + + ![스크린샷 2024-09-17 오후 5.09.24.png](https://prod-files-secure.s3.us-west-2.amazonaws.com/f1912130-0409-4e90-a90f-6091ae253e73/7b8d8f7d-4579-4511-928d-495857e9990e/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-09-17_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_5.09.24.png) + + 특정 조건에 맞지 않는경우에 우리가 **`지정한 커스텀 에러`**를 넘겨줄 수 있습니다. + + +# ✅ 실습 1. - 로그인 페이지 유효성 검사 구현 🍠 + + + +![스크린샷 2024-09-16 오후 9.28.39.png](https://prod-files-secure.s3.us-west-2.amazonaws.com/f1912130-0409-4e90-a90f-6091ae253e73/f848035a-91b4-4f6a-8738-78d927da4e4f/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-09-16_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_9.28.39.png) + +### UI + +- [x] 이메일과, 비밀번호 **`type`**의 **`input`**을 2개 만들어주세요. +- [x] 모든 값을 입력한 후, 로그인 할 수 있는 **`로그인 버튼`**을 만들어주세요. + +[화면 기록 2024-09-17 오후 3.31.03.mov](https://prod-files-secure.s3.us-west-2.amazonaws.com/f1912130-0409-4e90-a90f-6091ae253e73/b4fd6547-f18d-4d29-bf8d-d77cbeb5ef1b/%E1%84%92%E1%85%AA%E1%84%86%E1%85%A7%E1%86%AB_%E1%84%80%E1%85%B5%E1%84%85%E1%85%A9%E1%86%A8_2024-09-17_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_3.31.03.mov) + +### 기능 체크 + +- [x] 이메일은 **`올바른 이메일 형식이 아닐 경우`**, 위와 같이 에러 메시지와, UI상 변화가 나타나도록, 구현해주세요. +- [x] 비밀번호도, **`8자리 이상 16자리 이하가 아닌 경우`**, 에러메시지가 나오게 구현해주세요. +- [x] 에러 메시지는, **`실시간으로 조건이 충족하면, 사라져야 합니다.`** +- [x] 실제로, **`input 창을 클릭했을 경우`**, **`에러메시지가 나오게 동작`**해주세요. input 창을 누르지도 않았는데, 바로 에러메시지가 나오면, UX 측면에서 기분 좋지 않겠죠? + +### 이것도 해보면 좋아요 + +- [x] **`모든 조건을 충족하지 않았을 떄는, 로그인 버튼을 gray 색상으로 비활성화 되게 해주세요.`** (disabled props 활용) + - [x] 실제로, 버튼 동작도 비활성화 되어야 합니다. + - [x] 단 조건 충족시, 원래 색상(핑크)로 색상이 변경되게 합니다. + +### 실습 1 제출 + +- 실습 1 깃허브 링크 제출 + + https://github.com/RyuDongHo/UmcWeb/tree/main/mission/chapter05/mission + +- 실습 1 실행 영상 제출 + + [1.mp4](https://prod-files-secure.s3.us-west-2.amazonaws.com/f1912130-0409-4e90-a90f-6091ae253e73/0cd283dd-ccc8-496b-8919-5000b6813d9d/1.mp4) + + +# ✅ 실습 2. useForm Hook을 통한 유효성 검사 🍠 + + + +https://www.youtube.com/watch?v=gWSAYvBH16I + +### 구현 유의사항 + +- [x] **`useForm`** hook을 사용했는가? + +### 실습 2 제출 + +- 실습 2 깃허브 링크 제출 + + https://github.com/RyuDongHo/UmcWeb/tree/main/mission/chapter05/mission + +- 실습 2 실행 영상 제출 + + + +# 🔥 미션 - 회원 가입 페이지 제작 🍠 + + + +![스크린샷 2024-09-17 오후 5.24.27.png](https://prod-files-secure.s3.us-west-2.amazonaws.com/f1912130-0409-4e90-a90f-6091ae253e73/067e2dad-e8d9-4200-bdce-208932d73547/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-09-17_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_5.24.27.png) + +### 유효성 검사 조건 + +- [x] **`Email`** input을 만들어줍니다. + - [x] 문자열이어야 합니다. + - [x] 유효한 이메일 형식이어야 합니다. + - [x] 이메일은 필수 입력요소입니다. +- [x] **`Password`** input을 만들어줍니다. + - [x] 문자열이어야 합니다. + - [x] 비밀번호는 8자 이상이어야 합니다. + - [x] 비밀번호는 16자 이하여야 합니다. + - [x] 비밀번호는 필수 입력요소입니다. +- [x] **`PasswordCheck`** input을 만들어줍니다. + - [x] **`Password input에 들어간 요소`**와, **`PasswordCheck input 요소`**에 들어간 요소의 **`value가 다를때`** **`비밀번호가 일치하지 않습니다. 라는 에러가 발생`**합니다. + - [x] 비밀번호 검증은 필수 입력 요소입니다. + +### 구현 유의 사항 + +- [x] **`Input`** 컴포넌트를 만들어 잘 활용했는가? +- [x] **`react-hook-form`** 과 **`yup`**의 라이브러리를 잘 활용했는가? +- [x] 모든 input의 value가, 원하는 **`{ key: value }`** 형태로 잘 출력되었는가? + +### 이것도 해보면 좋아요 (필수 X) + +- [x] 실습 2에서 함께 만든 **`useForm hook을 활용`**해서, 위의 내용을 동일하게 만들어보세요! + - **`useForm`** Hook으로 만든, 깃허브 링크 제출 + - **`useForm`** Hook으로 만든, 실행 영상 제출 +- [ ] 성별이나, 생년월일 등 **`실제로 있을 법한 Form 요소들을 만들어, 추가적으로 더 만들어보시고 스터디원들과 공유`**해보세요! +- [ ] **`zod`** 라이브러리도 한번 사용해보세요! + +### 미션 제출 + +- 실습 2 깃허브 링크 제출 + + https://github.com/RyuDongHo/UmcWeb/tree/main/mission/chapter05/mission + +- 실습 2 실행 영상 제출 + + [2.mp4](https://prod-files-secure.s3.us-west-2.amazonaws.com/f1912130-0409-4e90-a90f-6091ae253e73/7d5c159a-73b5-4d0d-a3d9-d6303b926ae0/2.mp4) \ No newline at end of file diff --git a/keyword/chapter06/keyword.md b/keyword/chapter06/keyword.md new file mode 100644 index 0000000..816b393 --- /dev/null +++ b/keyword/chapter06/keyword.md @@ -0,0 +1,337 @@ +# 📝 학습 목표 + +--- + +1. **`QueryParameter`**를 활용하여, 검색 기능을 구현해봅니다. +2. **`Debounce`**와 **`Throttling`**이 무엇인지 알아보고, 이를 실제 프로젝트에 적용해봅니다. +3. **`useContext`**를 활용하여, 전역 상태 관리를 하는 이유와, 기존 코드 리팩토링을 진행해봅니다. +4. **`AccessToken`**과 **`RefreshToken`**을 활용한 로그인 방식에 대해 학습합니다. + +# ⚠️  스터디 진행 방법 + +--- + +1. 스터디를 진행하기 전, 워크북 내용들을 모두 채우고 스터디에서 서로 모르는 내용들을 스터디원과 함께 공유해 주세요. +2. 실습과 미션은 워크북 내용들을 모두 완료한 후, 스터디 전에 진행해 오세요! + - 1주 차 스터디 이전에 1주 차 워크북을 완성한 후 스터디를 진행해 주세요. +3. 스터디 시간에는 각자 해 온 미션들을 공유하고, 아래의 과정을 진행합니다. + 1. 스터디원과 함께 코드 리뷰 진행. + 2. 코드 리뷰 이후, 본인의 코드의 문제가 있는 경우 리팩토링 진행. + 3. 팀원들과, 조금 더 코드를 깔끔하게 작성할 수 있는 개선점이 있을지 고민 후, 리팩토링 진행. + 4. 각자 미션을 진행하면서 해결하지 못한 이슈를 공유 후, 해당 이슈를 도움받아 해결. +4. 매주 주어진 미션을 성실하게 제출합니다. +5. 🍠 이모지가 붙어있는 곳은, 직접 여러분들이 채워 넣으셔야 하는 부분입니다. 꼭 Google을 통한 검색을 하시고, VSCode를 활용하여, 실행 결과를 눈으로 보시면서 정리해 주세요! + +# 📸 잠깐 ! 스터디 인증샷은 찍으셨나요?📸 + +--- + +* 스터디리더께서 대표로 매 주차마다 한 장 남겨주시면 좋겠습니다!🙆💗 + (사진을 저장해서 이미지 임베드를 하셔도 좋고, 복사+붙여넣기해서 넣어주셔도 좋습니다!) + +[]() + +# 🎯 핵심 키워드 + +--- + + + +### 키워드 정리 🍠 + +- Debounce & Throttling 🍠 + - Debounce는 무엇일까요? + + 이벤트가 발생할 때, 인식하는 최소 시간을 지정하는 최적화 방식입니다. + + 예를 들어 이벤트를 인식하게할 최소 시간을 10초로 지정하고 + + 1초 간격으로 같은 이벤트를 계속 발생시키면, 실제로 인식되지 않고 + + 10초 간격 이상으로 실행되는 이벤트만을 인식합니다. + + - Debounce는 주로 어디에 사용하나요? + + 이벤트가 여러번 발생해도, 한 번만 실행되는 것이 정상적인 로직에 사용하면 됩니다. + + 예를 들어 사용자가 로그아웃 버튼을 누를 때, 정말 빠른 속도로 100번 버튼을 클릭하더라도, 실제로 로그아웃 함수를 100번 호출하는 게 아니라, 한 번만 실행하면 되는 것이 정상적인 로직인 경우에 사용합니다. + + - Throttling은 무엇일까요? + + 이벤트 발생 사이의 딜레이타임을 지정하는 것입니다. + + 스크롤 이벤트를 구현할 때, 스크롤을 0.1s안에 매우 길게 많이 해버렸을때, + + 사용자 입력에 맞춰 이벤트를 발생시켜버리면, 문제가 생길 수 있습니다. + + 이때, 그 이벤트들을 적당한 간격으로 실행시키는 겁니다. + + - Throttling은 주로 어디에 사용하나요? + + 위에서 말한 것 처럼, 적당한 간격으로 실행시켜주고 싶은 로직에 사용하면 됩니다. + + - Debounce와 Throttling의 차이점은 무엇일까요? + + 디바운스는 결국 마지막 하나의 이벤트를 실행하는 것이고, 쓰로틀은 여러번 발생하면 간격을 둘 뿐 전부 이벤트가 작동합니다. + + - 어떤 기능을 구현할 때 Debounce를 적용하고, Throttling을 적용하는 것이 좋을까요? + + 위의 내용과 같습니다. + +- 쿠키 🍠 + - 쿠키란 무엇이고, 어떤 특징을 가지고 있을까요? + + 쿠키는 로컬스토리지와 마찬가지로 클라이언트쪽에 데이터를 저장시키는 방식입니다. + + 대신 쿠키는 http통신에 사용되고, session을 만들때도 자동으로 하나 생성되고, 더 작은 크기 제한, 유효시간 설정 등등 여러가지 기능이 있습니다. httpOnly flag를 통해 브라우저에서의 접근을 막아 보안을 높일 수도 있습니다. + + - 쿠키를 어떻게 사용할 수 있을까요? + + 패키지를 사용해도 되고, document.cookie 처럼 사용해도 됩니다. + +- 토큰 🍠 + - 토큰이 왜 필요할까요? + + 인증 방식의 일환입니다, 사용자 정보 같은 중요한 데이터를 그대로 저장하고 전송하면 위험이 크기 때문에 사용합니다. + + - CORS 에러가 무엇이고, 이 에러를 어떻게 해결할 수 있을까요? + + 출처가 다른 소스를 교차하여 사용하지 못하게 하는 정책을 어기면 발생합니다. + + proxy설정을 건든다거나 하는 방식으로 해결이 되지만, 일단 + + CORS에러가 발생한 정확한 원인 고민해봐야합니다. + + - JWT 토큰 기반 인증 방법이란 무엇일까요? + + json 형식으로 데이터를 암호화하여 사용하는 방식입니다. + + - JWT 기반 로그인 동작 과정에 대해 알아보세요. + + 암호화된 데이터를 통신에 사용하면 서버에서, 검증하고 데이터를 전달해줍니다. + + - AccessToken / RefreshToken의 차이에 대해 설명해주세요. + + accessToken의 주기를 짧게 Refresh는 길게 가져가서, access토큰은 탈취의 리스크를 줄인 뒤에 access토큰을 데이터 통신에 주로 사용하고 refresh는 가려둡니다. + +- 웹 스토리지 🍠 + - 웹 스토리지의 메소드와 프로퍼티는 어떤게 있을까요? + + get set key removeItem 같은 메소드가 있고 + + length 프로퍼티 있습니다. + + - 세션 스토리지에 대해 정리해 주세요! + + 탭을 기준으로 저장하고 사용하는 데이터가 들어갑니다. + + - 로컬 스토리지에 대해 정리해 주세요! + - 브라우저에 데이터를 **영구적으로 저장**합니다. + - 명시적으로 삭제하지 않는 이상 브라우저를 닫아도 데이터가 유지됩니다. + - 동일한 도메인 간에 데이터가 공유됩니다 + - 로컬 스토리지에서 JWT 토큰을 저장하고, 사용하고, 삭제하는 메소드에 대해 찾아보세요! + + 위에 토큰에서 설명한 바와 같습니다. 말 그대로 저장하고 사용하고 삭제할 뿐이지 JWT라고 해서 더 특별한 무언가가 있는 게 아닙니다. + + 다만 탈취되었을 때의 문제를 생각해서 여러가지 보안 장치를 마련해야 합니다. + + 프론트에서 다루는 데이터는 무조건 탈취가능합니다. 탈취를 최대한 방지하는 방식으로 설계하되, 반드시 탈취가 되었다는 경우도 가정해야합니다. 이부분은 백엔드에서 더 많이 고민해야할 문제이기도 합니다. + + - 스토리지가 변경되었을 때 처리하는 방법을 조사해 주세요. + + + 스토리지 변경은 `storage` 이벤트로 처리할 수 있습니다. 이 이벤트는 **다른 브라우저 탭이나 창에서 스토리지 데이터가 변경될 때 발생**합니다. + + - Bearer Token이 무엇인지 찾아보고, 이를 통해 백엔드 서버와 어떠한 방식으로 통신하는지 조사해 보세요! + - 인증 정보를 포함한 문자열 형태의 토큰으로, 주로 **OAuth 2.0**에서 사용됩니다. + - 클라이언트가 서버로 요청을 보낼 때 **HTTP 헤더의 `Authorization` 필드에 포함**하여 전송. +- Context-API 🍠 + - 전역 상태 관리는 왜 해야할까요? + + 유지보수와, 최적화 때문에 필요합니다. + + - Context API란 무엇일까요? + + 데이터를 여러 컴포넌트에서 사용하고자 할 때, 사용합니다 + + 하지만, 재사용 성을 낮추고, 상태가 수정될 때 모든 하위 컴포넌트가 재 렌더링 되는 건 마찬가지기 때문에 단순히 props drilling을 해결하기 위해서만 사용하기엔 적절하진 않습니다. + + + + +https://www.youtube.com/watch?v=WQHuqL2S74o&t=877s + +https://www.youtube.com/watch?v=WQHuqL2S74o&t=877s + +# ✅ 실습 + +- [x] 기존 2주차 `React`로 제작한 **`ToDoList`**를, **`Context-API`**를 활용하여 **`리팩토링을 진행`**해주세요! + + todoList를 어떻게 구현했는 지는 몰라도, 저는 전역상태 관리를 추가해서 리팩토링 할 부분은 없었습니다. + + 그래도 그냥 하는 김에 recoil로 해봤습니다. + + contextAPI나 recoil이나 사용방법은 거의 똑같습니다. 작동 구조가 다를 뿐이고 사용 방법, 목적에 큰 차이가 있진 않습니다. + + 그리고 일반적으로 useState를 통해 만든 state는 직접 수정은 안되지만, 간접 접근을 통한 수정이 됩니다. + + 예를 들어 여기선, todoList 안에 객체의 배열을 가지고 있는데, copyList = todoList; + + copyList[index].member = “changed”; 로 수정이 가능합니다. + + recoil은 이런 부분들을 방지해서, state관리를 더 편하고 엄격하게 해줍니다 + +- 깃허브 주소 + + https://github.com/RyuDongHo/UmcWeb + +- 실행 영상 + + [20241113-1623-08.7413001.mp4](https://prod-files-secure.s3.us-west-2.amazonaws.com/f1912130-0409-4e90-a90f-6091ae253e73/55f199b5-d199-4479-91f9-aa6153651b23/20241113-1623-08.7413001.mp4) + + +# 🔥 미션 1. 회원가입 / 로그인 API 연결 + + + +https://github.com/dydals3440/UMC-7th-YONGCHA-BE + +### 1. 회원가입 + +![스크린샷 2024-09-30 오전 12.17.05.png](https://prod-files-secure.s3.us-west-2.amazonaws.com/f1912130-0409-4e90-a90f-6091ae253e73/78d333fa-aa22-492f-828f-335b3927525d/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-09-30_%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB_12.17.05.png) + +- [x] **`회원가입 API`**를 잘 연결하였는가? +- [x] 회원가입 후, `login 페이지`로 이동하였는가? + +### 2. 로그인 + +![스크린샷 2024-09-30 오전 12.18.19.png](https://prod-files-secure.s3.us-west-2.amazonaws.com/f1912130-0409-4e90-a90f-6091ae253e73/12e13eac-1a6d-4ea4-8688-970d2283b60f/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-09-30_%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB_12.18.19.png) + +- [x] **`로그인 API`**를 잘 연결하였는가? +- [x] 로그인 후, `메인 페이지`로 이동하였는가? +- [x] **`AccessToken`**과, **`RefreshToken`**을 **`로컬스토리지에서 저장`**하였는가? + +### 3. 로그인 후 메인 페이지 이동 시 + +![스크린샷 2024-09-30 오전 12.14.44.png](https://prod-files-secure.s3.us-west-2.amazonaws.com/f1912130-0409-4e90-a90f-6091ae253e73/b095f639-230d-4bb4-9fc4-69cee14ada08/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-09-30_%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB_12.14.44.png) + +- [x] **`Navbar`**의 로그인, 회원가입 버튼 대신, **`로그아웃 버튼`**을 보여주었는가? +- [x] **`유저 정보 불러오기 API`**를 호출하여, 로그인 한 유저 이메일 **`@ 기준 앞 부분(닉네임)`**을 Navbar에 잘 보여주었는가? + +### 4. 로그아웃 시 + +![스크린샷 2024-09-30 오전 12.21.38.png](https://prod-files-secure.s3.us-west-2.amazonaws.com/f1912130-0409-4e90-a90f-6091ae253e73/219d8a2b-3eac-4149-a144-c36676387d4f/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-09-30_%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB_12.21.38.png) + +- [x] 로그아웃 후, Navbar에 유저 정보가, 사라지며, **`로그인, 회원가입 버튼이 다시 생겼는가?`** +- [x] **`AccessToken`**과, **`RefreshToken`**을 **`로컬스토리지에서 제거`**하였는가? + +### 5. 추가로 해보면 좋아요! + +- [x] `refreshToken을 활용`**하여,** `토큰 재발급`**을 진행해보세요.** + - [x] **`Axios Interceptor`**를 활용하여, **`refreshToken`**을 활용하여, **`accessToken`**을 **`재발급`** 받는 로직을 구글 검색을 통해, 직접 해결해보세요! + + axios는 쓰지 않고 fetch로 하드코딩 해봤습니다. + + axios만 쓸 때는, 그냥 기능이 편하니까 쓴다 고만 생각했지 구체적으로 어떤 이유로 쓰는 지 감이 안 왔는데, + + fetch로 하나씩 설계해보니, 폴더 구조에 맞게 응집도 높은 구조를 설계하려면, 신경 쓸 부분이 생각보다 많았습니다. + + - [x] **`refreshToken`**을 활용하여, 토큰 재발급을 진행하면, 어떤 부분에서 이점이 있는지 작성해주세요! + - 어떤 장점이 있을까요? + + accessToken의 유효기간을 짧게 함으로서 accessToken이 탈취되어도 보안상의 위협을 낮추기 위함입니다. + + 즉 accessToken이 refreshToken과 다른 방식으로 저장되어, 사용자가 refreshToken에 접근하지 못하도록 방지해야 이 방법이 의미가 있습니다. + + 그래서 저는 accessToken은 쿠키에 저장하고 refreshToken 은 httpOnly옵션을 주고 쿠키에 저장하는 방식을 구현했으나, 백엔드에서 httpOnly형식의 쿠키를 직접 분석해서 사용하는 방식을 구현해주어야 하기 때문에, 과제에선 httpOnly방식을 구현만 해두고 일단 accessToken과 같은 방식으로 저장하고 있습니다. + + +### 🔥 미션 1. 제출 + +- 깃허브 주소 + + https://github.com/RyuDongHo/UmcWeb + +- 실행 영상 + + 아래에 한번에 올리겠습니다 + + +# 🔥 미션 2. QueryParameter 활용 검색 기능 구현 + + + +- [x] **`Styled-Components`**를 활용해주세요 +- [x] 기존에 만들었던, **`movie-card 컴포넌트`**를 재사용해주세요. + +1. 영화 제목 검색어를 입력하지 않는 경우 (`/search` 경로에 처음 온 경우) + + ![스크린샷 2024-09-25 오후 8.39.03.png](https://prod-files-secure.s3.us-west-2.amazonaws.com/f1912130-0409-4e90-a90f-6091ae253e73/b4deb1da-f975-4254-8e2c-629fead9ec2b/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-09-25_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_8.39.03.png) + + +1. 영화 제목 검색어를 입력한 경우 + + ![스크린샷 2024-09-25 오후 8.40.23.png](https://prod-files-secure.s3.us-west-2.amazonaws.com/f1912130-0409-4e90-a90f-6091ae253e73/53f552ef-5ecf-451f-95c3-6c0ce839ab3e/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-09-25_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_8.40.23.png) + + +1. 영화 검색어를 입력했으나, 해당 검색어의 영화 데이터가 존재하지 않는 경우. + + ![스크린샷 2024-09-25 오후 8.48.41.png](https://prod-files-secure.s3.us-west-2.amazonaws.com/f1912130-0409-4e90-a90f-6091ae253e73/5f4401e5-85aa-4ea3-999f-35982279b4a6/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2024-09-25_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_8.48.41.png) + + +1. 로딩 중인 경우, 아래와 같은 **`Skeleton UI`**를 만들어주세요! + +[화면 기록 2024-09-25 오후 9.49.33.mov](https://prod-files-secure.s3.us-west-2.amazonaws.com/f1912130-0409-4e90-a90f-6091ae253e73/acd1e244-c55b-48ea-b5dc-d3df7f22c7e8/%E1%84%92%E1%85%AA%E1%84%86%E1%85%A7%E1%86%AB_%E1%84%80%E1%85%B5%E1%84%85%E1%85%A9%E1%86%A8_2024-09-25_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_9.49.33.mov) + +1. **`Debounce`**에 대한 키워드를 학습하셨나요? + - [x] **`Debounce`** 가 무엇인지 작성해주세요~! + - Debounce는 무엇인가요? + + Debounce는 함수가 연속적으로 여러번 호출되면, 호출될 때마다 함수를 호출하는 게 아니라, 마지막 함수 호출 시점으로부터 지정한 시간이 지나면 그때 함수를 호출하는 최적화 방식. + + - [ ] Debounce를 검색 기능에 적용해주세요! + + 검색어가 변할 때만 api통신이 발생하도록 로직을 구성했기 때문에 + + debounce를 적용할만한 곳이 없어서 커스텀훅으로 만들어만 두고 적용하진 않았습니다. + + - 실행 영상 첨부 + +- [ ] 혹시라도, 구현에 어려움을 느끼신 경우, 아래 영상을 참고해서, 미션을 수행해주세요. + +https://www.youtube.com/watch?v=L3eGGsAyd_A + +### 🔥 미션 2. 제출 + +- 깃허브 주소 + + https://github.com/RyuDongHo/UmcWeb + +- 실행 영상 + + [qwe.mp4](https://prod-files-secure.s3.us-west-2.amazonaws.com/f1912130-0409-4e90-a90f-6091ae253e73/cd6cf180-4ed4-44cd-b5dc-8fa19e58ad01/qwe.mp4) + + +# ⚡ 트러블 슈팅 \ No newline at end of file

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