From 75ec02d5068716d1ebd0e8a22dd6dbf2cb29278b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=95=88=EC=A4=80=EC=98=81?= Date: Tue, 30 Sep 2025 23:55:13 +0900 Subject: [PATCH] =?UTF-8?q?[modern-react]=20=EB=A6=AC=EC=95=A1=ED=8A=B8=20?= =?UTF-8?q?=EC=8A=A4=ED=84=B0=EB=94=94=20=ED=8C=8C=EC=9D=BC=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modern-react/my-modern/App.js | 11 + modern-react/my-modern/Util.js | 5 + modern-react/my-modern/const.html | 10 + modern-react/my-modern/const.js | 3 + modern-react/my-modern/destruct_list.html | 10 + modern-react/my-modern/destruct_list.js | 12 + .../my-modern/destruct_list_rest.html | 10 + modern-react/my-modern/destruct_list_rest.js | 3 + modern-react/my-modern/destruct_nest.html | 10 + modern-react/my-modern/destruct_nest.js | 10 + .../my-modern/destruct_nest_array.html | 10 + modern-react/my-modern/destruct_nest_array.js | 3 + modern-react/my-modern/destruct_obj.html | 10 + modern-react/my-modern/destruct_obj.js | 19 + .../my-modern/destruct_obj_param.html | 10 + modern-react/my-modern/destruct_obj_param.js | 10 + modern-react/my-modern/func_def.html | 10 + modern-react/my-modern/func_def.js | 10 + modern-react/my-modern/func_rest.html | 10 + modern-react/my-modern/func_rest.js | 13 + modern-react/my-modern/let.html | 10 + modern-react/my-modern/let.js | 5 + modern-react/my-modern/module_alias.html | 10 + modern-react/my-modern/module_alias.js | 3 + modern-react/my-modern/module_all.html | 10 + modern-react/my-modern/module_all.js | 3 + modern-react/my-modern/module_basic.html | 10 + modern-react/my-modern/module_basic.js | 6 + modern-react/my-modern/module_dynamic.html | 10 + modern-react/my-modern/module_dynamic.js | 6 + modern-react/my-modern/module_use_util.html | 10 + modern-react/my-modern/module_use_util.js | 3 + modern-react/my-modern/number.html | 10 + modern-react/my-modern/number.js | 2 + modern-react/my-modern/obj_computed.html | 10 + modern-react/my-modern/obj_computed.js | 8 + modern-react/my-modern/obj_method.html | 10 + modern-react/my-modern/obj_method.js | 15 + modern-react/my-modern/obj_prop.html | 10 + modern-react/my-modern/obj_prop.js | 7 + modern-react/my-modern/optional.html | 10 + modern-react/my-modern/optional.js | 13 + modern-react/my-modern/package.json | 13 + modern-react/my-modern/template.html | 10 + modern-react/my-modern/template.js | 5 + modern-react/my-next/README.md | 36 + modern-react/my-next/jsconfig.json | 7 + modern-react/my-next/next.config.mjs | 18 + modern-react/my-next/package-lock.json | 5029 +++ modern-react/my-next/package.json | 26 + modern-react/my-next/postcss.config.mjs | 8 + modern-react/my-next/prisma/dev.db | Bin 0 -> 12288 bytes modern-react/my-next/prisma/schema.prisma | 29 + modern-react/my-next/public/next.svg | 1 + modern-react/my-next/public/vercel.svg | 1 + .../src/app/books/[[...keyword]]/layout.js | 28 + .../src/app/books/[[...keyword]]/loading.js | 7 + .../src/app/books/[[...keyword]]/page.js | 16 + .../my-next/src/app/edit/[id]/page.js | 30 + modern-react/my-next/src/app/favicon.ico | Bin 0 -> 25931 bytes modern-react/my-next/src/app/globals.css | 34 + modern-react/my-next/src/app/layout.js | 65 + modern-react/my-next/src/app/page.js | 39 + .../my-next/src/components/BookDetails.js | 23 + .../my-next/src/components/FormEdit.js | 72 + .../src/components/LinkedBookDetails.js | 13 + modern-react/my-next/src/lib/actions.js | 91 + modern-react/my-next/src/lib/getter.js | 54 + modern-react/my-next/src/lib/prisma.js | 9 + modern-react/my-next/tailwind.config.js | 20 + modern-react/my-react-ts/README.md | 46 + modern-react/my-react-ts/package-lock.json | 18797 +++++++++ modern-react/my-react-ts/package.json | 48 + modern-react/my-react-ts/public/favicon.ico | Bin 0 -> 3870 bytes modern-react/my-react-ts/public/index.html | 43 + modern-react/my-react-ts/public/logo192.png | Bin 0 -> 5347 bytes modern-react/my-react-ts/public/logo512.png | Bin 0 -> 9664 bytes modern-react/my-react-ts/public/manifest.json | 25 + modern-react/my-react-ts/public/robots.txt | 3 + modern-react/my-react-ts/src/App.css | 38 + modern-react/my-react-ts/src/App.test.tsx | 9 + modern-react/my-react-ts/src/App.tsx | 26 + modern-react/my-react-ts/src/Book.ts | 7 + .../my-react-ts/src/HookReducerUp.tsx | 56 + .../my-react-ts/src/HookThemeButton.tsx | 13 + modern-react/my-react-ts/src/ListTemplate.tsx | 49 + .../my-react-ts/src/MyThemeProvider.tsx | 50 + modern-react/my-react-ts/src/QueryBasic.tsx | 39 + modern-react/my-react-ts/src/QueryPre.tsx | 51 + modern-react/my-react-ts/src/StateBasic.tsx | 19 + modern-react/my-react-ts/src/StateFormUC.tsx | 28 + modern-react/my-react-ts/src/StyledPanel.tsx | 21 + modern-react/my-react-ts/src/ThemeContext.tsx | 14 + modern-react/my-react-ts/src/books.ts | 43 + modern-react/my-react-ts/src/index.css | 13 + modern-react/my-react-ts/src/index.tsx | 111 + modern-react/my-react-ts/src/logo.svg | 1 + .../my-react-ts/src/react-app-env.d.ts | 1 + .../my-react-ts/src/reportWebVitals.ts | 15 + modern-react/my-react-ts/src/setupTests.ts | 5 + modern-react/my-react-ts/tsconfig.json | 28 + modern-react/my-react/README.md | 70 + modern-react/my-react/coverage/clover.xml | 1288 + .../my-react/coverage/coverage-final.json | 160 + .../my-react/coverage/lcov-report/base.css | 224 + .../coverage/lcov-report/block-navigation.js | 87 + .../my-react/coverage/lcov-report/favicon.png | Bin 0 -> 445 bytes .../my-react/coverage/lcov-report/index.html | 266 + .../coverage/lcov-report/prettify.css | 1 + .../my-react/coverage/lcov-report/prettify.js | 2 + .../lcov-report/sort-arrow-sprite.png | Bin 0 -> 138 bytes .../my-react/coverage/lcov-report/sorter.js | 196 + .../coverage/lcov-report/src/App.js.html | 169 + .../coverage/lcov-report/src/AppClass.js.html | 175 + .../lcov-report/src/chap03/Download.js.html | 109 + .../lcov-report/src/chap03/EventArgs.js.html | 157 + .../lcov-report/src/chap03/EventArgs2.js.html | 157 + .../lcov-report/src/chap03/EventBasic.js.html | 157 + .../src/chap03/EventCompare.js.html | 151 + .../lcov-report/src/chap03/EventError.js.html | 112 + .../lcov-report/src/chap03/EventKey.js.html | 133 + .../lcov-report/src/chap03/EventMouse.js.html | 121 + .../lcov-report/src/chap03/EventObj.js.html | 103 + .../lcov-report/src/chap03/EventOnce.js.html | 151 + .../src/chap03/EventPassive.js.html | 220 + .../lcov-report/src/chap03/EventPoint.js.html | 160 + .../src/chap03/EventPropagation.js.html | 349 + .../lcov-report/src/chap03/ForFilter.js.html | 139 + .../lcov-report/src/chap03/ForItem.js.html | 334 + .../lcov-report/src/chap03/ForList.js.html | 208 + .../lcov-report/src/chap03/ForNest.js.html | 115 + .../lcov-report/src/chap03/ForSort.js.html | 139 + .../src/chap03/ListTemplate.js.html | 169 + .../lcov-report/src/chap03/MyHello.js.html | 202 + .../src/chap03/SelectStyle.js.html | 220 + .../lcov-report/src/chap03/StateBasic.js.html | 235 + .../src/chap03/StateCounter.js.html | 115 + .../src/chap03/StateParent.js.html | 136 + .../src/chap03/StyledPanel.js.html | 124 + .../src/chap03/TitledPanel.js.html | 193 + .../lcov-report/src/chap03/TypeProp.js.html | 196 + .../lcov-report/src/chap03/books.js.html | 211 + .../lcov-report/src/chap03/index.html | 521 + .../lcov-report/src/chap04/FormBasic.js.html | 1261 + .../lcov-report/src/chap04/FormCheck.js.html | 178 + .../src/chap04/FormCheckMulti.js.html | 262 + .../lcov-report/src/chap04/FormFile.js.html | 160 + .../lcov-report/src/chap04/FormList.js.html | 226 + .../lcov-report/src/chap04/FormRadio.js.html | 223 + .../lcov-report/src/chap04/FormSelect.js.html | 190 + .../src/chap04/FormTextarea.js.html | 181 + .../lcov-report/src/chap04/FormYup.js.html | 1306 + .../lcov-report/src/chap04/FromKorean.js.html | 313 + .../lcov-report/src/chap04/StateForm.js.html | 211 + .../src/chap04/StateFormUC.js.html | 181 + .../lcov-report/src/chap04/StateNest.js.html | 262 + .../src/chap04/StateNestImmer.js.html | 244 + .../src/chap04/StateNestImmer2.js.html | 238 + .../lcov-report/src/chap04/StateTodo.js.html | 997 + .../lcov-report/src/chap04/index.html | 356 + .../lcov-report/src/chap04/yup.kr.js.html | 187 + .../src/chap05/EmotionComp.js.html | 139 + .../lcov-report/src/chap05/EmotionJsx.js.html | 283 + .../lcov-report/src/chap05/ErrorEvent.js.html | 172 + .../src/chap05/ErrorEventRoot.js.html | 166 + .../src/chap05/ErrorFallback.js.html | 118 + .../src/chap05/ErrorRetryRoot.js.html | 295 + .../src/chap05/ErrorRetryThrow.js.html | 109 + .../lcov-report/src/chap05/ErrorRoot.js.html | 178 + .../lcov-report/src/chap05/ErrorThrow.js.html | 106 + .../lcov-report/src/chap05/HeavyUI.js.html | 112 + .../lcov-report/src/chap05/LazyBasic.js.html | 184 + .../lcov-report/src/chap05/LazyButton.js.html | 103 + .../src/chap05/LazyButton2.js.html | 103 + .../lcov-report/src/chap05/LazyMulti.js.html | 130 + .../lcov-report/src/chap05/MyLoading.js.html | 97 + .../src/chap05/PortalBasic.js.html | 169 + .../src/chap05/ProfilerBasic.js.html | 151 + .../src/chap05/StyledCommon.css.js.html | 97 + .../src/chap05/StyledCommon.js.html | 136 + .../lcov-report/src/chap05/StyledComp.js.html | 133 + .../src/chap05/StyledComp2.js.html | 142 + .../src/chap05/StyledGlobal.js.html | 109 + .../src/chap05/StyledProps.js.html | 139 + .../src/chap05/SuspenseResult.js.html | 112 + .../src/chap05/SuspenseSimple.js.html | 112 + .../src/chap05/ThrowPromise.js.html | 157 + .../src/chap05/ThrowResult.js.html | 151 + .../lcov-report/src/chap05/index.html | 521 + .../src/chap05/wrapPromise.js.html | 184 + .../lcov-report/src/chap06/FormMui.js.html | 328 + .../src/chap06/MaterialBasic.js.html | 217 + .../src/chap06/MaterialDrawer.js.html | 211 + .../src/chap06/MaterialGrid.js.html | 214 + .../src/chap06/MaterialMode.js.html | 361 + .../lcov-report/src/chap06/MyButton.js.html | 664 + .../src/chap06/MyButton.stories.js.html | 3253 ++ .../lcov-report/src/chap06/QueryBasic.js.html | 187 + .../lcov-report/src/chap06/QueryPre.js.html | 241 + .../src/chap06/QuerySuspense.js.html | 163 + .../lcov-report/src/chap06/index.html | 266 + .../lcov-report/src/chap06/theme.js.html | 214 + .../src/chap07/HookCallbackRef.js.html | 292 + .../src/chap07/HookContext.js.html | 145 + .../src/chap07/HookContextChild.js.html | 139 + .../lcov-report/src/chap07/HookCustom.js.html | 121 + .../src/chap07/HookDeferred.js.html | 139 + .../src/chap07/HookDeferredTransition.js.html | 175 + .../lcov-report/src/chap07/HookEffect.js.html | 178 + .../lcov-report/src/chap07/HookMemo.js.html | 454 + .../src/chap07/HookMemoChild.js.html | 196 + .../src/chap07/HookReducer.js.html | 178 + .../src/chap07/HookReducerInit.js.html | 295 + .../src/chap07/HookReducerUp.js.html | 187 + .../lcov-report/src/chap07/HookRef.js.html | 151 + .../src/chap07/HookRefForward.js.html | 124 + .../lcov-report/src/chap07/HookRefNg.js.html | 166 + .../src/chap07/HookThemeButton.js.html | 118 + .../lcov-report/src/chap07/HookTimer.js.html | 154 + .../src/chap07/HookTransition.js.html | 424 + .../src/chap07/HookTransitionChild.js.html | 202 + .../lcov-report/src/chap07/MyTextBox.js.html | 235 + .../src/chap07/MyThemeProvider.js.html | 223 + .../src/chap07/RecoilCounter.js.html | 271 + .../lcov-report/src/chap07/RecoilTodo.js.html | 295 + .../src/chap07/RecoilTodoUp.js.html | 295 + .../src/chap07/StateEffect.js.html | 145 + .../src/chap07/ThemeContext.js.html | 100 + .../lcov-report/src/chap07/UseCounter.js.html | 250 + .../lcov-report/src/chap07/books.js.html | 259 + .../lcov-report/src/chap07/comments.js.html | 400 + .../lcov-report/src/chap07/index.html | 536 + .../lcov-report/src/chap08/AboutPage.js.html | 163 + .../src/chap08/ArticlePage.js.html | 91 + .../src/chap08/BookFormPage.js.html | 247 + .../lcov-report/src/chap08/BookNest.js.html | 184 + .../lcov-report/src/chap08/BookPage.js.html | 271 + .../src/chap08/BookQueryPage.js.html | 109 + .../src/chap08/BookStatePage.js.html | 118 + .../src/chap08/CommonErrorPage.js.html | 163 + .../lcov-report/src/chap08/FirstPage.js.html | 163 + .../lcov-report/src/chap08/InfoPage.js.html | 121 + .../src/chap08/InvalidParamsPage.js.html | 109 + .../lcov-report/src/chap08/MyHeader.js.html | 148 + .../lcov-report/src/chap08/MyLink.js.html | 121 + .../src/chap08/NotFoundPage.js.html | 100 + .../lcov-report/src/chap08/RouterApp.js.html | 259 + .../src/chap08/RouterCustom.js.html | 133 + .../lcov-report/src/chap08/RouterNav.js.html | 271 + .../src/chap08/RouterParam.js.html | 1315 + .../src/chap08/RouterScroll.js.html | 190 + .../lcov-report/src/chap08/SearchPage.js.html | 100 + .../lcov-report/src/chap08/SecondPage.js.html | 118 + .../lcov-report/src/chap08/TopPage.js.html | 238 + .../src/chap08/WeatherLazyPage.js.html | 250 + .../src/chap08/WeatherPage.js.html | 121 + .../lcov-report/src/chap08/books.js.html | 259 + .../lcov-report/src/chap08/index.html | 566 + .../src/chap08/routesBasic.js.html | 196 + .../src/chap08/routesHandle.js.html | 154 + .../lcov-report/src/chap08/routesLink.js.html | 466 + .../src/chap08/routesMyLink.js.html | 133 + .../src/chap08/routesParam.js.html | 2281 ++ .../src/chap08/routesScroll.js.html | 127 + .../lcov-report/src/chap09/MyUtil.js.html | 91 + .../lcov-report/src/chap09/index.html | 116 + .../lcov-report/src/column/MyStore.js.html | 127 + .../lcov-report/src/column/index.html | 116 + .../lcov-report/src/config-overrides.js.html | 100 + .../coverage/lcov-report/src/index.html | 176 + .../coverage/lcov-report/src/index.js.html | 3943 ++ .../lcov-report/src/reportWebVitals.js.html | 124 + .../lcov-report/src/store/atom.js.html | 223 + .../lcov-report/src/store/atomUp.js.html | 217 + .../coverage/lcov-report/src/store/index.html | 131 + .../lcov-report/src/stories/Button.jsx.html | 235 + .../src/stories/Button.stories.js.html | 229 + .../lcov-report/src/stories/Header.jsx.html | 262 + .../src/stories/Header.stories.js.html | 169 + .../lcov-report/src/stories/Page.jsx.html | 292 + .../src/stories/Page.stories.js.html | 169 + .../lcov-report/src/stories/index.html | 191 + modern-react/my-react/coverage/lcov.info | 3129 ++ modern-react/my-react/cypress.config.js | 11 + .../my-react/cypress/e2e/myReact.cy.js | 23 + modern-react/my-react/cypress/e2e/myapp.cy.js | 5 + .../my-react/cypress/fixtures/example.json | 5 + .../my-react/cypress/fixtures/profile.json | 5 + .../my-react/cypress/fixtures/users.json | 232 + .../misc.cy.js/my-image (1).png | Bin 0 -> 248090 bytes .../misc.cy.js/my-image.png | Bin 0 -> 248090 bytes .../template spec -- passes (failed).png | Bin 0 -> 26947 bytes .../my-react/cypress/support/commands.js | 25 + modern-react/my-react/cypress/support/e2e.js | 20 + modern-react/my-react/package-lock.json | 31399 ++++++++++++++++ modern-react/my-react/package.json | 82 + modern-react/my-react/public/favicon.ico | Bin 0 -> 3870 bytes modern-react/my-react/public/image/_wings.jpg | Bin 0 -> 16770 bytes .../my-react/public/image/noimage.jpg | Bin 0 -> 4026 bytes modern-react/my-react/public/index.html | 43 + modern-react/my-react/public/logo192.png | Bin 0 -> 5347 bytes modern-react/my-react/public/logo512.png | Bin 0 -> 9664 bytes modern-react/my-react/public/manifest.json | 25 + modern-react/my-react/public/robots.txt | 3 + modern-react/my-react/src/App.css | 38 + modern-react/my-react/src/App.js | 37 + modern-react/my-react/src/App.test.js | 30 + modern-react/my-react/src/AppClass.js | 31 + modern-react/my-react/src/chap02/class.css | 5 + modern-react/my-react/src/chap03/Download.js | 9 + modern-react/my-react/src/chap03/EventArgs.js | 25 + .../my-react/src/chap03/EventArgs2.js | 25 + .../my-react/src/chap03/EventBasic.js | 25 + .../my-react/src/chap03/EventCompare.css | 15 + .../my-react/src/chap03/EventCompare.js | 23 + .../my-react/src/chap03/EventError.js | 10 + modern-react/my-react/src/chap03/EventKey.js | 17 + .../my-react/src/chap03/EventMouse.js | 13 + modern-react/my-react/src/chap03/EventObj.js | 7 + modern-react/my-react/src/chap03/EventOnce.js | 23 + .../my-react/src/chap03/EventPassive.css | 6 + .../my-react/src/chap03/EventPassive.js | 45 + .../my-react/src/chap03/EventPoint.css | 9 + .../my-react/src/chap03/EventPoint.js | 26 + .../my-react/src/chap03/EventPropagation.css | 26 + .../my-react/src/chap03/EventPropagation.js | 88 + modern-react/my-react/src/chap03/ForFilter.js | 19 + modern-react/my-react/src/chap03/ForItem.js | 84 + modern-react/my-react/src/chap03/ForList.js | 42 + modern-react/my-react/src/chap03/ForNest.js | 11 + modern-react/my-react/src/chap03/ForSort.js | 19 + .../my-react/src/chap03/ListTemplate.js | 29 + modern-react/my-react/src/chap03/MyHello.js | 40 + .../my-react/src/chap03/SelectStyle.css | 20 + .../my-react/src/chap03/SelectStyle.js | 46 + .../my-react/src/chap03/StateBasic.js | 51 + .../my-react/src/chap03/StateCounter.css | 5 + .../my-react/src/chap03/StateCounter.js | 11 + .../my-react/src/chap03/StateParent.js | 18 + .../my-react/src/chap03/StyledPanel.js | 14 + .../my-react/src/chap03/TitledPanel.js | 37 + modern-react/my-react/src/chap03/TypeProp.js | 37 + modern-react/my-react/src/chap03/books.js | 43 + .../my-react/src/chap04/FormBasic.css | 3 + modern-react/my-react/src/chap04/FormBasic.js | 393 + modern-react/my-react/src/chap04/FormCheck.js | 31 + .../my-react/src/chap04/FormCheckMulti.js | 59 + modern-react/my-react/src/chap04/FormFile.js | 25 + modern-react/my-react/src/chap04/FormList.js | 47 + modern-react/my-react/src/chap04/FormRadio.js | 46 + .../my-react/src/chap04/FormSelect.js | 36 + .../my-react/src/chap04/FormTextarea.js | 33 + modern-react/my-react/src/chap04/FormYup.js | 408 + .../my-react/src/chap04/FromKorean.js | 77 + modern-react/my-react/src/chap04/StateForm.js | 43 + .../my-react/src/chap04/StateFormUC.js | 33 + modern-react/my-react/src/chap04/StateNest.js | 60 + .../my-react/src/chap04/StateNestImmer.js | 54 + .../my-react/src/chap04/StateNestImmer2.js | 52 + .../my-react/src/chap04/StateTodo.css | 3 + modern-react/my-react/src/chap04/StateTodo.js | 305 + modern-react/my-react/src/chap04/yup.kr.js | 35 + .../my-react/src/chap05/EmotionComp.js | 19 + .../my-react/src/chap05/EmotionJsx.js | 67 + .../my-react/src/chap05/ErrorEvent.js | 30 + .../my-react/src/chap05/ErrorEventRoot.js | 28 + .../my-react/src/chap05/ErrorFallback.js | 12 + .../my-react/src/chap05/ErrorRetryRoot.js | 71 + .../my-react/src/chap05/ErrorRetryThrow.js | 9 + modern-react/my-react/src/chap05/ErrorRoot.js | 32 + .../my-react/src/chap05/ErrorThrow.js | 7 + modern-react/my-react/src/chap05/HeavyUI.js | 10 + modern-react/my-react/src/chap05/LazyBasic.js | 34 + .../my-react/src/chap05/LazyButton.js | 7 + .../my-react/src/chap05/LazyButton2.js | 7 + modern-react/my-react/src/chap05/LazyMulti.js | 16 + modern-react/my-react/src/chap05/MyLoading.js | 5 + .../my-react/src/chap05/PortalBasic.css | 13 + .../my-react/src/chap05/PortalBasic.js | 28 + .../my-react/src/chap05/ProfilerBasic.js | 23 + .../my-react/src/chap05/StyledCommon.css.js | 5 + .../my-react/src/chap05/StyledCommon.js | 18 + .../my-react/src/chap05/StyledComp.js | 17 + .../my-react/src/chap05/StyledComp2.js | 20 + .../my-react/src/chap05/StyledGlobal.js | 9 + .../my-react/src/chap05/StyledProps.js | 19 + .../my-react/src/chap05/SuspenseResult.js | 10 + .../my-react/src/chap05/SuspenseSimple.js | 10 + .../my-react/src/chap05/ThrowPromise.js | 25 + .../my-react/src/chap05/ThrowResult.js | 23 + .../my-react/src/chap05/wrapPromise.js | 34 + modern-react/my-react/src/chap06/FormMui.js | 82 + .../my-react/src/chap06/MaterialBasic.js | 45 + .../my-react/src/chap06/MaterialDrawer.js | 43 + .../my-react/src/chap06/MaterialGrid.js | 44 + .../my-react/src/chap06/MaterialMode.js | 93 + modern-react/my-react/src/chap06/MyButton.js | 138 + modern-react/my-react/src/chap06/MyButton.mdx | 35 + .../my-react/src/chap06/MyButton.stories.js | 1112 + .../my-react/src/chap06/QueryBasic.js | 35 + modern-react/my-react/src/chap06/QueryPre.js | 53 + .../my-react/src/chap06/QuerySuspense.js | 27 + modern-react/my-react/src/chap06/theme.js | 44 + .../my-react/src/chap07/HookCallbackRef.js | 70 + .../my-react/src/chap07/HookContext.js | 21 + .../my-react/src/chap07/HookContextChild.js | 19 + .../my-react/src/chap07/HookCustom.js | 13 + .../my-react/src/chap07/HookDeferred.js | 19 + .../src/chap07/HookDeferredTransition.js | 31 + .../my-react/src/chap07/HookEffect.js | 32 + modern-react/my-react/src/chap07/HookMemo.js | 123 + .../my-react/src/chap07/HookMemoChild.js | 38 + .../my-react/src/chap07/HookReducer.js | 32 + .../my-react/src/chap07/HookReducerInit.js | 71 + .../my-react/src/chap07/HookReducerUp.js | 35 + modern-react/my-react/src/chap07/HookRef.js | 23 + .../my-react/src/chap07/HookRefForward.js | 14 + modern-react/my-react/src/chap07/HookRefNg.js | 28 + .../my-react/src/chap07/HookThemeButton.js | 12 + .../my-react/src/chap07/HookTimer.css | 4 + modern-react/my-react/src/chap07/HookTimer.js | 24 + .../my-react/src/chap07/HookTransition.js | 114 + .../src/chap07/HookTransitionChild.js | 39 + modern-react/my-react/src/chap07/MyTextBox.js | 51 + .../my-react/src/chap07/MyThemeProvider.js | 47 + .../my-react/src/chap07/RecoilCounter.js | 63 + .../my-react/src/chap07/RecoilTodo.js | 71 + .../my-react/src/chap07/RecoilTodoUp.js | 71 + .../my-react/src/chap07/StateEffect.js | 21 + .../my-react/src/chap07/ThemeContext.js | 6 + .../my-react/src/chap07/UseCounter.js | 56 + modern-react/my-react/src/chap07/books.js | 59 + modern-react/my-react/src/chap07/comments.js | 106 + modern-react/my-react/src/chap08/AboutPage.js | 27 + .../my-react/src/chap08/ArticlePage.js | 3 + .../my-react/src/chap08/BookFormPage.js | 55 + modern-react/my-react/src/chap08/BookNest.js | 34 + modern-react/my-react/src/chap08/BookPage.js | 63 + .../my-react/src/chap08/BookQueryPage.js | 9 + .../my-react/src/chap08/BookStatePage.js | 12 + .../my-react/src/chap08/CommonErrorPage.js | 27 + modern-react/my-react/src/chap08/FirstPage.js | 27 + modern-react/my-react/src/chap08/InfoPage.js | 12 + .../my-react/src/chap08/InvalidParamsPage.js | 9 + modern-react/my-react/src/chap08/MyHeader.js | 22 + modern-react/my-react/src/chap08/MyLink.js | 13 + .../my-react/src/chap08/NotFoundPage.js | 6 + modern-react/my-react/src/chap08/RouterApp.js | 59 + .../my-react/src/chap08/RouterCustom.js | 17 + .../my-react/src/chap08/RouterNav.css | 4 + modern-react/my-react/src/chap08/RouterNav.js | 63 + .../my-react/src/chap08/RouterParam.js | 411 + .../my-react/src/chap08/RouterScroll.js | 36 + .../my-react/src/chap08/SearchPage.js | 6 + .../my-react/src/chap08/SecondPage.js | 12 + modern-react/my-react/src/chap08/TopPage.js | 52 + .../my-react/src/chap08/WeatherLazyPage.js | 56 + .../my-react/src/chap08/WeatherPage.js | 13 + modern-react/my-react/src/chap08/books.js | 59 + .../my-react/src/chap08/routesBasic.js | 38 + .../my-react/src/chap08/routesHandle.js | 24 + .../my-react/src/chap08/routesLink.js | 127 + .../my-react/src/chap08/routesMyLink.js | 17 + .../my-react/src/chap08/routesParam.js | 733 + .../my-react/src/chap08/routesScroll.js | 15 + .../my-react/src/chap09/ForNest.test.js | 26 + .../src/chap09/HookThemeButton.test.js | 15 + .../my-react/src/chap09/HookTimer.test.js | 41 + modern-react/my-react/src/chap09/MyUtil.js | 3 + .../my-react/src/chap09/MyUtil.test.js | 11 + .../my-react/src/chap09/QueryPre.test.js | 12 + .../my-react/src/chap09/QueryPreMsw.test.js | 34 + .../my-react/src/chap09/StateBasic.test.js | 15 + modern-react/my-react/src/column/MyStore.js | 14 + modern-react/my-react/src/config-overrides.js | 6 + modern-react/my-react/src/image/dl.png | Bin 0 -> 928 bytes .../my-react/src/image/ico_download.gif | Bin 0 -> 860 bytes modern-react/my-react/src/index.css | 13 + modern-react/my-react/src/index.js | 1287 + modern-react/my-react/src/logo.svg | 1 + modern-react/my-react/src/reportWebVitals.js | 13 + modern-react/my-react/src/setupTests.js | 5 + modern-react/my-react/src/store/atom.js | 47 + modern-react/my-react/src/store/atomUp.js | 45 + modern-react/my-react/src/stories/Button.jsx | 50 + .../my-react/src/stories/Button.stories.js | 48 + .../my-react/src/stories/Configure.mdx | 364 + modern-react/my-react/src/stories/Header.jsx | 59 + .../my-react/src/stories/Header.stories.js | 28 + modern-react/my-react/src/stories/Page.jsx | 69 + .../my-react/src/stories/Page.stories.js | 28 + .../src/stories/assets/accessibility.png | Bin 0 -> 42336 bytes .../src/stories/assets/accessibility.svg | 1 + .../src/stories/assets/addon-library.png | Bin 0 -> 467366 bytes .../my-react/src/stories/assets/assets.png | Bin 0 -> 3899 bytes .../src/stories/assets/avif-test-image.avif | Bin 0 -> 829 bytes .../my-react/src/stories/assets/context.png | Bin 0 -> 6119 bytes .../my-react/src/stories/assets/discord.svg | 1 + .../my-react/src/stories/assets/docs.png | Bin 0 -> 27875 bytes .../src/stories/assets/figma-plugin.png | Bin 0 -> 44246 bytes .../my-react/src/stories/assets/github.svg | 1 + .../my-react/src/stories/assets/share.png | Bin 0 -> 40767 bytes .../my-react/src/stories/assets/styling.png | Bin 0 -> 7237 bytes .../my-react/src/stories/assets/testing.png | Bin 0 -> 49313 bytes .../my-react/src/stories/assets/theming.png | Bin 0 -> 44374 bytes .../my-react/src/stories/assets/tutorials.svg | 1 + .../my-react/src/stories/assets/youtube.svg | 1 + modern-react/my-react/src/stories/button.css | 30 + modern-react/my-react/src/stories/header.css | 32 + modern-react/my-react/src/stories/page.css | 69 + modern-react/my-styled/README.md | 70 + modern-react/my-styled/config/env.js | 104 + .../my-styled/config/getHttpsConfig.js | 66 + .../my-styled/config/jest/babelTransform.js | 29 + .../my-styled/config/jest/cssTransform.js | 14 + .../my-styled/config/jest/fileTransform.js | 40 + modern-react/my-styled/config/modules.js | 134 + modern-react/my-styled/config/paths.js | 77 + .../my-styled/config/webpack.config.js | 755 + .../persistentCache/createEnvironmentHash.js | 9 + .../config/webpackDevServer.config.js | 127 + modern-react/my-styled/package-lock.json | 18432 +++++++++ modern-react/my-styled/package.json | 143 + modern-react/my-styled/public/favicon.ico | Bin 0 -> 3870 bytes modern-react/my-styled/public/index.html | 43 + modern-react/my-styled/public/logo192.png | Bin 0 -> 5347 bytes modern-react/my-styled/public/logo512.png | Bin 0 -> 9664 bytes modern-react/my-styled/public/manifest.json | 25 + modern-react/my-styled/public/robots.txt | 3 + modern-react/my-styled/scripts/build.js | 217 + modern-react/my-styled/scripts/start.js | 154 + modern-react/my-styled/scripts/test.js | 52 + modern-react/my-styled/src/App.css | 38 + modern-react/my-styled/src/App.js | 25 + modern-react/my-styled/src/App.test.js | 8 + modern-react/my-styled/src/StyledBasic.js | 71 + modern-react/my-styled/src/StyledCss.css.js | 26 + modern-react/my-styled/src/StyledCss.js | 29 + modern-react/my-styled/src/StyledDynamic.js | 24 + modern-react/my-styled/src/index.css | 13 + modern-react/my-styled/src/index.js | 51 + modern-react/my-styled/src/logo.svg | 1 + modern-react/my-styled/src/reportWebVitals.js | 13 + modern-react/my-styled/src/setupTests.js | 5 + modern-react/ts/tsDataType.ts | 33 + modern-react/ts/tsbasic.ts | 28 + 546 files changed, 141345 insertions(+) create mode 100644 modern-react/my-modern/App.js create mode 100644 modern-react/my-modern/Util.js create mode 100644 modern-react/my-modern/const.html create mode 100644 modern-react/my-modern/const.js create mode 100644 modern-react/my-modern/destruct_list.html create mode 100644 modern-react/my-modern/destruct_list.js create mode 100644 modern-react/my-modern/destruct_list_rest.html create mode 100644 modern-react/my-modern/destruct_list_rest.js create mode 100644 modern-react/my-modern/destruct_nest.html create mode 100644 modern-react/my-modern/destruct_nest.js create mode 100644 modern-react/my-modern/destruct_nest_array.html create mode 100644 modern-react/my-modern/destruct_nest_array.js create mode 100644 modern-react/my-modern/destruct_obj.html create mode 100644 modern-react/my-modern/destruct_obj.js create mode 100644 modern-react/my-modern/destruct_obj_param.html create mode 100644 modern-react/my-modern/destruct_obj_param.js create mode 100644 modern-react/my-modern/func_def.html create mode 100644 modern-react/my-modern/func_def.js create mode 100644 modern-react/my-modern/func_rest.html create mode 100644 modern-react/my-modern/func_rest.js create mode 100644 modern-react/my-modern/let.html create mode 100644 modern-react/my-modern/let.js create mode 100644 modern-react/my-modern/module_alias.html create mode 100644 modern-react/my-modern/module_alias.js create mode 100644 modern-react/my-modern/module_all.html create mode 100644 modern-react/my-modern/module_all.js create mode 100644 modern-react/my-modern/module_basic.html create mode 100644 modern-react/my-modern/module_basic.js create mode 100644 modern-react/my-modern/module_dynamic.html create mode 100644 modern-react/my-modern/module_dynamic.js create mode 100644 modern-react/my-modern/module_use_util.html create mode 100644 modern-react/my-modern/module_use_util.js create mode 100644 modern-react/my-modern/number.html create mode 100644 modern-react/my-modern/number.js create mode 100644 modern-react/my-modern/obj_computed.html create mode 100644 modern-react/my-modern/obj_computed.js create mode 100644 modern-react/my-modern/obj_method.html create mode 100644 modern-react/my-modern/obj_method.js create mode 100644 modern-react/my-modern/obj_prop.html create mode 100644 modern-react/my-modern/obj_prop.js create mode 100644 modern-react/my-modern/optional.html create mode 100644 modern-react/my-modern/optional.js create mode 100644 modern-react/my-modern/package.json create mode 100644 modern-react/my-modern/template.html create mode 100644 modern-react/my-modern/template.js create mode 100644 modern-react/my-next/README.md create mode 100644 modern-react/my-next/jsconfig.json create mode 100644 modern-react/my-next/next.config.mjs create mode 100644 modern-react/my-next/package-lock.json create mode 100644 modern-react/my-next/package.json create mode 100644 modern-react/my-next/postcss.config.mjs create mode 100644 modern-react/my-next/prisma/dev.db create mode 100644 modern-react/my-next/prisma/schema.prisma create mode 100644 modern-react/my-next/public/next.svg create mode 100644 modern-react/my-next/public/vercel.svg create mode 100644 modern-react/my-next/src/app/books/[[...keyword]]/layout.js create mode 100644 modern-react/my-next/src/app/books/[[...keyword]]/loading.js create mode 100644 modern-react/my-next/src/app/books/[[...keyword]]/page.js create mode 100644 modern-react/my-next/src/app/edit/[id]/page.js create mode 100644 modern-react/my-next/src/app/favicon.ico create mode 100644 modern-react/my-next/src/app/globals.css create mode 100644 modern-react/my-next/src/app/layout.js create mode 100644 modern-react/my-next/src/app/page.js create mode 100644 modern-react/my-next/src/components/BookDetails.js create mode 100644 modern-react/my-next/src/components/FormEdit.js create mode 100644 modern-react/my-next/src/components/LinkedBookDetails.js create mode 100644 modern-react/my-next/src/lib/actions.js create mode 100644 modern-react/my-next/src/lib/getter.js create mode 100644 modern-react/my-next/src/lib/prisma.js create mode 100644 modern-react/my-next/tailwind.config.js create mode 100644 modern-react/my-react-ts/README.md create mode 100644 modern-react/my-react-ts/package-lock.json create mode 100644 modern-react/my-react-ts/package.json create mode 100644 modern-react/my-react-ts/public/favicon.ico create mode 100644 modern-react/my-react-ts/public/index.html create mode 100644 modern-react/my-react-ts/public/logo192.png create mode 100644 modern-react/my-react-ts/public/logo512.png create mode 100644 modern-react/my-react-ts/public/manifest.json create mode 100644 modern-react/my-react-ts/public/robots.txt create mode 100644 modern-react/my-react-ts/src/App.css create mode 100644 modern-react/my-react-ts/src/App.test.tsx create mode 100644 modern-react/my-react-ts/src/App.tsx create mode 100644 modern-react/my-react-ts/src/Book.ts create mode 100644 modern-react/my-react-ts/src/HookReducerUp.tsx create mode 100644 modern-react/my-react-ts/src/HookThemeButton.tsx create mode 100644 modern-react/my-react-ts/src/ListTemplate.tsx create mode 100644 modern-react/my-react-ts/src/MyThemeProvider.tsx create mode 100644 modern-react/my-react-ts/src/QueryBasic.tsx create mode 100644 modern-react/my-react-ts/src/QueryPre.tsx create mode 100644 modern-react/my-react-ts/src/StateBasic.tsx create mode 100644 modern-react/my-react-ts/src/StateFormUC.tsx create mode 100644 modern-react/my-react-ts/src/StyledPanel.tsx create mode 100644 modern-react/my-react-ts/src/ThemeContext.tsx create mode 100644 modern-react/my-react-ts/src/books.ts create mode 100644 modern-react/my-react-ts/src/index.css create mode 100644 modern-react/my-react-ts/src/index.tsx create mode 100644 modern-react/my-react-ts/src/logo.svg create mode 100644 modern-react/my-react-ts/src/react-app-env.d.ts create mode 100644 modern-react/my-react-ts/src/reportWebVitals.ts create mode 100644 modern-react/my-react-ts/src/setupTests.ts create mode 100644 modern-react/my-react-ts/tsconfig.json create mode 100644 modern-react/my-react/README.md create mode 100644 modern-react/my-react/coverage/clover.xml create mode 100644 modern-react/my-react/coverage/coverage-final.json create mode 100644 modern-react/my-react/coverage/lcov-report/base.css create mode 100644 modern-react/my-react/coverage/lcov-report/block-navigation.js create mode 100644 modern-react/my-react/coverage/lcov-report/favicon.png create mode 100644 modern-react/my-react/coverage/lcov-report/index.html create mode 100644 modern-react/my-react/coverage/lcov-report/prettify.css create mode 100644 modern-react/my-react/coverage/lcov-report/prettify.js create mode 100644 modern-react/my-react/coverage/lcov-report/sort-arrow-sprite.png create mode 100644 modern-react/my-react/coverage/lcov-report/sorter.js create mode 100644 modern-react/my-react/coverage/lcov-report/src/App.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/AppClass.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/Download.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/EventArgs.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/EventArgs2.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/EventBasic.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/EventCompare.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/EventError.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/EventKey.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/EventMouse.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/EventObj.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/EventOnce.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/EventPassive.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/EventPoint.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/EventPropagation.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/ForFilter.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/ForItem.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/ForList.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/ForNest.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/ForSort.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/ListTemplate.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/MyHello.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/SelectStyle.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/StateBasic.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/StateCounter.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/StateParent.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/StyledPanel.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/TitledPanel.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/TypeProp.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/books.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap03/index.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap04/FormBasic.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap04/FormCheck.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap04/FormCheckMulti.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap04/FormFile.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap04/FormList.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap04/FormRadio.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap04/FormSelect.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap04/FormTextarea.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap04/FormYup.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap04/FromKorean.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap04/StateForm.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap04/StateFormUC.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap04/StateNest.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap04/StateNestImmer.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap04/StateNestImmer2.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap04/StateTodo.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap04/index.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap04/yup.kr.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/EmotionComp.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/EmotionJsx.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/ErrorEvent.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/ErrorEventRoot.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/ErrorFallback.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/ErrorRetryRoot.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/ErrorRetryThrow.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/ErrorRoot.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/ErrorThrow.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/HeavyUI.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/LazyBasic.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/LazyButton.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/LazyButton2.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/LazyMulti.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/MyLoading.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/PortalBasic.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/ProfilerBasic.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/StyledCommon.css.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/StyledCommon.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/StyledComp.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/StyledComp2.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/StyledGlobal.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/StyledProps.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/SuspenseResult.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/SuspenseSimple.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/ThrowPromise.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/ThrowResult.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/index.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap05/wrapPromise.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap06/FormMui.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap06/MaterialBasic.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap06/MaterialDrawer.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap06/MaterialGrid.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap06/MaterialMode.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap06/MyButton.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap06/MyButton.stories.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap06/QueryBasic.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap06/QueryPre.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap06/QuerySuspense.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap06/index.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap06/theme.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/HookCallbackRef.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/HookContext.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/HookContextChild.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/HookCustom.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/HookDeferred.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/HookDeferredTransition.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/HookEffect.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/HookMemo.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/HookMemoChild.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/HookReducer.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/HookReducerInit.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/HookReducerUp.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/HookRef.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/HookRefForward.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/HookRefNg.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/HookThemeButton.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/HookTimer.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/HookTransition.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/HookTransitionChild.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/MyTextBox.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/MyThemeProvider.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/RecoilCounter.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/RecoilTodo.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/RecoilTodoUp.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/StateEffect.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/ThemeContext.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/UseCounter.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/books.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/comments.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap07/index.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/AboutPage.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/ArticlePage.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/BookFormPage.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/BookNest.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/BookPage.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/BookQueryPage.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/BookStatePage.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/CommonErrorPage.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/FirstPage.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/InfoPage.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/InvalidParamsPage.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/MyHeader.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/MyLink.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/NotFoundPage.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/RouterApp.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/RouterCustom.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/RouterNav.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/RouterParam.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/RouterScroll.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/SearchPage.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/SecondPage.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/TopPage.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/WeatherLazyPage.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/WeatherPage.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/books.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/index.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/routesBasic.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/routesHandle.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/routesLink.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/routesMyLink.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/routesParam.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap08/routesScroll.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap09/MyUtil.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/chap09/index.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/column/MyStore.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/column/index.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/config-overrides.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/index.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/index.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/reportWebVitals.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/store/atom.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/store/atomUp.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/store/index.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/stories/Button.jsx.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/stories/Button.stories.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/stories/Header.jsx.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/stories/Header.stories.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/stories/Page.jsx.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/stories/Page.stories.js.html create mode 100644 modern-react/my-react/coverage/lcov-report/src/stories/index.html create mode 100644 modern-react/my-react/coverage/lcov.info create mode 100644 modern-react/my-react/cypress.config.js create mode 100644 modern-react/my-react/cypress/e2e/myReact.cy.js create mode 100644 modern-react/my-react/cypress/e2e/myapp.cy.js create mode 100644 modern-react/my-react/cypress/fixtures/example.json create mode 100644 modern-react/my-react/cypress/fixtures/profile.json create mode 100644 modern-react/my-react/cypress/fixtures/users.json create mode 100644 modern-react/my-react/cypress/screenshots/2-advanced-examples/misc.cy.js/my-image (1).png create mode 100644 modern-react/my-react/cypress/screenshots/2-advanced-examples/misc.cy.js/my-image.png create mode 100644 modern-react/my-react/cypress/screenshots/myapp.cy.js/template spec -- passes (failed).png create mode 100644 modern-react/my-react/cypress/support/commands.js create mode 100644 modern-react/my-react/cypress/support/e2e.js create mode 100644 modern-react/my-react/package-lock.json create mode 100644 modern-react/my-react/package.json create mode 100644 modern-react/my-react/public/favicon.ico create mode 100644 modern-react/my-react/public/image/_wings.jpg create mode 100644 modern-react/my-react/public/image/noimage.jpg create mode 100644 modern-react/my-react/public/index.html create mode 100644 modern-react/my-react/public/logo192.png create mode 100644 modern-react/my-react/public/logo512.png create mode 100644 modern-react/my-react/public/manifest.json create mode 100644 modern-react/my-react/public/robots.txt create mode 100644 modern-react/my-react/src/App.css create mode 100644 modern-react/my-react/src/App.js create mode 100644 modern-react/my-react/src/App.test.js create mode 100644 modern-react/my-react/src/AppClass.js create mode 100644 modern-react/my-react/src/chap02/class.css create mode 100644 modern-react/my-react/src/chap03/Download.js create mode 100644 modern-react/my-react/src/chap03/EventArgs.js create mode 100644 modern-react/my-react/src/chap03/EventArgs2.js create mode 100644 modern-react/my-react/src/chap03/EventBasic.js create mode 100644 modern-react/my-react/src/chap03/EventCompare.css create mode 100644 modern-react/my-react/src/chap03/EventCompare.js create mode 100644 modern-react/my-react/src/chap03/EventError.js create mode 100644 modern-react/my-react/src/chap03/EventKey.js create mode 100644 modern-react/my-react/src/chap03/EventMouse.js create mode 100644 modern-react/my-react/src/chap03/EventObj.js create mode 100644 modern-react/my-react/src/chap03/EventOnce.js create mode 100644 modern-react/my-react/src/chap03/EventPassive.css create mode 100644 modern-react/my-react/src/chap03/EventPassive.js create mode 100644 modern-react/my-react/src/chap03/EventPoint.css create mode 100644 modern-react/my-react/src/chap03/EventPoint.js create mode 100644 modern-react/my-react/src/chap03/EventPropagation.css create mode 100644 modern-react/my-react/src/chap03/EventPropagation.js create mode 100644 modern-react/my-react/src/chap03/ForFilter.js create mode 100644 modern-react/my-react/src/chap03/ForItem.js create mode 100644 modern-react/my-react/src/chap03/ForList.js create mode 100644 modern-react/my-react/src/chap03/ForNest.js create mode 100644 modern-react/my-react/src/chap03/ForSort.js create mode 100644 modern-react/my-react/src/chap03/ListTemplate.js create mode 100644 modern-react/my-react/src/chap03/MyHello.js create mode 100644 modern-react/my-react/src/chap03/SelectStyle.css create mode 100644 modern-react/my-react/src/chap03/SelectStyle.js create mode 100644 modern-react/my-react/src/chap03/StateBasic.js create mode 100644 modern-react/my-react/src/chap03/StateCounter.css create mode 100644 modern-react/my-react/src/chap03/StateCounter.js create mode 100644 modern-react/my-react/src/chap03/StateParent.js create mode 100644 modern-react/my-react/src/chap03/StyledPanel.js create mode 100644 modern-react/my-react/src/chap03/TitledPanel.js create mode 100644 modern-react/my-react/src/chap03/TypeProp.js create mode 100644 modern-react/my-react/src/chap03/books.js create mode 100644 modern-react/my-react/src/chap04/FormBasic.css create mode 100644 modern-react/my-react/src/chap04/FormBasic.js create mode 100644 modern-react/my-react/src/chap04/FormCheck.js create mode 100644 modern-react/my-react/src/chap04/FormCheckMulti.js create mode 100644 modern-react/my-react/src/chap04/FormFile.js create mode 100644 modern-react/my-react/src/chap04/FormList.js create mode 100644 modern-react/my-react/src/chap04/FormRadio.js create mode 100644 modern-react/my-react/src/chap04/FormSelect.js create mode 100644 modern-react/my-react/src/chap04/FormTextarea.js create mode 100644 modern-react/my-react/src/chap04/FormYup.js create mode 100644 modern-react/my-react/src/chap04/FromKorean.js create mode 100644 modern-react/my-react/src/chap04/StateForm.js create mode 100644 modern-react/my-react/src/chap04/StateFormUC.js create mode 100644 modern-react/my-react/src/chap04/StateNest.js create mode 100644 modern-react/my-react/src/chap04/StateNestImmer.js create mode 100644 modern-react/my-react/src/chap04/StateNestImmer2.js create mode 100644 modern-react/my-react/src/chap04/StateTodo.css create mode 100644 modern-react/my-react/src/chap04/StateTodo.js create mode 100644 modern-react/my-react/src/chap04/yup.kr.js create mode 100644 modern-react/my-react/src/chap05/EmotionComp.js create mode 100644 modern-react/my-react/src/chap05/EmotionJsx.js create mode 100644 modern-react/my-react/src/chap05/ErrorEvent.js create mode 100644 modern-react/my-react/src/chap05/ErrorEventRoot.js create mode 100644 modern-react/my-react/src/chap05/ErrorFallback.js create mode 100644 modern-react/my-react/src/chap05/ErrorRetryRoot.js create mode 100644 modern-react/my-react/src/chap05/ErrorRetryThrow.js create mode 100644 modern-react/my-react/src/chap05/ErrorRoot.js create mode 100644 modern-react/my-react/src/chap05/ErrorThrow.js create mode 100644 modern-react/my-react/src/chap05/HeavyUI.js create mode 100644 modern-react/my-react/src/chap05/LazyBasic.js create mode 100644 modern-react/my-react/src/chap05/LazyButton.js create mode 100644 modern-react/my-react/src/chap05/LazyButton2.js create mode 100644 modern-react/my-react/src/chap05/LazyMulti.js create mode 100644 modern-react/my-react/src/chap05/MyLoading.js create mode 100644 modern-react/my-react/src/chap05/PortalBasic.css create mode 100644 modern-react/my-react/src/chap05/PortalBasic.js create mode 100644 modern-react/my-react/src/chap05/ProfilerBasic.js create mode 100644 modern-react/my-react/src/chap05/StyledCommon.css.js create mode 100644 modern-react/my-react/src/chap05/StyledCommon.js create mode 100644 modern-react/my-react/src/chap05/StyledComp.js create mode 100644 modern-react/my-react/src/chap05/StyledComp2.js create mode 100644 modern-react/my-react/src/chap05/StyledGlobal.js create mode 100644 modern-react/my-react/src/chap05/StyledProps.js create mode 100644 modern-react/my-react/src/chap05/SuspenseResult.js create mode 100644 modern-react/my-react/src/chap05/SuspenseSimple.js create mode 100644 modern-react/my-react/src/chap05/ThrowPromise.js create mode 100644 modern-react/my-react/src/chap05/ThrowResult.js create mode 100644 modern-react/my-react/src/chap05/wrapPromise.js create mode 100644 modern-react/my-react/src/chap06/FormMui.js create mode 100644 modern-react/my-react/src/chap06/MaterialBasic.js create mode 100644 modern-react/my-react/src/chap06/MaterialDrawer.js create mode 100644 modern-react/my-react/src/chap06/MaterialGrid.js create mode 100644 modern-react/my-react/src/chap06/MaterialMode.js create mode 100644 modern-react/my-react/src/chap06/MyButton.js create mode 100644 modern-react/my-react/src/chap06/MyButton.mdx create mode 100644 modern-react/my-react/src/chap06/MyButton.stories.js create mode 100644 modern-react/my-react/src/chap06/QueryBasic.js create mode 100644 modern-react/my-react/src/chap06/QueryPre.js create mode 100644 modern-react/my-react/src/chap06/QuerySuspense.js create mode 100644 modern-react/my-react/src/chap06/theme.js create mode 100644 modern-react/my-react/src/chap07/HookCallbackRef.js create mode 100644 modern-react/my-react/src/chap07/HookContext.js create mode 100644 modern-react/my-react/src/chap07/HookContextChild.js create mode 100644 modern-react/my-react/src/chap07/HookCustom.js create mode 100644 modern-react/my-react/src/chap07/HookDeferred.js create mode 100644 modern-react/my-react/src/chap07/HookDeferredTransition.js create mode 100644 modern-react/my-react/src/chap07/HookEffect.js create mode 100644 modern-react/my-react/src/chap07/HookMemo.js create mode 100644 modern-react/my-react/src/chap07/HookMemoChild.js create mode 100644 modern-react/my-react/src/chap07/HookReducer.js create mode 100644 modern-react/my-react/src/chap07/HookReducerInit.js create mode 100644 modern-react/my-react/src/chap07/HookReducerUp.js create mode 100644 modern-react/my-react/src/chap07/HookRef.js create mode 100644 modern-react/my-react/src/chap07/HookRefForward.js create mode 100644 modern-react/my-react/src/chap07/HookRefNg.js create mode 100644 modern-react/my-react/src/chap07/HookThemeButton.js create mode 100644 modern-react/my-react/src/chap07/HookTimer.css create mode 100644 modern-react/my-react/src/chap07/HookTimer.js create mode 100644 modern-react/my-react/src/chap07/HookTransition.js create mode 100644 modern-react/my-react/src/chap07/HookTransitionChild.js create mode 100644 modern-react/my-react/src/chap07/MyTextBox.js create mode 100644 modern-react/my-react/src/chap07/MyThemeProvider.js create mode 100644 modern-react/my-react/src/chap07/RecoilCounter.js create mode 100644 modern-react/my-react/src/chap07/RecoilTodo.js create mode 100644 modern-react/my-react/src/chap07/RecoilTodoUp.js create mode 100644 modern-react/my-react/src/chap07/StateEffect.js create mode 100644 modern-react/my-react/src/chap07/ThemeContext.js create mode 100644 modern-react/my-react/src/chap07/UseCounter.js create mode 100644 modern-react/my-react/src/chap07/books.js create mode 100644 modern-react/my-react/src/chap07/comments.js create mode 100644 modern-react/my-react/src/chap08/AboutPage.js create mode 100644 modern-react/my-react/src/chap08/ArticlePage.js create mode 100644 modern-react/my-react/src/chap08/BookFormPage.js create mode 100644 modern-react/my-react/src/chap08/BookNest.js create mode 100644 modern-react/my-react/src/chap08/BookPage.js create mode 100644 modern-react/my-react/src/chap08/BookQueryPage.js create mode 100644 modern-react/my-react/src/chap08/BookStatePage.js create mode 100644 modern-react/my-react/src/chap08/CommonErrorPage.js create mode 100644 modern-react/my-react/src/chap08/FirstPage.js create mode 100644 modern-react/my-react/src/chap08/InfoPage.js create mode 100644 modern-react/my-react/src/chap08/InvalidParamsPage.js create mode 100644 modern-react/my-react/src/chap08/MyHeader.js create mode 100644 modern-react/my-react/src/chap08/MyLink.js create mode 100644 modern-react/my-react/src/chap08/NotFoundPage.js create mode 100644 modern-react/my-react/src/chap08/RouterApp.js create mode 100644 modern-react/my-react/src/chap08/RouterCustom.js create mode 100644 modern-react/my-react/src/chap08/RouterNav.css create mode 100644 modern-react/my-react/src/chap08/RouterNav.js create mode 100644 modern-react/my-react/src/chap08/RouterParam.js create mode 100644 modern-react/my-react/src/chap08/RouterScroll.js create mode 100644 modern-react/my-react/src/chap08/SearchPage.js create mode 100644 modern-react/my-react/src/chap08/SecondPage.js create mode 100644 modern-react/my-react/src/chap08/TopPage.js create mode 100644 modern-react/my-react/src/chap08/WeatherLazyPage.js create mode 100644 modern-react/my-react/src/chap08/WeatherPage.js create mode 100644 modern-react/my-react/src/chap08/books.js create mode 100644 modern-react/my-react/src/chap08/routesBasic.js create mode 100644 modern-react/my-react/src/chap08/routesHandle.js create mode 100644 modern-react/my-react/src/chap08/routesLink.js create mode 100644 modern-react/my-react/src/chap08/routesMyLink.js create mode 100644 modern-react/my-react/src/chap08/routesParam.js create mode 100644 modern-react/my-react/src/chap08/routesScroll.js create mode 100644 modern-react/my-react/src/chap09/ForNest.test.js create mode 100644 modern-react/my-react/src/chap09/HookThemeButton.test.js create mode 100644 modern-react/my-react/src/chap09/HookTimer.test.js create mode 100644 modern-react/my-react/src/chap09/MyUtil.js create mode 100644 modern-react/my-react/src/chap09/MyUtil.test.js create mode 100644 modern-react/my-react/src/chap09/QueryPre.test.js create mode 100644 modern-react/my-react/src/chap09/QueryPreMsw.test.js create mode 100644 modern-react/my-react/src/chap09/StateBasic.test.js create mode 100644 modern-react/my-react/src/column/MyStore.js create mode 100644 modern-react/my-react/src/config-overrides.js create mode 100644 modern-react/my-react/src/image/dl.png create mode 100644 modern-react/my-react/src/image/ico_download.gif create mode 100644 modern-react/my-react/src/index.css create mode 100644 modern-react/my-react/src/index.js create mode 100644 modern-react/my-react/src/logo.svg create mode 100644 modern-react/my-react/src/reportWebVitals.js create mode 100644 modern-react/my-react/src/setupTests.js create mode 100644 modern-react/my-react/src/store/atom.js create mode 100644 modern-react/my-react/src/store/atomUp.js create mode 100644 modern-react/my-react/src/stories/Button.jsx create mode 100644 modern-react/my-react/src/stories/Button.stories.js create mode 100644 modern-react/my-react/src/stories/Configure.mdx create mode 100644 modern-react/my-react/src/stories/Header.jsx create mode 100644 modern-react/my-react/src/stories/Header.stories.js create mode 100644 modern-react/my-react/src/stories/Page.jsx create mode 100644 modern-react/my-react/src/stories/Page.stories.js create mode 100644 modern-react/my-react/src/stories/assets/accessibility.png create mode 100644 modern-react/my-react/src/stories/assets/accessibility.svg create mode 100644 modern-react/my-react/src/stories/assets/addon-library.png create mode 100644 modern-react/my-react/src/stories/assets/assets.png create mode 100644 modern-react/my-react/src/stories/assets/avif-test-image.avif create mode 100644 modern-react/my-react/src/stories/assets/context.png create mode 100644 modern-react/my-react/src/stories/assets/discord.svg create mode 100644 modern-react/my-react/src/stories/assets/docs.png create mode 100644 modern-react/my-react/src/stories/assets/figma-plugin.png create mode 100644 modern-react/my-react/src/stories/assets/github.svg create mode 100644 modern-react/my-react/src/stories/assets/share.png create mode 100644 modern-react/my-react/src/stories/assets/styling.png create mode 100644 modern-react/my-react/src/stories/assets/testing.png create mode 100644 modern-react/my-react/src/stories/assets/theming.png create mode 100644 modern-react/my-react/src/stories/assets/tutorials.svg create mode 100644 modern-react/my-react/src/stories/assets/youtube.svg create mode 100644 modern-react/my-react/src/stories/button.css create mode 100644 modern-react/my-react/src/stories/header.css create mode 100644 modern-react/my-react/src/stories/page.css create mode 100644 modern-react/my-styled/README.md create mode 100644 modern-react/my-styled/config/env.js create mode 100644 modern-react/my-styled/config/getHttpsConfig.js create mode 100644 modern-react/my-styled/config/jest/babelTransform.js create mode 100644 modern-react/my-styled/config/jest/cssTransform.js create mode 100644 modern-react/my-styled/config/jest/fileTransform.js create mode 100644 modern-react/my-styled/config/modules.js create mode 100644 modern-react/my-styled/config/paths.js create mode 100644 modern-react/my-styled/config/webpack.config.js create mode 100644 modern-react/my-styled/config/webpack/persistentCache/createEnvironmentHash.js create mode 100644 modern-react/my-styled/config/webpackDevServer.config.js create mode 100644 modern-react/my-styled/package-lock.json create mode 100644 modern-react/my-styled/package.json create mode 100644 modern-react/my-styled/public/favicon.ico create mode 100644 modern-react/my-styled/public/index.html create mode 100644 modern-react/my-styled/public/logo192.png create mode 100644 modern-react/my-styled/public/logo512.png create mode 100644 modern-react/my-styled/public/manifest.json create mode 100644 modern-react/my-styled/public/robots.txt create mode 100644 modern-react/my-styled/scripts/build.js create mode 100644 modern-react/my-styled/scripts/start.js create mode 100644 modern-react/my-styled/scripts/test.js create mode 100644 modern-react/my-styled/src/App.css create mode 100644 modern-react/my-styled/src/App.js create mode 100644 modern-react/my-styled/src/App.test.js create mode 100644 modern-react/my-styled/src/StyledBasic.js create mode 100644 modern-react/my-styled/src/StyledCss.css.js create mode 100644 modern-react/my-styled/src/StyledCss.js create mode 100644 modern-react/my-styled/src/StyledDynamic.js create mode 100644 modern-react/my-styled/src/index.css create mode 100644 modern-react/my-styled/src/index.js create mode 100644 modern-react/my-styled/src/logo.svg create mode 100644 modern-react/my-styled/src/reportWebVitals.js create mode 100644 modern-react/my-styled/src/setupTests.js create mode 100644 modern-react/ts/tsDataType.ts create mode 100644 modern-react/ts/tsbasic.ts diff --git a/modern-react/my-modern/App.js b/modern-react/my-modern/App.js new file mode 100644 index 0000000..83b8fe5 --- /dev/null +++ b/modern-react/my-modern/App.js @@ -0,0 +1,11 @@ +const APP_TITLE = 'React 앱'; + +export function getTriangle(base, height) { + return base * height / 2; +} + +export class Article { + getAppTitle() { + return APP_TITLE; + } +} \ No newline at end of file diff --git a/modern-react/my-modern/Util.js b/modern-react/my-modern/Util.js new file mode 100644 index 0000000..76aa507 --- /dev/null +++ b/modern-react/my-modern/Util.js @@ -0,0 +1,5 @@ +export default class Util { + static getCircleArea(radius) { + return (radius ** 2) * Math.PI; + } +} \ No newline at end of file diff --git a/modern-react/my-modern/const.html b/modern-react/my-modern/const.html new file mode 100644 index 0000000..3f00ec5 --- /dev/null +++ b/modern-react/my-modern/const.html @@ -0,0 +1,10 @@ + + + + + 리액트 입문 + + + + + diff --git a/modern-react/my-modern/const.js b/modern-react/my-modern/const.js new file mode 100644 index 0000000..982a33a --- /dev/null +++ b/modern-react/my-modern/const.js @@ -0,0 +1,3 @@ +const author = '야마다 요시히로'; +author = 'WINGS 프로젝트'; +console.log(author); diff --git a/modern-react/my-modern/destruct_list.html b/modern-react/my-modern/destruct_list.html new file mode 100644 index 0000000..0045543 --- /dev/null +++ b/modern-react/my-modern/destruct_list.html @@ -0,0 +1,10 @@ + + + + + 리액트 입문 + + + + + diff --git a/modern-react/my-modern/destruct_list.js b/modern-react/my-modern/destruct_list.js new file mode 100644 index 0000000..f240620 --- /dev/null +++ b/modern-react/my-modern/destruct_list.js @@ -0,0 +1,12 @@ +const list = [10, 20, 30]; +const [x, y, z] = list; +console.log(x, y, z); // 결과: 10 20 30 + +const [a, b] = list; +console.log(a, b); // 결과: 10 20 + +const [l, m, n, o] = list; +console.log(l, m, n, o); // 결과: 10 20 30 undefined + +const [p, , r] = list; +console.log(p, r); // 결과: 10 30 diff --git a/modern-react/my-modern/destruct_list_rest.html b/modern-react/my-modern/destruct_list_rest.html new file mode 100644 index 0000000..b919be1 --- /dev/null +++ b/modern-react/my-modern/destruct_list_rest.html @@ -0,0 +1,10 @@ + + + + + 리액트 입문 + + + + + diff --git a/modern-react/my-modern/destruct_list_rest.js b/modern-react/my-modern/destruct_list_rest.js new file mode 100644 index 0000000..86f5f28 --- /dev/null +++ b/modern-react/my-modern/destruct_list_rest.js @@ -0,0 +1,3 @@ +const list = [10, 20, 30]; +const [one, ...rest] = list; +console.log(one, rest); // 결과: 10 [20, 30] \ No newline at end of file diff --git a/modern-react/my-modern/destruct_nest.html b/modern-react/my-modern/destruct_nest.html new file mode 100644 index 0000000..0faa420 --- /dev/null +++ b/modern-react/my-modern/destruct_nest.html @@ -0,0 +1,10 @@ + + + + + 리액트 입문 + + + + + diff --git a/modern-react/my-modern/destruct_nest.js b/modern-react/my-modern/destruct_nest.js new file mode 100644 index 0000000..c6588b3 --- /dev/null +++ b/modern-react/my-modern/destruct_nest.js @@ -0,0 +1,10 @@ +const member = { + fullname: '사토 리오', + address: { + prefecture: '스즈오카현', + city: '후지에다시' + } +}; +const { address, address: { city } } = member; +console.log(address); // 결과: { prefecture: '스즈오카현', city: '후지에다시' } +console.log(city); // 결과: 후지에다시 diff --git a/modern-react/my-modern/destruct_nest_array.html b/modern-react/my-modern/destruct_nest_array.html new file mode 100644 index 0000000..bef17c4 --- /dev/null +++ b/modern-react/my-modern/destruct_nest_array.html @@ -0,0 +1,10 @@ + + + + + 리액트 입문 + + + + + diff --git a/modern-react/my-modern/destruct_nest_array.js b/modern-react/my-modern/destruct_nest_array.js new file mode 100644 index 0000000..85accba --- /dev/null +++ b/modern-react/my-modern/destruct_nest_array.js @@ -0,0 +1,3 @@ +const list = [200, [300, 301, 302]]; +const [x, [y1, y2, y3]] = list; +console.log(y1, y2, y3); // 결과: 300 301 302 \ No newline at end of file diff --git a/modern-react/my-modern/destruct_obj.html b/modern-react/my-modern/destruct_obj.html new file mode 100644 index 0000000..d50ade4 --- /dev/null +++ b/modern-react/my-modern/destruct_obj.html @@ -0,0 +1,10 @@ + + + + + 리액트 입문 + + + + + diff --git a/modern-react/my-modern/destruct_obj.js b/modern-react/my-modern/destruct_obj.js new file mode 100644 index 0000000..a8e6c5c --- /dev/null +++ b/modern-react/my-modern/destruct_obj.js @@ -0,0 +1,19 @@ +const member = { + fullname: '사토 리오', + sex: '여성', + age: 18 +}; +const { fullname, sex, memo = '---' } = member; +console.log(sex, fullname, memo); // 결과: 여성 사토 리오 --- + +// const { sex: gender } = member; +// console.log(gender); // 결과: 여성 + +// const { fullname, ...rest } = member; +// console.log(fullname); // 결과: 사토 리오 +// console.log(rest); // 결과: { sex: '여성', age: 18 } + +// let fullname, sex, memo; +// ({ fullname, sex, memo = '---' } = member); +// console.log(sex, fullname, memo); // 결과: 여성 사토 리오 --- + diff --git a/modern-react/my-modern/destruct_obj_param.html b/modern-react/my-modern/destruct_obj_param.html new file mode 100644 index 0000000..147b6b8 --- /dev/null +++ b/modern-react/my-modern/destruct_obj_param.html @@ -0,0 +1,10 @@ + + + + + 리액트 입문 + + + + + diff --git a/modern-react/my-modern/destruct_obj_param.js b/modern-react/my-modern/destruct_obj_param.js new file mode 100644 index 0000000..bb2484d --- /dev/null +++ b/modern-react/my-modern/destruct_obj_param.js @@ -0,0 +1,10 @@ +function greet({ name, age }) { + console.log(`안녕하세요, 저는 ${name}, ${age}세 입니다.`); +} + +const my = { name: '사토리오', sex: '여성', age: 18 }; +greet(my); // 결과: 안녕하세요, 저는 사토리오, 18세 입니다. + +// function greet(obj) { +// console.log(` 안녕하세요, 저는 ${obj.name}, ${obj.age}세 입니다. `); +// } diff --git a/modern-react/my-modern/func_def.html b/modern-react/my-modern/func_def.html new file mode 100644 index 0000000..26b6c92 --- /dev/null +++ b/modern-react/my-modern/func_def.html @@ -0,0 +1,10 @@ + + + + + 리액트 입문 + + + + + diff --git a/modern-react/my-modern/func_def.js b/modern-react/my-modern/func_def.js new file mode 100644 index 0000000..4ec40ef --- /dev/null +++ b/modern-react/my-modern/func_def.js @@ -0,0 +1,10 @@ +function getTrapezoidArea(upper = 1, lower = 1, height = 1) { + return (upper + lower) * height / 2; +} + +console.log(getTrapezoidArea(10, 5, 3)); // 결과: 22.5 (=(10 + 5) × 3 ÷ 2) +console.log(getTrapezoidArea(10, 5)) // 결과: 7.5 (=(10 + 5) × 1 ÷ 2) +console.log(getTrapezoidArea(10)); // 결과: 5 (=(10 + 1) × 1 ÷ 2) + + +// function getTrapezoidArea(upper = 1, lower = upper, height = upper) { ... } \ No newline at end of file diff --git a/modern-react/my-modern/func_rest.html b/modern-react/my-modern/func_rest.html new file mode 100644 index 0000000..caa28a3 --- /dev/null +++ b/modern-react/my-modern/func_rest.html @@ -0,0 +1,10 @@ + + + + + 리액트 입문 + + + + + diff --git a/modern-react/my-modern/func_rest.js b/modern-react/my-modern/func_rest.js new file mode 100644 index 0000000..73e49df --- /dev/null +++ b/modern-react/my-modern/func_rest.js @@ -0,0 +1,13 @@ +function sum(...nums) { + let result = 0; + for (const num of nums) { + result += num; + } + return result; +} + +console.log(sum(10, 25, 2)); // 결과: 37 +console.log(sum(7, 13, 25, 6, 100)); // 결과: 151 +// console.log(sum(...[10, 25, 2])); + + diff --git a/modern-react/my-modern/let.html b/modern-react/my-modern/let.html new file mode 100644 index 0000000..36a6b5e --- /dev/null +++ b/modern-react/my-modern/let.html @@ -0,0 +1,10 @@ + + + + + 리액트 입문 + + + + + diff --git a/modern-react/my-modern/let.js b/modern-react/my-modern/let.js new file mode 100644 index 0000000..bdca327 --- /dev/null +++ b/modern-react/my-modern/let.js @@ -0,0 +1,5 @@ +if (true) { + let x = 13; +} +// 블록 아래에서 선언한 변수를 참조하면 ... +console.log(x); \ No newline at end of file diff --git a/modern-react/my-modern/module_alias.html b/modern-react/my-modern/module_alias.html new file mode 100644 index 0000000..cdfcaed --- /dev/null +++ b/modern-react/my-modern/module_alias.html @@ -0,0 +1,10 @@ + + + + + 리액트 입문 + + + + + diff --git a/modern-react/my-modern/module_alias.js b/modern-react/my-modern/module_alias.js new file mode 100644 index 0000000..c14f80c --- /dev/null +++ b/modern-react/my-modern/module_alias.js @@ -0,0 +1,3 @@ +import { getTriangle as tri } from './App.js'; + +console.log(tri(10, 2)); // 결과: 10 \ No newline at end of file diff --git a/modern-react/my-modern/module_all.html b/modern-react/my-modern/module_all.html new file mode 100644 index 0000000..387cd25 --- /dev/null +++ b/modern-react/my-modern/module_all.html @@ -0,0 +1,10 @@ + + + + + 리액트 입문 + + + + + diff --git a/modern-react/my-modern/module_all.js b/modern-react/my-modern/module_all.js new file mode 100644 index 0000000..1c9fdb0 --- /dev/null +++ b/modern-react/my-modern/module_all.js @@ -0,0 +1,3 @@ +import * as app from './App.js'; + +console.log(app.getTriangle(10, 2)); // 결과: 10 \ No newline at end of file diff --git a/modern-react/my-modern/module_basic.html b/modern-react/my-modern/module_basic.html new file mode 100644 index 0000000..56d7464 --- /dev/null +++ b/modern-react/my-modern/module_basic.html @@ -0,0 +1,10 @@ + + + + + 리액트 입문 + + + + + diff --git a/modern-react/my-modern/module_basic.js b/modern-react/my-modern/module_basic.js new file mode 100644 index 0000000..478f8a9 --- /dev/null +++ b/modern-react/my-modern/module_basic.js @@ -0,0 +1,6 @@ +import { Article, getTriangle } from './App.js'; + +console.log(getTriangle(10, 5)); // 결과: 25 + +const a = new Article(); +console.log(a.getAppTitle()); // 결과: React 앱 diff --git a/modern-react/my-modern/module_dynamic.html b/modern-react/my-modern/module_dynamic.html new file mode 100644 index 0000000..aa23b1b --- /dev/null +++ b/modern-react/my-modern/module_dynamic.html @@ -0,0 +1,10 @@ + + + + + 리액트 입문 + + + + + diff --git a/modern-react/my-modern/module_dynamic.js b/modern-react/my-modern/module_dynamic.js new file mode 100644 index 0000000..54ba8fb --- /dev/null +++ b/modern-react/my-modern/module_dynamic.js @@ -0,0 +1,6 @@ +import('./App.js').then(app => { + console.log(app.getTriangle(10, 5)); // 결과: 25 + + const a = new app.Article(); + console.log(a.getAppTitle()); // 결과: React 앱 +}); \ No newline at end of file diff --git a/modern-react/my-modern/module_use_util.html b/modern-react/my-modern/module_use_util.html new file mode 100644 index 0000000..4fbdd3e --- /dev/null +++ b/modern-react/my-modern/module_use_util.html @@ -0,0 +1,10 @@ + + + + + 리액트 입문 + + + + + diff --git a/modern-react/my-modern/module_use_util.js b/modern-react/my-modern/module_use_util.js new file mode 100644 index 0000000..e3fbb5e --- /dev/null +++ b/modern-react/my-modern/module_use_util.js @@ -0,0 +1,3 @@ +import Util from './Util.js'; + +console.log(Util.getCircleArea(10)); // 결과: 314.1592653589793 diff --git a/modern-react/my-modern/number.html b/modern-react/my-modern/number.html new file mode 100644 index 0000000..7016ae9 --- /dev/null +++ b/modern-react/my-modern/number.html @@ -0,0 +1,10 @@ + + + + + 리액트 입문 + + + + + diff --git a/modern-react/my-modern/number.js b/modern-react/my-modern/number.js new file mode 100644 index 0000000..2bd4324 --- /dev/null +++ b/modern-react/my-modern/number.js @@ -0,0 +1,2 @@ +const value = 123_456_789; +console.log(value); diff --git a/modern-react/my-modern/obj_computed.html b/modern-react/my-modern/obj_computed.html new file mode 100644 index 0000000..2c06879 --- /dev/null +++ b/modern-react/my-modern/obj_computed.html @@ -0,0 +1,10 @@ + + + + + 리액트 입문 + + + + + diff --git a/modern-react/my-modern/obj_computed.js b/modern-react/my-modern/obj_computed.js new file mode 100644 index 0000000..fd47bb6 --- /dev/null +++ b/modern-react/my-modern/obj_computed.js @@ -0,0 +1,8 @@ +let i = 0; +const member = { + [`attr${++i}`]: '사토 리오', + [`attr${++i}`]: '여성', + [`attr${++i}`]: '18세' +}; +console.log(member); + // 결과: { attr1: '사토 리오', attr2: '여성', attr3: '18세' } \ No newline at end of file diff --git a/modern-react/my-modern/obj_method.html b/modern-react/my-modern/obj_method.html new file mode 100644 index 0000000..3b7f252 --- /dev/null +++ b/modern-react/my-modern/obj_method.html @@ -0,0 +1,10 @@ + + + + + 리액트 입문 + + + + + diff --git a/modern-react/my-modern/obj_method.js b/modern-react/my-modern/obj_method.js new file mode 100644 index 0000000..ddcc7c1 --- /dev/null +++ b/modern-react/my-modern/obj_method.js @@ -0,0 +1,15 @@ +const member = { + name: '사토 리오', + greet: function() { + console.log(`안녕하세요, ${this.name} 님!`); + } +} + +// const member = { +// name: '사토 리오', +// greet() { +// console.log(`안녕하세요, ${this.name} 님!`); +// } +// } + +member.greet(); \ No newline at end of file diff --git a/modern-react/my-modern/obj_prop.html b/modern-react/my-modern/obj_prop.html new file mode 100644 index 0000000..6521f06 --- /dev/null +++ b/modern-react/my-modern/obj_prop.html @@ -0,0 +1,10 @@ + + + + + 리액트 입문 + + + + + diff --git a/modern-react/my-modern/obj_prop.js b/modern-react/my-modern/obj_prop.js new file mode 100644 index 0000000..9e4190c --- /dev/null +++ b/modern-react/my-modern/obj_prop.js @@ -0,0 +1,7 @@ +const title = '리액트 입문'; +const price = 500; + +const book = { title, price }; +// const book = { title: title, price: price }; + +console.log(book); \ No newline at end of file diff --git a/modern-react/my-modern/optional.html b/modern-react/my-modern/optional.html new file mode 100644 index 0000000..8172a59 --- /dev/null +++ b/modern-react/my-modern/optional.html @@ -0,0 +1,10 @@ + + + + + 리액트 입문 + + + + + diff --git a/modern-react/my-modern/optional.js b/modern-react/my-modern/optional.js new file mode 100644 index 0000000..1182a9e --- /dev/null +++ b/modern-react/my-modern/optional.js @@ -0,0 +1,13 @@ +const str = null; +console.log(str.substring(1)); + +// if (str !== null && str !== undefined) { +// console.log(str.substring(1)); +// } + +// const str = null; +// console.log(str?.substring(1)); + +// const str = '위키북스'; +// console.log(str?.substring(1)); + diff --git a/modern-react/my-modern/package.json b/modern-react/my-modern/package.json new file mode 100644 index 0000000..a04be24 --- /dev/null +++ b/modern-react/my-modern/package.json @@ -0,0 +1,13 @@ +{ + "name": "my-modern", + "version": "1.0.0", + "description": "", + "main": "App.js", + "type": "module", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC" +} \ No newline at end of file diff --git a/modern-react/my-modern/template.html b/modern-react/my-modern/template.html new file mode 100644 index 0000000..12ac636 --- /dev/null +++ b/modern-react/my-modern/template.html @@ -0,0 +1,10 @@ + + + + + 리액트 입문 + + + + + diff --git a/modern-react/my-modern/template.js b/modern-react/my-modern/template.js new file mode 100644 index 0000000..18ac6ef --- /dev/null +++ b/modern-react/my-modern/template.js @@ -0,0 +1,5 @@ +const fullname = '홍길동'; +const msg = `안녕하세요, ${fullname} 님! +오늘 하루 잘 지내셨나요?`; +console.log(msg); + diff --git a/modern-react/my-next/README.md b/modern-react/my-next/README.md new file mode 100644 index 0000000..0dc9ea2 --- /dev/null +++ b/modern-react/my-next/README.md @@ -0,0 +1,36 @@ +This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.js`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/modern-react/my-next/jsconfig.json b/modern-react/my-next/jsconfig.json new file mode 100644 index 0000000..b8d6842 --- /dev/null +++ b/modern-react/my-next/jsconfig.json @@ -0,0 +1,7 @@ +{ + "compilerOptions": { + "paths": { + "@/*": ["./src/*"] + } + } +} diff --git a/modern-react/my-next/next.config.mjs b/modern-react/my-next/next.config.mjs new file mode 100644 index 0000000..e82443c --- /dev/null +++ b/modern-react/my-next/next.config.mjs @@ -0,0 +1,18 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + experimental: { + serverActions: true, + }, + images: { + remotePatterns: [ + { + hostname: 'books.google.com' + }, + { + hostname: 'wikibook.co.kr' + }, + ] + }, +}; + +export default nextConfig; diff --git a/modern-react/my-next/package-lock.json b/modern-react/my-next/package-lock.json new file mode 100644 index 0000000..65a59ff --- /dev/null +++ b/modern-react/my-next/package-lock.json @@ -0,0 +1,5029 @@ +{ + "name": "my-next", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "my-next", + "version": "0.1.0", + "dependencies": { + "@prisma/client": "^5.12.1", + "@vercel/postgres": "^0.8.0", + "next": "14.2.2", + "react": "^18", + "react-dom": "^18" + }, + "devDependencies": { + "eslint": "^8", + "eslint-config-next": "14.2.2", + "postcss": "^8", + "prisma": "^5.17.0", + "tailwindcss": "^3.4.1" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/runtime": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", + "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "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, + "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/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.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": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.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, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "dev": true + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "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, + "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, + "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, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "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, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@neondatabase/serverless": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@neondatabase/serverless/-/serverless-0.7.2.tgz", + "integrity": "sha512-wU3WA2uTyNO7wjPs3Mg0G01jztAxUxzd9/mskMmtPwPTjf7JKWi9AW5/puOGXLxmZ9PVgRFeBVRVYq5nBPhsCg==", + "dependencies": { + "@types/pg": "8.6.6" + } + }, + "node_modules/@next/env": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.2.tgz", + "integrity": "sha512-sk72qRfM1Q90XZWYRoJKu/UWlTgihrASiYw/scb15u+tyzcze3bOuJ/UV6TBOQEeUaxOkRqGeuGUdiiuxc5oqw==" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.2.tgz", + "integrity": "sha512-q+Ec2648JtBpKiu/FSJm8HAsFXlNvioHeBCbTP12T1SGcHYwhqHULSfQgFkPgHDu3kzNp2Kem4J54bK4rPQ5SQ==", + "dev": true, + "dependencies": { + "glob": "10.3.10" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.2.tgz", + "integrity": "sha512-3iPgMhzbalizGwHNFUcGnDhFPSgVBHQ8aqSTAMxB5BvJG0oYrDf1WOJZlbXBgunOEj/8KMVbejEur/FpvFsgFQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.2.tgz", + "integrity": "sha512-x7Afi/jt0ZBRUZHTi49yyej4o8znfIMHO4RvThuoc0P+uli8Jd99y5GKjxoYunPKsXL09xBXEM1+OQy2xEL0Ag==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.2.tgz", + "integrity": "sha512-zbfPtkk7L41ODMJwSp5VbmPozPmMMQrzAc0HAUomVeVIIwlDGs/UCqLJvLNDt4jpWgc21SjjyIn762lNGrMaUA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.2.tgz", + "integrity": "sha512-wPbS3pI/JU16rm3XdLvvTmlsmm1nd+sBa2ohXgBZcShX4TgOjD4R+RqHKlI1cjo/jDZKXt6OxmcU0Iys0OC/yg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.2.tgz", + "integrity": "sha512-NqWOHqqq8iC9tuHvZxjQ2tX+jWy2X9y8NX2mcB4sj2bIccuCxbIZrU/ThFPZZPauygajZuVQ6zediejQHwZHwQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.2.tgz", + "integrity": "sha512-lGepHhwb9sGhCcU7999+iK1ZZT+6rrIoVg40MP7DZski9GIZP80wORSbt5kJzh9v2x2ev2lxC6VgwMQT0PcgTA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.2.tgz", + "integrity": "sha512-TZSh/48SfcLEQ4rD25VVn2kdIgUWmMflRX3OiyPwGNXn3NiyPqhqei/BaqCYXViIQ+6QsG9R0C8LftMqy8JPMA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.2.tgz", + "integrity": "sha512-M0tBVNMEBJN2ZNQWlcekMn6pvLria7Sa2Fai5znm7CCJz4pP3lrvlSxhKdkCerk0D9E0bqx5yAo3o2Q7RrD4gA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.2.tgz", + "integrity": "sha512-a/20E/wtTJZ3Ykv3f/8F0l7TtgQa2LWHU2oNB9bsu0VjqGuGGHmm/q6waoUNQYTVPYrrlxxaHjJcDV6aiSTt/w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "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, + "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, + "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, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@prisma/client": { + "version": "5.12.1", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.12.1.tgz", + "integrity": "sha512-6/JnizEdlSBxDIdiLbrBdMW5NqDxOmhXAJaNXiPpgzAPr/nLZResT6MMpbOHLo5yAbQ1Vv5UU8PTPRzb0WIxdA==", + "hasInstallScript": true, + "engines": { + "node": ">=16.13" + }, + "peerDependencies": { + "prisma": "*" + }, + "peerDependenciesMeta": { + "prisma": { + "optional": true + } + } + }, + "node_modules/@prisma/debug": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-5.17.0.tgz", + "integrity": "sha512-l7+AteR3P8FXiYyo496zkuoiJ5r9jLQEdUuxIxNCN1ud8rdbH3GTxm+f+dCyaSv9l9WY+29L9czaVRXz9mULfg==", + "devOptional": true + }, + "node_modules/@prisma/engines": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.17.0.tgz", + "integrity": "sha512-+r+Nf+JP210Jur+/X8SIPLtz+uW9YA4QO5IXA+KcSOBe/shT47bCcRMTYCbOESw3FFYFTwe7vU6KTWHKPiwvtg==", + "devOptional": true, + "hasInstallScript": true, + "dependencies": { + "@prisma/debug": "5.17.0", + "@prisma/engines-version": "5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053", + "@prisma/fetch-engine": "5.17.0", + "@prisma/get-platform": "5.17.0" + } + }, + "node_modules/@prisma/engines-version": { + "version": "5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053.tgz", + "integrity": "sha512-tUuxZZysZDcrk5oaNOdrBnnkoTtmNQPkzINFDjz7eG6vcs9AVDmA/F6K5Plsb2aQc/l5M2EnFqn3htng9FA4hg==", + "devOptional": true + }, + "node_modules/@prisma/fetch-engine": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.17.0.tgz", + "integrity": "sha512-ESxiOaHuC488ilLPnrv/tM2KrPhQB5TRris/IeIV4ZvUuKeaicCl4Xj/JCQeG9IlxqOgf1cCg5h5vAzlewN91Q==", + "devOptional": true, + "dependencies": { + "@prisma/debug": "5.17.0", + "@prisma/engines-version": "5.17.0-31.393aa359c9ad4a4bb28630fb5613f9c281cde053", + "@prisma/get-platform": "5.17.0" + } + }, + "node_modules/@prisma/get-platform": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.17.0.tgz", + "integrity": "sha512-UlDgbRozCP1rfJ5Tlkf3Cnftb6srGrEQ4Nm3og+1Se2gWmCZ0hmPIi+tQikGDUVLlvOWx3Gyi9LzgRP+HTXV9w==", + "devOptional": true, + "dependencies": { + "@prisma/debug": "5.17.0" + } + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.2.tgz", + "integrity": "sha512-hw437iINopmQuxWPSUEvqE56NCPsiU8N4AYtfHmJFckclktzK9YQJieD3XkDCDH4OjL+C7zgPUh73R/nrcHrqw==", + "dev": true + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" + }, + "node_modules/@swc/helpers": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz", + "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==", + "dependencies": { + "@swc/counter": "^0.1.3", + "tslib": "^2.4.0" + } + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.12.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", + "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/pg": { + "version": "8.6.6", + "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.6.6.tgz", + "integrity": "sha512-O2xNmXebtwVekJDD+02udOncjVcMZQuTEQEMpKJ0ZRf5E7/9JJX3izhKUcUifBkyKpljyUM6BTgy2trmviKlpw==", + "dependencies": { + "@types/node": "*", + "pg-protocol": "*", + "pg-types": "^2.2.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.2.0.tgz", + "integrity": "sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "7.2.0", + "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/typescript-estree": "7.2.0", + "@typescript-eslint/visitor-keys": "7.2.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz", + "integrity": "sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/visitor-keys": "7.2.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.2.0.tgz", + "integrity": "sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz", + "integrity": "sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/visitor-keys": "7.2.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz", + "integrity": "sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.2.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vercel/postgres": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@vercel/postgres/-/postgres-0.8.0.tgz", + "integrity": "sha512-/QUV9ExwaNdKooRjOQqvrKNVnRvsaXeukPNI5DB1ovUTesglfR/fparw7ngo1KUWWKIVpEj2TRrA+ObRHRdaLg==", + "dependencies": { + "@neondatabase/serverless": "0.7.2", + "bufferutil": "4.0.8", + "utf-8-validate": "6.0.3", + "ws": "8.14.2" + }, + "engines": { + "node": ">=14.6" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "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, + "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, + "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, + "engines": { + "node": ">=8" + } + }, + "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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "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 + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "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, + "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, + "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-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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, + "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.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "dev": true, + "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, + "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, + "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.toreversed": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", + "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz", + "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.1.0", + "es-shim-unscopables": "^1.0.2" + } + }, + "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, + "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/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true + }, + "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, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", + "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", + "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", + "dev": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "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 + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bufferutil": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", + "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "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, + "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, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001611", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001611.tgz", + "integrity": "sha512-19NuN1/3PjA3QI8Eki55N8my4LzfkMCRLgCVfrl/slbSAchQfV0+GwjPrK3rq37As4UCLlM/DHajbKkAqbv92Q==", + "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" + } + ] + }, + "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, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "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 + }, + "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, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true + }, + "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, + "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, + "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, + "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.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "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 + }, + "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, + "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, + "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/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/enhanced-resolve": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", + "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "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, + "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, + "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, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.18", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.18.tgz", + "integrity": "sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "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, + "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, + "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, + "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, + "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/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.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": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-next": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.2.tgz", + "integrity": "sha512-12/uFc0KX+wUs7EDpOUGKMXBXZJiBVGdK5/m/QgXOCg2mQ0bQWoKSWNrCeOg7Vum6Kw1d1TW453W6xh+GbHquw==", + "dev": true, + "dependencies": { + "@next/eslint-plugin-next": "14.2.2", + "@rushstack/eslint-patch": "^1.3.3", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || 7.0.0 - 7.2.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" + }, + "peerDependencies": { + "eslint": "^7.23.0 || ^8.0.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", + "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "enhanced-resolve": "^5.12.0", + "eslint-module-utils": "^2.7.4", + "fast-glob": "^3.3.1", + "get-tsconfig": "^4.5.0", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/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, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", + "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.23.2", + "aria-query": "^5.3.0", + "array-includes": "^3.1.7", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "=4.7.0", + "axobject-query": "^3.2.1", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "es-iterator-helpers": "^1.0.15", + "hasown": "^2.0.0", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.entries": "^1.1.7", + "object.fromentries": "^2.0.7" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.34.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz", + "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlast": "^1.2.4", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.toreversed": "^1.1.2", + "array.prototype.tosorted": "^1.1.3", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.17", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.7", + "object.fromentries": "^2.0.7", + "object.hasown": "^1.1.3", + "object.values": "^1.1.7", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.10" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/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, + "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/eslint-plugin-react/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, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "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, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "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, + "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, + "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, + "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 + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "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 + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "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": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "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 + }, + "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, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "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, + "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, + "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, + "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, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "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, + "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/get-tsconfig": { + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.3.tgz", + "integrity": "sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "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, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "engines": { + "node": ">=8" + } + }, + "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, + "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, + "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, + "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, + "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, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "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, + "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, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "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, + "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, + "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, + "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, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "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, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "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, + "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, + "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, + "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, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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, + "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, + "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, + "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, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "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, + "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, + "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, + "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, + "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, + "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, + "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, + "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, + "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, + "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, + "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, + "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 + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "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, + "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/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "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==" + }, + "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, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "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 + }, + "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 + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "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, + "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, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", + "dev": true + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "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, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "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, + "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 + }, + "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==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "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" + } + ], + "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 + }, + "node_modules/next": { + "version": "14.2.2", + "resolved": "https://registry.npmjs.org/next/-/next-14.2.2.tgz", + "integrity": "sha512-oGwUaa2bCs47FbuxWMpOoXtBMPYpvTPgdZr3UAo+pu7Ns00z9otmYpoeV1HEiYL06AlRQQIA/ypK526KjJfaxg==", + "dependencies": { + "@next/env": "14.2.2", + "@swc/helpers": "0.5.5", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001579", + "graceful-fs": "^4.2.11", + "postcss": "8.4.31", + "styled-jsx": "5.1.1" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=18.17.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "14.2.2", + "@next/swc-darwin-x64": "14.2.2", + "@next/swc-linux-arm64-gnu": "14.2.2", + "@next/swc-linux-arm64-musl": "14.2.2", + "@next/swc-linux-x64-gnu": "14.2.2", + "@next/swc-linux-x64-musl": "14.2.2", + "@next/swc-win32-arm64-msvc": "14.2.2", + "@next/swc-win32-ia32-msvc": "14.2.2", + "@next/swc-win32-x64-msvc": "14.2.2" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.41.2", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "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" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", + "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "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, + "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, + "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, + "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, + "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.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.hasown": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", + "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", + "dev": true, + "dependencies": { + "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, + "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/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "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, + "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, + "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, + "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, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "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 + }, + "node_modules/path-scurry": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", + "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.1.tgz", + "integrity": "sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==" + }, + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "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, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "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" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", + "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", + "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "dev": true + }, + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prisma": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-5.17.0.tgz", + "integrity": "sha512-m4UWkN5lBE6yevqeOxEvmepnL5cNPEjzMw2IqDB59AcEV6w7D8vGljDLd1gPFH+W6gUxw9x7/RmN5dCS/WTPxA==", + "devOptional": true, + "hasInstallScript": true, + "dependencies": { + "@prisma/engines": "5.17.0" + }, + "bin": { + "prisma": "build/index.js" + }, + "engines": { + "node": ">=16.13" + } + }, + "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, + "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, + "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" + } + ] + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "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 + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "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, + "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/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, + "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, + "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": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "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, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "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, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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" + } + ], + "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, + "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, + "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.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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, + "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, + "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, + "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, + "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, + "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/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "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, + "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.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, + "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, + "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, + "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, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "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, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", + "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", + "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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 + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "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, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "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, + "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, + "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, + "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, + "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/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "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, + "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/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "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, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/utf-8-validate": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-6.0.3.tgz", + "integrity": "sha512-uIuGf9TWQ/y+0Lp+KGZCMuJWc3N9BHA+l/UmHd/oUHwJJDeysyTRxNQVkbzsIWfGFbRe3OcgML/i0mvVRPOyDA==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": 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, + "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, + "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.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dev": true, + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "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.1", + "which-typed-array": "^1.1.9" + }, + "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, + "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, + "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/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "8.14.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", + "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", + "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", + "dev": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/modern-react/my-next/package.json b/modern-react/my-next/package.json new file mode 100644 index 0000000..f7b5f40 --- /dev/null +++ b/modern-react/my-next/package.json @@ -0,0 +1,26 @@ +{ + "name": "my-next", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "vercel-build": "prisma generate && next build", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "@prisma/client": "^5.12.1", + "@vercel/postgres": "^0.8.0", + "next": "14.2.2", + "react": "^18", + "react-dom": "^18" + }, + "devDependencies": { + "eslint": "^8", + "eslint-config-next": "14.2.2", + "postcss": "^8", + "prisma": "^5.17.0", + "tailwindcss": "^3.4.1" + } +} diff --git a/modern-react/my-next/postcss.config.mjs b/modern-react/my-next/postcss.config.mjs new file mode 100644 index 0000000..1a69fd2 --- /dev/null +++ b/modern-react/my-next/postcss.config.mjs @@ -0,0 +1,8 @@ +/** @type {import('postcss-load-config').Config} */ +const config = { + plugins: { + tailwindcss: {}, + }, +}; + +export default config; diff --git a/modern-react/my-next/prisma/dev.db b/modern-react/my-next/prisma/dev.db new file mode 100644 index 0000000000000000000000000000000000000000..e47406a7c104ff40eccc98bac6bc1d71619fbb5e GIT binary patch literal 12288 zcmeI$-D}fO6aes~n@)#YecMA3&I*1(ZI-T^&L`^@rP$WlWw1Tfw#(MocByH$3BIhQ zgRxan`T>(}6fDkxV3}hS#8<(;!2cmPeHVPt+Zl!w%bp$Qkei$I-jkgBOJ9E)P?9QzY0?B;v*`5;$G3$E;htyO zC&Ku2Fen7XP-}Eb^!O*uOD3hH(zcM^>o+WC2Rt^Gkr(HrXX&R2`c@yJYgUfVLnda3 zHxF9x_UBsvs6N`*{_hOkFi-#mPyhu`00mG01yBG5Pyhu`;C~ayUSTg-GgmKJE)PCG zlZo^Ce%{#0fnKkWdd1kzflCP%s;gvk-2ui%t+|#rwhu_72&7nS7Tz0G zI(I8a_P;=Lt75#_Bm1QZzm!l?lA3(nx=OZ24l^{ \ No newline at end of file diff --git a/modern-react/my-next/public/vercel.svg b/modern-react/my-next/public/vercel.svg new file mode 100644 index 0000000..d2f8422 --- /dev/null +++ b/modern-react/my-next/public/vercel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/modern-react/my-next/src/app/books/[[...keyword]]/layout.js b/modern-react/my-next/src/app/books/[[...keyword]]/layout.js new file mode 100644 index 0000000..e4b8ea4 --- /dev/null +++ b/modern-react/my-next/src/app/books/[[...keyword]]/layout.js @@ -0,0 +1,28 @@ +'use client'; + +import { useRouter } from 'next/navigation'; +import { useRef } from 'react'; + +// "/books/keyword" 아래에 적용되는 레이아웃 +export default function BooksLayout({ children }) { + const router = useRouter(); + const txtKeyword = useRef(null); + // [검색] 버튼 클릭 시 '/books/keyword'로 리디렉션된다. + const handleSearch = () => { + router.push(`/books/${txtKeyword.current.value}`); + }; + + return ( + <> +
+ + +
+
+ {children} + + ); +} \ No newline at end of file diff --git a/modern-react/my-next/src/app/books/[[...keyword]]/loading.js b/modern-react/my-next/src/app/books/[[...keyword]]/loading.js new file mode 100644 index 0000000..43d988d --- /dev/null +++ b/modern-react/my-next/src/app/books/[[...keyword]]/loading.js @@ -0,0 +1,7 @@ +export default function ApiLoading() { + return ( +
+
+
+ ); +} \ No newline at end of file diff --git a/modern-react/my-next/src/app/books/[[...keyword]]/page.js b/modern-react/my-next/src/app/books/[[...keyword]]/page.js new file mode 100644 index 0000000..9aad2c1 --- /dev/null +++ b/modern-react/my-next/src/app/books/[[...keyword]]/page.js @@ -0,0 +1,16 @@ +import LinkedBookDetails from '@/components/LinkedBookDetails'; +import { getBooksByKeyword } from '@/lib/getter'; + +// 루트 매개변수 키워드 가져오기(기본값은 리액트) +export default async function BookResult({ params: { keyword = '리액트' } }) { + // 주어진 키워드로 도서 정보 검색 + const books = await getBooksByKeyword(keyword); + return ( + <> + {/* 획득한 도서 목록 보기 */} + {books.map((b,i) => ( + + ))} + + ); +} diff --git a/modern-react/my-next/src/app/edit/[id]/page.js b/modern-react/my-next/src/app/edit/[id]/page.js new file mode 100644 index 0000000..03cca1a --- /dev/null +++ b/modern-react/my-next/src/app/edit/[id]/page.js @@ -0,0 +1,30 @@ +// export default function EditPage({ params }) { +// return

No. {params.id}의 리뷰를 표시하고 있다.

; +// } + + + +// Code 11-4-12 +import BookDetails from '@/components/BookDetails'; +import FormEdit from '@/components/FormEdit'; +import { getBookById, getReviewById } from '@/lib/getter'; + +export default async function EditPage({ params }) { + const book = await getBookById(params.id); + const review = await getReviewById(params.id); + // 'YYYY-MM-DD' 형식의 날짜 생성 + const read = (review?.read || new Date()).toLocaleDateString('sv-SE'); + + // const read = (review?.read || new Date()).toLocaleDateString('ko-KR', + // { year: 'numeric', month: '2-digit', day: '2-digit' } + // ).replaceAll('/', '-') + + return ( +
+ +
+ {/* 편집 양식 생성 */} + +
+ ); +} \ No newline at end of file diff --git a/modern-react/my-next/src/app/favicon.ico b/modern-react/my-next/src/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 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 LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/modern-react/my-next/src/app/globals.css b/modern-react/my-next/src/app/globals.css new file mode 100644 index 0000000..2df83f9 --- /dev/null +++ b/modern-react/my-next/src/app/globals.css @@ -0,0 +1,34 @@ +/* Tailwind CSS에서 사용하는 스타일 정의 활성화 */ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --foreground-rgb: 0, 0, 0; + --background-start-rgb: 214, 219, 220; + --background-end-rgb: 255, 255, 255; +} + +@media (prefers-color-scheme: dark) { + :root { + --foreground-rgb: 255, 255, 255; + --background-start-rgb: 0, 0, 0; + --background-end-rgb: 0, 0, 0; + } +} + +body { + color: rgb(var(--foreground-rgb)); + background: linear-gradient( + to bottom, + transparent, + rgb(var(--background-end-rgb)) + ) + rgb(var(--background-start-rgb)); +} + +@layer utilities { + .text-balance { + text-wrap: balance; + } +} diff --git a/modern-react/my-next/src/app/layout.js b/modern-react/my-next/src/app/layout.js new file mode 100644 index 0000000..9828fd8 --- /dev/null +++ b/modern-react/my-next/src/app/layout.js @@ -0,0 +1,65 @@ +// import { Inter } from "next/font/google"; +// import "./globals.css"; + +// // 폰트 정보 설정 +// const inter = Inter({ subsets: ["latin"] }); + +// // 메타 정보 준비 +// export const metadata = { +// title: "Create Next App", +// description: "Generated by create next app", +// }; + +// // 루트 레이아웃 준비 +// export default function RootLayout({ children }) { +// return ( +// +// {children} +// +// ); +// } + + + +// Code 11-4-1 +import Link from 'next/link'; +// Tailwind.css 설정 가져오기 +import './globals.css'; +import { Inconsolata } from 'next/font/google'; + +// 구글 폰트 활성화 +const fnt = Inconsolata({ subsets: ['latin'] }) + +// 메타데이터 정의 +export const metadata = { + title: 'Reading Recorder', + description: '내가 읽은 책을 기록하는 앱', +}; + +export default function RootLayout({ children }) { + return ( + + +

+ Reading Recorder

+ {/* 공통 메뉴 준비 */} +
    +
  • + + Home
  • +
  • + + Search
  • +
  • + Support
  • +
+ {/* 페이지 구성 요소를 반영하는 영역 */} +
+ {children} +
+ + + ); +} + diff --git a/modern-react/my-next/src/app/page.js b/modern-react/my-next/src/app/page.js new file mode 100644 index 0000000..9162727 --- /dev/null +++ b/modern-react/my-next/src/app/page.js @@ -0,0 +1,39 @@ +// import { getAllReviews } from '@/lib/getter'; +// import LinkedBookDetails from '@/components/LinkedBookDetails'; + +// // 항상 최신 정보 얻기 +// export const dynamic = 'force-dynamic'; +// export default async function Home() { +// // 모든 리뷰 정보 얻기 +// const reviews = await getAllReviews(); +// return ( +// <> +// {/* 획득한 리뷰 정보를 바탕으로 리스트 생성 */} +// {reviews.map((b, i) => ( +// +// ))} +// +// ); +// } + + + +// Code 11-4-7 +import { getAllReviews } from '@/lib/getter'; +import LinkedBookDetails from '@/components/LinkedBookDetails'; + +// 항상 최신 정보 얻기 +export const dynamic = 'force-dynamic'; +export default async function Home() { + // 모든 리뷰 정보 얻기 + const reviews = await getAllReviews(); + console.log(reviews); + return ( + <> + {/* 획득한 리뷰 정보를 바탕으로 리스트 생성 */} + {reviews.map((b, i) => ( + + ))} + + ); +} \ No newline at end of file diff --git a/modern-react/my-next/src/components/BookDetails.js b/modern-react/my-next/src/components/BookDetails.js new file mode 100644 index 0000000..24a0345 --- /dev/null +++ b/modern-react/my-next/src/components/BookDetails.js @@ -0,0 +1,23 @@ +import Image from 'next/image'; + +export default function BookDetails({ index, book }) { + return ( +
+
+ {/* 책 그림자 표시 */} + +
+
+ {/* 도서 정보 목록 표시 (index 속성이 지정되면 연속 번호도 표시) */} +
    +
  • {index && index + '.'}
  • +
  • {book.title}({book.price}원)
  • +
  • {book.author} 지음
  • +
  • {book.publisher} 출판
  • +
  • {book.published} 출시
  • +
+
+
+ ); +} + diff --git a/modern-react/my-next/src/components/FormEdit.js b/modern-react/my-next/src/components/FormEdit.js new file mode 100644 index 0000000..4e92301 --- /dev/null +++ b/modern-react/my-next/src/components/FormEdit.js @@ -0,0 +1,72 @@ +// 'use client'; + +// import { addReview, removeReview } from '@/lib/actions'; + +// export default function FormEdit({ src: { id, read, memo } }) { +// return ( +// // 제출 시 addReview 메서드를 호출한다. +//
+// +//
+// +// +//
+//
+// +// +//
+// +// {/* [삭제하기] 버튼으로 removeReview 함수를 호출 */} +// +//
+// ); +// } + + + +// Code 11-4-16 +'use client'; + +import { useTransition } from 'react'; +import { addReview, removeReview } from '@/lib/actions'; + +export default function FormEdit({ src: { id, read, memo } }) { + const [isPending, startTransition] = useTransition(); + + // 이벤트 핸들러를 통해 서버 액션을 호출한다. + return ( +
+ +
+ + +
+
+ + +
+ + +
+ ); +} \ No newline at end of file diff --git a/modern-react/my-next/src/components/LinkedBookDetails.js b/modern-react/my-next/src/components/LinkedBookDetails.js new file mode 100644 index 0000000..b9375f5 --- /dev/null +++ b/modern-react/my-next/src/components/LinkedBookDetails.js @@ -0,0 +1,13 @@ +import Link from 'next/link'; +import BookDetails from './BookDetails'; + +export default function LinkedBookDetails({ index, book }) { + // BookDetails 컴포넌트에 링크 부여 + return ( + +
+ +
+ + ); +} \ No newline at end of file diff --git a/modern-react/my-next/src/lib/actions.js b/modern-react/my-next/src/lib/actions.js new file mode 100644 index 0000000..21484e3 --- /dev/null +++ b/modern-react/my-next/src/lib/actions.js @@ -0,0 +1,91 @@ +// 'use server'; + +// import { redirect } from 'next/navigation'; + +// import prisma from './prisma'; +// import { getBookById } from './getter'; + +// // 폼에서 입력한 값을 데이터베이스에 등록 +// export async function addReview(data) { +// const book = await getBookById(data.get('id')); +// const input = { +// title: book.title, +// author: book.author, +// price: Number(book.price), +// publisher: book.publisher, +// published: book.published, +// image: book.image, +// read: new Date(data.get('read')), +// memo: data.get('memo') +// }; + +// // 신규 데이터라면 등록, 기존 데이터라면 업데이트 +// await prisma.reviews.upsert({ +// update: input, +// create: Object.assign({}, input, { id: data.get('id') }), +// where: { +// id: data.get('id') +// } +// }); +// // 처리 성공 후 홈페이지로 리디렉션 +// redirect('/'); +// } + +// // 삭제 버튼으로 지정된 리뷰 정보 삭제 +// export async function removeReview(data) { +// await prisma.reviews.delete({ +// where: { +// id: data.get('id') +// } +// }); +// // 처리 성공 후 홈페이지로 리디렉션 +// redirect('/'); +// } + + + +// Code 11-4-17 +'use server'; + +import { redirect } from 'next/navigation'; + +import prisma from './prisma'; +import { getBookById } from './getter'; + +// 폼에서 입력한 값을 데이터베이스에 등록 +export async function addReview(data) { + const book = await getBookById(data.get('id')); + const input = { + title: book.title, + author: book.author, + price: Number(book.price), + publisher: book.publisher, + published: book.published, + image: book.image, + read: new Date(data.get('read')), + memo: data.get('memo') + }; + + // 신규 데이터라면 등록, 기존 데이터라면 업데이트 + await prisma.reviews.upsert({ + update: input, + create: Object.assign({}, input, { id: data.get('id') }), + where: { + id: data.get('id') + } + }); + // 처리 성공 후 홈페이지로 리디렉션 + redirect('/'); +} + +// 삭제 버튼으로 지정된 리뷰 정보 삭제 +export async function removeReview(data) { + await prisma.reviews.delete({ + // 직접 id 값을 받기 때문에 수정 + where: { + id: data + } + }); + // 처리 성공 후 홈페이지로 리디렉션 + redirect('/'); +} \ No newline at end of file diff --git a/modern-react/my-next/src/lib/getter.js b/modern-react/my-next/src/lib/getter.js new file mode 100644 index 0000000..e260349 --- /dev/null +++ b/modern-react/my-next/src/lib/getter.js @@ -0,0 +1,54 @@ +import prisma from './prisma'; + +// API를 통해 얻은 도서 정보에서 필요한 정보만을 객체로 재구성 +export function createBook(book) { + const authors = book.volumeInfo.authors; + const price = book.saleInfo.listPrice; + const img = book.volumeInfo.imageLinks; + return { + id: book.id, + title: book.volumeInfo.title, + author: authors ? authors.join(',') : '', + price: price ? price.amount : 0, + publisher: book.volumeInfo.publisher, + published: book.volumeInfo.publishedDate, + image: img ? img.smallThumbnail : '/vercel.svg', + }; +} + +// 인수 keyword를 키워드로 Google Books API에서 책 검색하기 +export async function getBooksByKeyword(keyword) { + const res = await fetch(`https://www.googleapis.com/books/v1/volumes?q=${keyword}&langRestrict=ko&maxResults=20&printType=books`); + const result = await res.json(); + const books = []; + // 응답 내용을 객체 배열로 리필 + for (const b of result.items) { + books.push(createBook(b)); + } + return books; +} + +// id값을 키로 하여 도서 정보를 가져옴 +export async function getBookById(id) { + const res = await fetch(`https://www.googleapis.com/books/v1/volumes/${id}`); + const result = await res.json(); + return createBook(result); +} + +// id값을 키로 리뷰 정보 가져오기 +export async function getReviewById(id) { + return await prisma.reviews.findUnique({ + where: { + id: id + } + }); +} + +export async function getAllReviews() { + // 읽은 날짜(read) 내림차순으로 검색 + return await prisma.reviews.findMany({ + orderBy: { + read: 'desc' + } + }); +} \ No newline at end of file diff --git a/modern-react/my-next/src/lib/prisma.js b/modern-react/my-next/src/lib/prisma.js new file mode 100644 index 0000000..3f99a02 --- /dev/null +++ b/modern-react/my-next/src/lib/prisma.js @@ -0,0 +1,9 @@ +import { PrismaClient } from '@prisma/client'; + +// global.prisma에 Prisma 클라이언트가 존재할 경우 재사용 +const prisma = global.prisma ?? + new PrismaClient({ log: ['query'] }); +// Non-Production 환경에서는 global.prisma에 오브젝트를 저장한다. +if (process.env.NODE_ENV !== 'production') global.prisma = prisma; + +export default prisma; \ No newline at end of file diff --git a/modern-react/my-next/tailwind.config.js b/modern-react/my-next/tailwind.config.js new file mode 100644 index 0000000..9d62672 --- /dev/null +++ b/modern-react/my-next/tailwind.config.js @@ -0,0 +1,20 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + // Tailwind CSS를 적용하는 파일군 + content: [ + "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", + "./src/components/**/*.{js,ts,jsx,tsx,mdx}", + "./src/app/**/*.{js,ts,jsx,tsx,mdx}", + ], + theme: { + // 공통 스타일 정의 + extend: { + backgroundImage: { + "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", + "gradient-conic": + "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", + }, + }, + }, + plugins: [], +}; diff --git a/modern-react/my-react-ts/README.md b/modern-react/my-react-ts/README.md new file mode 100644 index 0000000..b87cb00 --- /dev/null +++ b/modern-react/my-react-ts/README.md @@ -0,0 +1,46 @@ +# Getting Started with Create React App + +This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). + +## Available Scripts + +In the project directory, you can run: + +### `npm start` + +Runs the app in the development mode.\ +Open [http://localhost:3000](http://localhost:3000) to view it in the browser. + +The page will reload if you make edits.\ +You will also see any lint errors in the console. + +### `npm test` + +Launches the test runner in the interactive watch mode.\ +See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. + +### `npm run build` + +Builds the app for production to the `build` folder.\ +It correctly bundles React in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes.\ +Your app is ready to be deployed! + +See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. + +### `npm run eject` + +**Note: this is a one-way operation. Once you `eject`, you can’t go back!** + +If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. + +Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. + +You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. + +## Learn More + +You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). + +To learn React, check out the [React documentation](https://reactjs.org/). diff --git a/modern-react/my-react-ts/package-lock.json b/modern-react/my-react-ts/package-lock.json new file mode 100644 index 0000000..4ffce75 --- /dev/null +++ b/modern-react/my-react-ts/package-lock.json @@ -0,0 +1,18797 @@ +{ + "name": "my-react-ts", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "my-react-ts", + "version": "0.1.0", + "dependencies": { + "@emotion/react": "^11.11.4", + "@emotion/styled": "^11.11.5", + "@mui/icons-material": "^5.15.15", + "@mui/material": "^5.15.15", + "@testing-library/jest-dom": "^5.17.0", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^13.5.0", + "@types/jest": "^27.5.2", + "@types/node": "^16.18.96", + "@types/react": "^18.2.79", + "@types/react-dom": "^18.2.25", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-query": "^3.39.3", + "react-scripts": "5.0.1", + "typescript": "^4.9.5", + "web-vitals": "^2.1.4" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.3.tgz", + "integrity": "sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==" + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "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.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "dependencies": { + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", + "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz", + "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.4", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.4", + "@babel/parser": "^7.24.4", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0", + "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/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.1.tgz", + "integrity": "sha512-d5guuzMlPeDfZIbpQ8+g1NaCNuAGBBGNECh0HVqz1sjOeVLh2CEaifuOysCH18URW6R7pqXINvf5PaR/dC6jLQ==", + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0", + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@babel/eslint-parser/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz", + "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==", + "dependencies": { + "@babel/types": "^7.24.0", + "@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-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.4.tgz", + "integrity": "sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.24.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz", + "integrity": "sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dependencies": { + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "dependencies": { + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", + "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz", + "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==", + "dependencies": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", + "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", + "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.4.tgz", + "integrity": "sha512-qpl6vOOEEzTLLcsuqYYo8yDtrTocmu2xkGvgNebvPjT9DTtfFYGmgDqY+rBYXNlqL4s9qLDn6xkrJv4RxAPiTA==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz", + "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz", + "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz", + "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.1.tgz", + "integrity": "sha512-zPEvzFijn+hRvJuX2Vu3KbEBN39LN3f7tW3MQO2LsIs57B26KU+kUc82BdAktS1VCM6libzh45eKGI65lg0cpA==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-decorators": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.1.tgz", + "integrity": "sha512-05RJdO/cCrtVWuAaSn1tS3bH8jbsJa/Y1uD186u6J4C/1mnHFxseeuWpsqr9anvo7TUulev7tm7GDwRV+VuhDw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.1.tgz", + "integrity": "sha512-sxi2kLTI5DeW5vDtMUsk4mTPwvlUDbjOnoWayhynCwrw4QXRld4QEYwqzY8JmQXaJUtgUuCIurtSRH5sn4c7mA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz", + "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz", + "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", + "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz", + "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", + "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz", + "integrity": "sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz", + "integrity": "sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==", + "dependencies": { + "@babel/helper-module-imports": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-remap-async-to-generator": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", + "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.4.tgz", + "integrity": "sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz", + "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz", + "integrity": "sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.4", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.1.tgz", + "integrity": "sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-replace-supers": "^7.24.1", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", + "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/template": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.1.tgz", + "integrity": "sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz", + "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz", + "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz", + "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz", + "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz", + "integrity": "sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.24.1.tgz", + "integrity": "sha512-iIYPIWt3dUmUKKE10s3W+jsQ3icFkw0JyRVyY1B7G4yK/nngAOHLVx8xlhA6b/Jzl/Y0nis8gjqhqKtRDQqHWQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-flow": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", + "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", + "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz", + "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", + "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz", + "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", + "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz", + "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", + "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz", + "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz", + "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==", + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz", + "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz", + "integrity": "sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz", + "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.1.tgz", + "integrity": "sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", + "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-replace-supers": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz", + "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.1.tgz", + "integrity": "sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.1.tgz", + "integrity": "sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz", + "integrity": "sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.1.tgz", + "integrity": "sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", + "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.24.1.tgz", + "integrity": "sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.1.tgz", + "integrity": "sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", + "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/types": "^7.23.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", + "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.1.tgz", + "integrity": "sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz", + "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz", + "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.3.tgz", + "integrity": "sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.24.3", + "@babel/helper-plugin-utils": "^7.24.0", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.1", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", + "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", + "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz", + "integrity": "sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", + "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.1.tgz", + "integrity": "sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.4.tgz", + "integrity": "sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.4", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-typescript": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz", + "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz", + "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz", + "integrity": "sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz", + "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.4.tgz", + "integrity": "sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A==", + "dependencies": { + "@babel/compat-data": "^7.24.4", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.4", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.1", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.24.1", + "@babel/plugin-syntax-import-attributes": "^7.24.1", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.1", + "@babel/plugin-transform-async-generator-functions": "^7.24.3", + "@babel/plugin-transform-async-to-generator": "^7.24.1", + "@babel/plugin-transform-block-scoped-functions": "^7.24.1", + "@babel/plugin-transform-block-scoping": "^7.24.4", + "@babel/plugin-transform-class-properties": "^7.24.1", + "@babel/plugin-transform-class-static-block": "^7.24.4", + "@babel/plugin-transform-classes": "^7.24.1", + "@babel/plugin-transform-computed-properties": "^7.24.1", + "@babel/plugin-transform-destructuring": "^7.24.1", + "@babel/plugin-transform-dotall-regex": "^7.24.1", + "@babel/plugin-transform-duplicate-keys": "^7.24.1", + "@babel/plugin-transform-dynamic-import": "^7.24.1", + "@babel/plugin-transform-exponentiation-operator": "^7.24.1", + "@babel/plugin-transform-export-namespace-from": "^7.24.1", + "@babel/plugin-transform-for-of": "^7.24.1", + "@babel/plugin-transform-function-name": "^7.24.1", + "@babel/plugin-transform-json-strings": "^7.24.1", + "@babel/plugin-transform-literals": "^7.24.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.1", + "@babel/plugin-transform-member-expression-literals": "^7.24.1", + "@babel/plugin-transform-modules-amd": "^7.24.1", + "@babel/plugin-transform-modules-commonjs": "^7.24.1", + "@babel/plugin-transform-modules-systemjs": "^7.24.1", + "@babel/plugin-transform-modules-umd": "^7.24.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.24.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.1", + "@babel/plugin-transform-numeric-separator": "^7.24.1", + "@babel/plugin-transform-object-rest-spread": "^7.24.1", + "@babel/plugin-transform-object-super": "^7.24.1", + "@babel/plugin-transform-optional-catch-binding": "^7.24.1", + "@babel/plugin-transform-optional-chaining": "^7.24.1", + "@babel/plugin-transform-parameters": "^7.24.1", + "@babel/plugin-transform-private-methods": "^7.24.1", + "@babel/plugin-transform-private-property-in-object": "^7.24.1", + "@babel/plugin-transform-property-literals": "^7.24.1", + "@babel/plugin-transform-regenerator": "^7.24.1", + "@babel/plugin-transform-reserved-words": "^7.24.1", + "@babel/plugin-transform-shorthand-properties": "^7.24.1", + "@babel/plugin-transform-spread": "^7.24.1", + "@babel/plugin-transform-sticky-regex": "^7.24.1", + "@babel/plugin-transform-template-literals": "^7.24.1", + "@babel/plugin-transform-typeof-symbol": "^7.24.1", + "@babel/plugin-transform-unicode-escapes": "^7.24.1", + "@babel/plugin-transform-unicode-property-regex": "^7.24.1", + "@babel/plugin-transform-unicode-regex": "^7.24.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.1", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.1.tgz", + "integrity": "sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-transform-react-display-name": "^7.24.1", + "@babel/plugin-transform-react-jsx": "^7.23.4", + "@babel/plugin-transform-react-jsx-development": "^7.22.5", + "@babel/plugin-transform-react-pure-annotations": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.1.tgz", + "integrity": "sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-syntax-jsx": "^7.24.1", + "@babel/plugin-transform-modules-commonjs": "^7.24.1", + "@babel/plugin-transform-typescript": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" + }, + "node_modules/@babel/runtime": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", + "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", + "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", + "dependencies": { + "@babel/code-frame": "^7.24.1", + "@babel/generator": "^7.24.1", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.1", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + }, + "node_modules/@csstools/normalize.css": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.1.1.tgz", + "integrity": "sha512-YAYeJ+Xqh7fUou1d1j9XHl44BmsuThiTr4iNrgCQ3J27IbhXsxXDGZ1cXv8Qvs99d4rBbLiSKy3+WZiet32PcQ==" + }, + "node_modules/@csstools/postcss-cascade-layers": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", + "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.2", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-color-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", + "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", + "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", + "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", + "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", + "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-nested-calc": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", + "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", + "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", + "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", + "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", + "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", + "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-unset-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", + "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", + "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss-selector-parser": "^6.0.10" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/@emotion/babel-plugin/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==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", + "dependencies": { + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, + "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==", + "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==" + }, + "node_modules/@emotion/react": { + "version": "11.11.4", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz", + "integrity": "sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.4.tgz", + "integrity": "sha512-RIN04MBT8g+FnDwgvIUi8czvr1LU1alUMI05LekWB5DGyTm8cCBMCRpq3GqaiyEDRptEXOyXnvZ58GZYu4kBxQ==", + "dependencies": { + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" + }, + "node_modules/@emotion/styled": { + "version": "11.11.5", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.5.tgz", + "integrity": "sha512-/ZjjnaNKvuMPxcIiUkf/9SHoG4Q196DRl1w82hQ3WCsjo1IUR8uaGWrC6a87CrYAW0Kb/pK7hk8BnLgLRi9KoQ==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/is-prop-valid": "^1.2.2", + "@emotion/serialize": "^1.1.4", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" + }, + "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==", + "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/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.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": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/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==" + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/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==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", + "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==", + "dependencies": { + "@floating-ui/utils": "^0.2.1" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.3.tgz", + "integrity": "sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==", + "dependencies": { + "@floating-ui/core": "^1.0.0", + "@floating-ui/utils": "^0.2.0" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.8.tgz", + "integrity": "sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==", + "dependencies": { + "@floating-ui/dom": "^1.6.1" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", + "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.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==", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/@jest/console/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/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==" + }, + "node_modules/@jest/console/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/@jest/core/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/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==" + }, + "node_modules/@jest/core/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/@jest/reporters/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/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==" + }, + "node_modules/@jest/reporters/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/reporters/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/@jest/transform/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/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==" + }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/@jest/transform/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/transform/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/types/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/@jest/types/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/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==" + }, + "node_modules/@jest/types/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "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==", + "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==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "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==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==" + }, + "node_modules/@mui/base": { + "version": "5.0.0-beta.40", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.40.tgz", + "integrity": "sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@floating-ui/react-dom": "^2.0.8", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.14", + "@popperjs/core": "^2.11.8", + "clsx": "^2.1.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/core-downloads-tracker": { + "version": "5.15.15", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.15.tgz", + "integrity": "sha512-aXnw29OWQ6I5A47iuWEI6qSSUfH6G/aCsW9KmW3LiFqr7uXZBK4Ks+z8G+qeIub8k0T5CMqlT2q0L+ZJTMrqpg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + } + }, + "node_modules/@mui/icons-material": { + "version": "5.15.15", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.15.15.tgz", + "integrity": "sha512-kkeU/pe+hABcYDH6Uqy8RmIsr2S/y5bP2rp+Gat4CcRjCcVne6KudS1NrZQhUCRysrTDCAhcbcf9gt+/+pGO2g==", + "dependencies": { + "@babel/runtime": "^7.23.9" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@mui/material": "^5.0.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material": { + "version": "5.15.15", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.15.tgz", + "integrity": "sha512-3zvWayJ+E1kzoIsvwyEvkTUKVKt1AjchFFns+JtluHCuvxgKcLSRJTADw37k0doaRtVAsyh8bz9Afqzv+KYrIA==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/base": "5.0.0-beta.40", + "@mui/core-downloads-tracker": "^5.15.15", + "@mui/system": "^5.15.15", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.14", + "@types/react-transition-group": "^4.4.10", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1", + "react-is": "^18.2.0", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/@mui/private-theming": { + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.14.tgz", + "integrity": "sha512-UH0EiZckOWcxiXLX3Jbb0K7rC8mxTr9L9l6QhOZxYc4r8FHUkefltV9VDGLrzCaWh30SQiJvAEd7djX3XXY6Xw==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/utils": "^5.15.14", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine": { + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.14.tgz", + "integrity": "sha512-RILkuVD8gY6PvjZjqnWhz8fu68dVkqhM5+jYWfB5yhlSQKg+2rHkmEwm75XIeAqI3qwOndK6zELK5H6Zxn4NHw==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@emotion/cache": "^11.11.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/system": { + "version": "5.15.15", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.15.15.tgz", + "integrity": "sha512-aulox6N1dnu5PABsfxVGOZffDVmlxPOVgj56HrUnJE8MCSh8lOvvkd47cebIVQQYAjpwieXQXiDPj5pwM40jTQ==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/private-theming": "^5.15.14", + "@mui/styled-engine": "^5.15.14", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.14", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/types": { + "version": "7.2.14", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.14.tgz", + "integrity": "sha512-MZsBZ4q4HfzBsywtXgM1Ksj6HDThtiwmOKUXH1pKYISI9gAVXCNHNpo7TlGoGrBaYWZTdNoirIN7JsQcQUjmQQ==", + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.14.tgz", + "integrity": "sha512-0lF/7Hh/ezDv5X7Pry6enMsbYyGKjADzvHyo3Qrc/SSlTsQ1VkbDMbH0m2t3OR5iIVLwMoxwM7yGd+6FCMtTFA==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@types/prop-types": "^15.7.11", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dependencies": { + "eslint-scope": "5.1.1" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "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==", + "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==", + "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==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.11", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.11.tgz", + "integrity": "sha512-7j/6vdTym0+qZ6u4XbSAxrWBGYSdCfTzySkj7WAFgDLmSyWlOrWvpyzxlFh5jtw9dn0oL/jtW+06XfFiisN3JQ==", + "dependencies": { + "ansi-html-community": "^0.0.8", + "common-path-prefix": "^3.0.0", + "core-js-pure": "^3.23.3", + "error-stack-parser": "^2.0.6", + "find-up": "^5.0.0", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.4", + "schema-utils": "^3.0.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "@types/webpack": "4.x || 5.x", + "react-refresh": ">=0.10.0 <1.0.0", + "sockjs-client": "^1.4.0", + "type-fest": ">=0.17.0 <5.0.0", + "webpack": ">=4.43.0 <6.0.0", + "webpack-dev-server": "3.x || 4.x", + "webpack-hot-middleware": "2.x", + "webpack-plugin-serve": "0.x || 1.x" + }, + "peerDependenciesMeta": { + "@types/webpack": { + "optional": true + }, + "sockjs-client": { + "optional": true + }, + "type-fest": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + }, + "webpack-hot-middleware": { + "optional": true + }, + "webpack-plugin-serve": { + "optional": true + } + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.2.tgz", + "integrity": "sha512-hw437iINopmQuxWPSUEvqE56NCPsiU8N4AYtfHmJFckclktzK9YQJieD3XkDCDH4OjL+C7zgPUh73R/nrcHrqw==" + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", + "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", + "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", + "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", + "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", + "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", + "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", + "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", + "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/core": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", + "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", + "dependencies": { + "@svgr/plugin-jsx": "^5.5.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", + "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", + "dependencies": { + "@babel/types": "^7.12.6" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", + "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", + "dependencies": { + "@babel/core": "^7.12.3", + "@svgr/babel-preset": "^5.5.0", + "@svgr/hast-util-to-babel-ast": "^5.5.0", + "svg-parser": "^2.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", + "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", + "dependencies": { + "cosmiconfig": "^7.0.0", + "deepmerge": "^4.2.2", + "svgo": "^1.2.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/webpack": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", + "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/plugin-transform-react-constant-elements": "^7.12.1", + "@babel/preset-env": "^7.12.1", + "@babel/preset-react": "^7.12.5", + "@svgr/core": "^5.5.0", + "@svgr/plugin-jsx": "^5.5.0", + "@svgr/plugin-svgo": "^5.5.0", + "loader-utils": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@testing-library/dom": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.0.0.tgz", + "integrity": "sha512-PmJPnogldqoVFf+EwbHvbBJ98MmqASV8kLrBYgsDNxQcFMeIS7JFL48sfyXvuMtgmWO/wMhh25odr+8VhDmn4g==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/dom/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/dom/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/@testing-library/dom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz", + "integrity": "sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==", + "dependencies": { + "@adobe/css-tools": "^4.0.1", + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.5.6", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=8", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@testing-library/jest-dom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react": { + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.4.0.tgz", + "integrity": "sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^8.5.0", + "@types/react-dom": "^18.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@testing-library/react/node_modules/@testing-library/dom": { + "version": "8.20.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.1.tgz", + "integrity": "sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@testing-library/react/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/react/node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/@testing-library/react/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/react/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/react/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==" + }, + "node_modules/@testing-library/react/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/user-event": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", + "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==" + }, + "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==", + "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==", + "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==", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.56.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", + "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.0.tgz", + "integrity": "sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "27.5.2", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz", + "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==", + "dependencies": { + "jest-matcher-utils": "^27.0.0", + "pretty-format": "^27.0.0" + } + }, + "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==" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + }, + "node_modules/@types/node": { + "version": "16.18.96", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.96.tgz", + "integrity": "sha512-84iSqGXoO+Ha16j8pRZ/L90vDMKX04QTYMTfYeE1WrjWaZXuchBehGUZEpNgx7JnmlrIHdnABmpjrQjhCnNldQ==" + }, + "node_modules/@types/node-forge": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" + }, + "node_modules/@types/q": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz", + "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==" + }, + "node_modules/@types/qs": { + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + }, + "node_modules/@types/react": { + "version": "18.2.79", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.79.tgz", + "integrity": "sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w==", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.2.25", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.25.tgz", + "integrity": "sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", + "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" + }, + "node_modules/@types/testing-library__jest-dom": { + "version": "5.14.9", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.9.tgz", + "integrity": "sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==", + "dependencies": { + "@types/jest": "*" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" + }, + "node_modules/@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz", + "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==", + "dependencies": { + "@typescript-eslint/utils": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "peerDependencies": { + "acorn": "^8" + } + }, + "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==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.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==", + "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/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "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==", + "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==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "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==", + "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-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "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==", + "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-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "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==", + "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.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "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==", + "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==", + "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.reduce": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz", + "integrity": "sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-array-method-boxes-properly": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.toreversed": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", + "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz", + "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.1.0", + "es-shim-unscopables": "^1.0.2" + } + }, + "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==", + "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/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==" + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.19", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001599", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "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==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", + "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", + "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/babel-jest/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/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==" + }, + "node_modules/babel-jest/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-named-asset-import": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", + "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", + "peerDependencies": { + "@babel/core": "^7.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz", + "integrity": "sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.1", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.1.tgz", + "integrity": "sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-react-app": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", + "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-decorators": "^7.16.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-transform-flow-strip-types": "^7.16.0", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.3", + "babel-plugin-macros": "^3.1.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + } + }, + "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==" + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" + }, + "node_modules/bfj": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.1.0.tgz", + "integrity": "sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==", + "dependencies": { + "bluebird": "^3.7.2", + "check-types": "^11.2.3", + "hoopy": "^0.1.4", + "jsonpath": "^1.1.1", + "tryer": "^1.0.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/bonjour-service": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", + "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "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==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/broadcast-channel": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/broadcast-channel/-/broadcast-channel-3.7.0.tgz", + "integrity": "sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "detect-node": "^2.1.0", + "js-sha3": "0.8.0", + "microseconds": "0.2.0", + "nano-time": "1.0.0", + "oblivious-set": "1.0.0", + "rimraf": "3.0.2", + "unload": "2.2.0" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "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" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "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==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001611", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001611.tgz", + "integrity": "sha512-19NuN1/3PjA3QI8Eki55N8my4LzfkMCRLgCVfrl/slbSAchQfV0+GwjPrK3rq37As4UCLlM/DHajbKkAqbv92Q==", + "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" + } + ] + }, + "node_modules/case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "engines": { + "node": ">=4" + } + }, + "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==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/check-types": { + "version": "11.2.3", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz", + "integrity": "sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg==" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==" + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clsx": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", + "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==" + }, + "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==", + "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==" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/core-js": { + "version": "3.37.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.0.tgz", + "integrity": "sha512-fu5vHevQ8ZG4og+LXug8ulUtVxjOcEYvifJr7L5Bfq9GOztVqsKd9/59hUk2ZSbCrS3BqUr3EpaYGIYzq7g3Ug==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.37.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.0.tgz", + "integrity": "sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==", + "dependencies": { + "browserslist": "^4.23.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.37.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.37.0.tgz", + "integrity": "sha512-d3BrpyFr5eD4KcbRvQ3FTUx/KWmaDesr7+a3+1+P46IUnNoEt+oiLijPINZMEon7w9oGkIINWxrBAU9DEciwFQ==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-blank-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", + "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-has-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-loader": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "dependencies": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", + "bin": { + "css-prefers-color-scheme": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" + }, + "node_modules/cssdb": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.11.2.tgz", + "integrity": "sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + } + ] + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "dependencies": { + "cssnano-preset-default": "^5.2.14", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.14", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.1", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.4", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.2", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/csso/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "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==", + "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==", + "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.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" + }, + "node_modules/deep-equal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "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==", + "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-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "engines": { + "node": ">=8" + } + }, + "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==", + "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/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "node_modules/detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "dependencies": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "bin": { + "detect": "bin/detect-port", + "detect-port": "bin/detect-port" + }, + "engines": { + "node": ">= 4.2.1" + } + }, + "node_modules/detect-port-alt/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/detect-port-alt/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==" + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "deprecated": "Use your platform's native DOMException instead", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.745", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.745.tgz", + "integrity": "sha512-tRbzkaRI5gbUn5DEvF0dV4TQbMZ5CLkWeTAXmpC9IrYT+GE+x76i9p+o3RJ5l9XmdQlI1pPhVtE9uNcJJ0G0EA==" + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", + "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "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==", + "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-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" + }, + "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==", + "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==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.18", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.18.tgz", + "integrity": "sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "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-module-lexer": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz", + "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==" + }, + "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==", + "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==", + "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==", + "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==", + "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/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "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==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.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": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-react-app": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", + "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@rushstack/eslint-patch": "^1.1.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "babel-preset-react-app": "^10.0.1", + "confusing-browser-globals": "^1.0.11", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jest": "^25.3.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.1", + "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-testing-library": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-flowtype": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", + "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", + "dependencies": { + "lodash": "^4.17.21", + "string-natural-compare": "^3.0.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@babel/plugin-syntax-flow": "^7.14.5", + "@babel/plugin-transform-react-jsx": "^7.14.9", + "eslint": "^8.1.0" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "25.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", + "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", + "dependencies": { + "@typescript-eslint/experimental-utils": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", + "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==", + "dependencies": { + "@babel/runtime": "^7.23.2", + "aria-query": "^5.3.0", + "array-includes": "^3.1.7", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "=4.7.0", + "axobject-query": "^3.2.1", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "es-iterator-helpers": "^1.0.15", + "hasown": "^2.0.0", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.entries": "^1.1.7", + "object.fromentries": "^2.0.7" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.34.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz", + "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==", + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlast": "^1.2.4", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.toreversed": "^1.1.2", + "array.prototype.tosorted": "^1.1.3", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.17", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.7", + "object.fromentries": "^2.0.7", + "object.hasown": "^1.1.3", + "object.values": "^1.1.7", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.10" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/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==", + "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/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-testing-library": { + "version": "5.11.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.1.tgz", + "integrity": "sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==", + "dependencies": { + "@typescript-eslint/utils": "^5.58.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0", + "npm": ">=6" + }, + "peerDependencies": { + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "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==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", + "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", + "dependencies": { + "@types/eslint": "^7.29.0 || ^8.4.1", + "jest-worker": "^28.0.2", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/eslint-webpack-plugin/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/eslint-webpack-plugin/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/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==" + }, + "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==", + "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==", + "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==" + }, + "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==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/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==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "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==", + "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==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "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==" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "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==" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, + "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==", + "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": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==" + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "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==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", + "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/fork-ts-checker-webpack-plugin/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/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==" + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", + "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "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==", + "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==", + "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==", + "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==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "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==", + "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-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "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": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "node_modules/harmony-reflect": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", + "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==" + }, + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "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==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/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==" + }, + "node_modules/hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-entities": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz", + "integrity": "sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.20.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==" + }, + "node_modules/identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", + "dependencies": { + "harmony-reflect": "^1.4.6" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "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==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "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==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "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==", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ipaddr.js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "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-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==", + "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-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "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==", + "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==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "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==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "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==", + "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==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "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==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "engines": { + "node": ">=6" + } + }, + "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==", + "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==", + "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==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" + }, + "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==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "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==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "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==", + "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-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "engines": { + "node": ">=6" + } + }, + "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==", + "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==", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "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==", + "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==", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "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==", + "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==", + "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==", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "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/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jake": { + "version": "10.8.7", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jake/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jake/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==" + }, + "node_modules/jake/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jake/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "dependencies": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-circus/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/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==" + }, + "node_modules/jest-circus/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-cli/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-cli/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==" + }, + "node_modules/jest-cli/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-config/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/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==" + }, + "node_modules/jest-config/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-diff/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/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==" + }, + "node_modules/jest-diff/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-each/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/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==" + }, + "node_modules/jest-each/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-jasmine2/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-jasmine2/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==" + }, + "node_modules/jest-jasmine2/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-matcher-utils/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/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==" + }, + "node_modules/jest-matcher-utils/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-message-util/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/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==" + }, + "node_modules/jest-message-util/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-resolve/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/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==" + }, + "node_modules/jest-resolve/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-runner/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/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==" + }, + "node_modules/jest-runner/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-runtime/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/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==" + }, + "node_modules/jest-runtime/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-snapshot/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/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==" + }, + "node_modules/jest-snapshot/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-util/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/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==" + }, + "node_modules/jest-util/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-validate/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/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==" + }, + "node_modules/jest-validate/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", + "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", + "dependencies": { + "ansi-escapes": "^4.3.1", + "chalk": "^4.0.0", + "jest-regex-util": "^28.0.0", + "jest-watcher": "^28.0.0", + "slash": "^4.0.0", + "string-length": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "jest": "^27.0.0 || ^28.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "dependencies": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-watch-typeahead/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-watch-typeahead/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watch-typeahead/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==" + }, + "node_modules/jest-watch-typeahead/node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dependencies": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/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==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/jest-watch-typeahead/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", + "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", + "dependencies": { + "char-regex": "^2.0.0", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", + "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watcher/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-watcher/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/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==" + }, + "node_modules/jest-watcher/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "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==" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "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==" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "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==" + }, + "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==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpath": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz", + "integrity": "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==", + "dependencies": { + "esprima": "1.2.2", + "static-eval": "2.0.2", + "underscore": "1.12.1" + } + }, + "node_modules/jsonpath/node_modules/esprima": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", + "integrity": "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "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==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/launch-editor": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", + "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "engines": { + "node": ">=6" + } + }, + "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==", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.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==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + }, + "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==" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + }, + "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==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "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==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/match-sorter": { + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/match-sorter/-/match-sorter-6.3.4.tgz", + "integrity": "sha512-jfZW7cWS5y/1xswZo8VBOdudUiSd9nifYRWphc9M5D/ee4w4AoXLgBEdRbgVaxbMuagBPeUC5y2Hi8DO6o9aDg==", + "dependencies": { + "@babel/runtime": "^7.23.8", + "remove-accents": "0.5.0" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/microseconds": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/microseconds/-/microseconds-0.2.0.tgz", + "integrity": "sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==" + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz", + "integrity": "sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==", + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nano-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/nano-time/-/nano-time-1.0.0.tgz", + "integrity": "sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA==", + "dependencies": { + "big-integer": "^1.6.16" + } + }, + "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" + } + ], + "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==" + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", + "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==" + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "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==", + "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==", + "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==", + "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==", + "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.getownpropertydescriptors": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz", + "integrity": "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==", + "dependencies": { + "array.prototype.reduce": "^1.0.6", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "gopd": "^1.0.1", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.hasown": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", + "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", + "dependencies": { + "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==", + "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/oblivious-set": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/oblivious-set/-/oblivious-set-1.0.0.tgz", + "integrity": "sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==" + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "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==", + "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==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "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==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "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==" + }, + "node_modules/path-scurry": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", + "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "engines": { + "node": ">=4" + } + }, + "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==", + "engines": { + "node": ">= 0.4" + } + }, + "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" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", + "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-browser-comments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", + "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "browserslist": ">=4", + "postcss": ">=8" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", + "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", + "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", + "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-custom-media": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", + "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-custom-properties": { + "version": "12.1.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz", + "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", + "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", + "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", + "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-flexbugs-fixes": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", + "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", + "peerDependencies": { + "postcss": "^8.1.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", + "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-image-set-function": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", + "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-lab-function": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", + "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", + "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", + "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "dependencies": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", + "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", + "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-nesting": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", + "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-normalize": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", + "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", + "dependencies": { + "@csstools/normalize.css": "*", + "postcss-browser-comments": "^4", + "sanitize.css": "*" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "browserslist": ">= 4", + "postcss": ">= 8" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-opacity-percentage": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz", + "integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==", + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", + "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", + "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-preset-env": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz", + "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==", + "dependencies": { + "@csstools/postcss-cascade-layers": "^1.1.1", + "@csstools/postcss-color-function": "^1.1.1", + "@csstools/postcss-font-format-keywords": "^1.0.1", + "@csstools/postcss-hwb-function": "^1.0.2", + "@csstools/postcss-ic-unit": "^1.0.1", + "@csstools/postcss-is-pseudo-class": "^2.0.7", + "@csstools/postcss-nested-calc": "^1.0.0", + "@csstools/postcss-normalize-display-values": "^1.0.1", + "@csstools/postcss-oklab-function": "^1.1.1", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "@csstools/postcss-stepped-value-functions": "^1.0.1", + "@csstools/postcss-text-decoration-shorthand": "^1.0.0", + "@csstools/postcss-trigonometric-functions": "^1.0.2", + "@csstools/postcss-unset-value": "^1.0.2", + "autoprefixer": "^10.4.13", + "browserslist": "^4.21.4", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^7.1.0", + "postcss-attribute-case-insensitive": "^5.0.2", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.4", + "postcss-color-hex-alpha": "^8.0.4", + "postcss-color-rebeccapurple": "^7.1.1", + "postcss-custom-media": "^8.0.2", + "postcss-custom-properties": "^12.1.10", + "postcss-custom-selectors": "^6.0.3", + "postcss-dir-pseudo-class": "^6.0.5", + "postcss-double-position-gradients": "^3.1.2", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.5", + "postcss-image-set-function": "^4.0.7", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.2.1", + "postcss-logical": "^5.0.4", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.2.0", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.4", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.5", + "postcss-pseudo-class-any-link": "^7.1.6", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", + "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", + "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", + "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/postcss-svgo/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/postcss-svgo/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/postcss-svgo/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-svgo/node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "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==" + }, + "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==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "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==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/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==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-app-polyfill": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", + "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", + "dependencies": { + "core-js": "^3.19.2", + "object-assign": "^4.1.1", + "promise": "^8.1.0", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.9", + "whatwg-fetch": "^3.6.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-app-polyfill/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/react-dev-utils": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/react-dev-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/react-dev-utils/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/react-dev-utils/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==" + }, + "node_modules/react-dev-utils/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==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/react-dev-utils/node_modules/loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/react-dev-utils/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-error-overlay": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", + "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/react-query": { + "version": "3.39.3", + "resolved": "https://registry.npmjs.org/react-query/-/react-query-3.39.3.tgz", + "integrity": "sha512-nLfLz7GiohKTJDuT4us4X3h/8unOh+00MLb2yJoGTPjxKs2bc1iDhkNx2bd5MKklXnOD3NrVZ+J2UXujA5In4g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "broadcast-channel": "^3.4.1", + "match-sorter": "^6.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/react-refresh": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", + "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-scripts": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", + "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", + "dependencies": { + "@babel/core": "^7.16.0", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", + "@svgr/webpack": "^5.5.0", + "babel-jest": "^27.4.2", + "babel-loader": "^8.2.3", + "babel-plugin-named-asset-import": "^0.3.8", + "babel-preset-react-app": "^10.0.1", + "bfj": "^7.0.2", + "browserslist": "^4.18.1", + "camelcase": "^6.2.1", + "case-sensitive-paths-webpack-plugin": "^2.4.0", + "css-loader": "^6.5.1", + "css-minimizer-webpack-plugin": "^3.2.0", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "eslint": "^8.3.0", + "eslint-config-react-app": "^7.0.1", + "eslint-webpack-plugin": "^3.1.1", + "file-loader": "^6.2.0", + "fs-extra": "^10.0.0", + "html-webpack-plugin": "^5.5.0", + "identity-obj-proxy": "^3.0.0", + "jest": "^27.4.3", + "jest-resolve": "^27.4.2", + "jest-watch-typeahead": "^1.0.0", + "mini-css-extract-plugin": "^2.4.5", + "postcss": "^8.4.4", + "postcss-flexbugs-fixes": "^5.0.2", + "postcss-loader": "^6.2.1", + "postcss-normalize": "^10.0.1", + "postcss-preset-env": "^7.0.1", + "prompts": "^2.4.2", + "react-app-polyfill": "^3.0.0", + "react-dev-utils": "^12.0.1", + "react-refresh": "^0.11.0", + "resolve": "^1.20.0", + "resolve-url-loader": "^4.0.0", + "sass-loader": "^12.3.0", + "semver": "^7.3.5", + "source-map-loader": "^3.0.0", + "style-loader": "^3.3.1", + "tailwindcss": "^3.0.2", + "terser-webpack-plugin": "^5.2.5", + "webpack": "^5.64.4", + "webpack-dev-server": "^4.6.0", + "webpack-manifest-plugin": "^4.0.2", + "workbox-webpack-plugin": "^6.4.1" + }, + "bin": { + "react-scripts": "bin/react-scripts.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + }, + "peerDependencies": { + "react": ">= 16", + "typescript": "^3.2.1 || ^4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=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==", + "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/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", + "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==" + }, + "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==", + "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/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remove-accents": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz", + "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==" + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "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-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", + "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^7.0.35", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=8.9" + }, + "peerDependencies": { + "rework": "1.0.1", + "rework-visit": "1.0.0" + }, + "peerDependenciesMeta": { + "rework": { + "optional": true + }, + "rework-visit": { + "optional": true + } + } + }, + "node_modules/resolve-url-loader/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/resolve-url-loader/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, + "node_modules/resolve-url-loader/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "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==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-terser/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/rollup-plugin-terser/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/rollup-plugin-terser/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "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==", + "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-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "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==", + "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/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sanitize.css": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", + "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" + }, + "node_modules/sass-loader": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", + "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/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==" + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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==", + "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==", + "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/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "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==", + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "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/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", + "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead" + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" + }, + "node_modules/static-eval": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", + "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", + "dependencies": { + "escodegen": "^1.8.1" + } + }, + "node_modules/static-eval/node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/static-eval/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/static-eval/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-eval/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-natural-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", + "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "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==", + "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.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "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==", + "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==", + "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/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dependencies": { + "min-indent": "^1.0.0" + }, + "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==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-loader": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", + "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/svgo/node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/svgo/node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/svgo/node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/svgo/node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "node_modules/svgo/node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "node_modules/tailwindcss": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", + "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.30.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.30.3.tgz", + "integrity": "sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA==", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "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==" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/throat": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==" + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + }, + "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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "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==", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "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==", + "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==", + "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==", + "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/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "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==", + "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/underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unload": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unload/-/unload-2.2.0.tgz", + "integrity": "sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==", + "dependencies": { + "@babel/runtime": "^7.6.2", + "detect-node": "^2.0.4" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "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" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.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==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", + "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/web-vitals": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz", + "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==" + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "5.91.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz", + "integrity": "sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==", + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.16.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", + "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.4", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-manifest-plugin": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", + "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", + "dependencies": { + "tapable": "^2.0.0", + "webpack-sources": "^2.2.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "peerDependencies": { + "webpack": "^4.44.2 || ^5.47.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", + "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", + "dependencies": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==" + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "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==", + "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.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "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.1", + "which-typed-array": "^1.1.9" + }, + "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==", + "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==", + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-background-sync": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", + "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", + "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-build": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz", + "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==", + "dependencies": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.6.0", + "workbox-broadcast-update": "6.6.0", + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-google-analytics": "6.6.0", + "workbox-navigation-preload": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-range-requests": "6.6.0", + "workbox-recipes": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0", + "workbox-streams": "6.6.0", + "workbox-sw": "6.6.0", + "workbox-window": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", + "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", + "dependencies": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/workbox-build/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/workbox-build/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/workbox-build/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/workbox-build/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workbox-build/node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/workbox-build/node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "node_modules/workbox-build/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz", + "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==", + "deprecated": "workbox-background-sync@6.6.0", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-core": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz", + "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==" + }, + "node_modules/workbox-expiration": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", + "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-google-analytics": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", + "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", + "deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained", + "dependencies": { + "workbox-background-sync": "6.6.0", + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", + "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-precaching": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz", + "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-range-requests": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", + "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-recipes": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz", + "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==", + "dependencies": { + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-routing": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz", + "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-strategies": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz", + "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-streams": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz", + "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0" + } + }, + "node_modules/workbox-sw": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz", + "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==" + }, + "node_modules/workbox-webpack-plugin": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.0.tgz", + "integrity": "sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A==", + "dependencies": { + "fast-json-stable-stringify": "^2.1.0", + "pretty-bytes": "^5.4.1", + "upath": "^1.2.0", + "webpack-sources": "^1.4.3", + "workbox-build": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": "^4.4.0 || ^5.9.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/workbox-window": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz", + "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==", + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.6.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/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==" + }, + "node_modules/wrap-ansi/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/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==" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "engines": { + "node": ">=10" + } + }, + "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==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/modern-react/my-react-ts/package.json b/modern-react/my-react-ts/package.json new file mode 100644 index 0000000..f6170ed --- /dev/null +++ b/modern-react/my-react-ts/package.json @@ -0,0 +1,48 @@ +{ + "name": "my-react-ts", + "version": "0.1.0", + "private": true, + "dependencies": { + "@emotion/react": "^11.11.4", + "@emotion/styled": "^11.11.5", + "@mui/icons-material": "^5.15.15", + "@mui/material": "^5.15.15", + "@testing-library/jest-dom": "^5.17.0", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^13.5.0", + "@types/jest": "^27.5.2", + "@types/node": "^16.18.96", + "@types/react": "^18.2.79", + "@types/react-dom": "^18.2.25", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-query": "^3.39.3", + "react-scripts": "5.0.1", + "typescript": "^4.9.5", + "web-vitals": "^2.1.4" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/modern-react/my-react-ts/public/favicon.ico b/modern-react/my-react-ts/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/modern-react/my-react-ts/public/index.html b/modern-react/my-react-ts/public/index.html new file mode 100644 index 0000000..aa069f2 --- /dev/null +++ b/modern-react/my-react-ts/public/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + React App + + + +
+ + + diff --git a/modern-react/my-react-ts/public/logo192.png b/modern-react/my-react-ts/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/modern-react/my-react-ts/public/manifest.json b/modern-react/my-react-ts/public/manifest.json new file mode 100644 index 0000000..080d6c7 --- /dev/null +++ b/modern-react/my-react-ts/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/modern-react/my-react-ts/public/robots.txt b/modern-react/my-react-ts/public/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/modern-react/my-react-ts/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/modern-react/my-react-ts/src/App.css b/modern-react/my-react-ts/src/App.css new file mode 100644 index 0000000..74b5e05 --- /dev/null +++ b/modern-react/my-react-ts/src/App.css @@ -0,0 +1,38 @@ +.App { + text-align: center; +} + +.App-logo { + height: 40vmin; + pointer-events: none; +} + +@media (prefers-reduced-motion: no-preference) { + .App-logo { + animation: App-logo-spin infinite 20s linear; + } +} + +.App-header { + background-color: #282c34; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-size: calc(10px + 2vmin); + color: white; +} + +.App-link { + color: #61dafb; +} + +@keyframes App-logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} diff --git a/modern-react/my-react-ts/src/App.test.tsx b/modern-react/my-react-ts/src/App.test.tsx new file mode 100644 index 0000000..2a68616 --- /dev/null +++ b/modern-react/my-react-ts/src/App.test.tsx @@ -0,0 +1,9 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import App from './App'; + +test('renders learn react link', () => { + render(); + const linkElement = screen.getByText(/learn react/i); + expect(linkElement).toBeInTheDocument(); +}); diff --git a/modern-react/my-react-ts/src/App.tsx b/modern-react/my-react-ts/src/App.tsx new file mode 100644 index 0000000..a53698a --- /dev/null +++ b/modern-react/my-react-ts/src/App.tsx @@ -0,0 +1,26 @@ +import React from 'react'; +import logo from './logo.svg'; +import './App.css'; + +function App() { + return ( + + ); +} + +export default App; diff --git a/modern-react/my-react-ts/src/Book.ts b/modern-react/my-react-ts/src/Book.ts new file mode 100644 index 0000000..5a5ef06 --- /dev/null +++ b/modern-react/my-react-ts/src/Book.ts @@ -0,0 +1,7 @@ +export type Book = { + isbn: string, + title: string, + price: number, + summary: string, + download: boolean +}; diff --git a/modern-react/my-react-ts/src/HookReducerUp.tsx b/modern-react/my-react-ts/src/HookReducerUp.tsx new file mode 100644 index 0000000..d8a65c6 --- /dev/null +++ b/modern-react/my-react-ts/src/HookReducerUp.tsx @@ -0,0 +1,56 @@ +import { useReducer } from 'react'; + +// Props 유형 정의 +type HookReducerUpProps = { + init: number +}; + +// State 타입 정의 +type StateType = { + count: number; +}; + +// Action의 타입 정의 +type ActionType = { + type: 'update', + step: number +} | { + type: 'reset', + init: number +}; + +// Reducer 유형 정의 +type CountReducerType = (state: StateType, action: ActionType) => StateType; + +export default function HookReducerUp({ init }: HookReducerUpProps) { + // Reducer 타입 정의 + const [state, dispatch] = useReducer( + // Reducer의 실체 + (state, action) => { + switch (action.type) { + case 'update': + return { count: state.count + action.step }; + case 'reset' : + return { count: action.init }; + default: + return state; + } + }, + // State의 초깃값 + { + count: init + } + ); + const handleUp = () => dispatch({ type: 'update', step: 1 }); + const handleDown = () => dispatch({ type: 'update', step: -1 }); + const handleReset = () => dispatch({ type: 'reset', init: 0 }); + + return ( + <> + + + +

{state.count}번 클릭되었습니다.

+ + ); +} \ No newline at end of file diff --git a/modern-react/my-react-ts/src/HookThemeButton.tsx b/modern-react/my-react-ts/src/HookThemeButton.tsx new file mode 100644 index 0000000..b70cdf8 --- /dev/null +++ b/modern-react/my-react-ts/src/HookThemeButton.tsx @@ -0,0 +1,13 @@ +import { useContext } from 'react'; +import { Button } from '@mui/material'; +import ThemeContext, { ThemeContextType } from './ThemeContext'; + +export default function HookThemeButton() { + // const { mode, toggleMode } = useContext(ThemeContext); + const { mode, toggleMode } = useContext>(ThemeContext); + return ( + + ); +} \ No newline at end of file diff --git a/modern-react/my-react-ts/src/ListTemplate.tsx b/modern-react/my-react-ts/src/ListTemplate.tsx new file mode 100644 index 0000000..87cc89d --- /dev/null +++ b/modern-react/my-react-ts/src/ListTemplate.tsx @@ -0,0 +1,49 @@ +// import React, { FC, ReactNode } from 'react'; +// import type { Book } from './Book'; + +// // Props 타입 선언 +// type ListTemplateProps = { +// src: Array, +// children: (b: Book) => ReactNode +// }; + +// export default function ListTemplate({ src, children }: ListTemplateProps) { +// return ( +//
+// { +// src.map((elem, index) => ( +// +// {children(elem)} +// +// )) +// } +//
+// ); +// } + + + +// Code 10-2-16 +import React, { FC, ReactNode } from 'react'; +import type { Book } from './Book'; + +type ListTemplateProps = { + src: Array, + children: (b: Book) => ReactNode +}; + +const ListTemplate: FC = ({ src, children }) => { + return ( +
+ { + src.map((elem, index) => ( + + {children(elem)} + + )) + } +
+ ); +}; + +export default ListTemplate; diff --git a/modern-react/my-react-ts/src/MyThemeProvider.tsx b/modern-react/my-react-ts/src/MyThemeProvider.tsx new file mode 100644 index 0000000..166c183 --- /dev/null +++ b/modern-react/my-react-ts/src/MyThemeProvider.tsx @@ -0,0 +1,50 @@ +import { ReactNode, useState } from 'react'; +import { createTheme, ThemeProvider } from '@mui/material/styles'; +import { amber, grey } from '@mui/material/colors'; +import { CssBaseline, PaletteMode } from '@mui/material'; +import ThemeContext, { ThemeContextType } from './ThemeContext'; + +// Props 타입 선언 +type MyThemeProviderProps = { + children: ReactNode +}; + +export default function MyThemeProvider({ children }: MyThemeProviderProps) { + const [mode, setMode] = useState('light'); + const themeConfig: ThemeContextType = { + mode, + toggleMode: () => { + setMode(prev => + prev === 'light' ? 'dark' : 'light' + )} + }; + + const theme = createTheme({ + palette: { + mode, + ...(mode === 'light' + ? { + primary: amber, + } + : { + primary: { + main: grey[500], + contrastText: '#fff' + }, + background: { + default: grey[900], + paper: grey[900], + }, + }), + }, + + }); + return ( + + + + {children} + + + ); +} \ No newline at end of file diff --git a/modern-react/my-react-ts/src/QueryBasic.tsx b/modern-react/my-react-ts/src/QueryBasic.tsx new file mode 100644 index 0000000..6ad399a --- /dev/null +++ b/modern-react/my-react-ts/src/QueryBasic.tsx @@ -0,0 +1,39 @@ +import { useQuery } from 'react-query'; + +type WeatherType = { + weather: Array<{ + id: number + main: string + description: string + icon: string + }> +} + +// 날씨 정보를 얻기 위한 함수 +const fetchWeather = async () => { + const res = await fetch(`https://api.openweathermap.org/data/2.5/weather?q=Seoul&lang=kr&appid=ef23a61e94f59784b8451d12c0d07da8`); + if (res.ok) { + return await res.json() as WeatherType; + } + throw new Error(res.statusText); +}; + +export default function QuerBasic() { + // fetchWeather 함수로 데이터 가져오기 + const { data, isLoading, isError, error } = useQuery('weather', fetchWeather); + if (isLoading) { + return

Loading...

+ } + if (isError) { + return

Error: {error.message}

+ } + + return ( +
+ {data?.weather?.[0]?.main} +
{data?.weather?.[0]?.description}
+
+ ); +} \ No newline at end of file diff --git a/modern-react/my-react-ts/src/QueryPre.tsx b/modern-react/my-react-ts/src/QueryPre.tsx new file mode 100644 index 0000000..2ec31f7 --- /dev/null +++ b/modern-react/my-react-ts/src/QueryPre.tsx @@ -0,0 +1,51 @@ +import { useEffect, useState } from 'react'; + +// fetch를 통해 취득한 날씨 정보 유형 정의 +type WeatherType = { + weather: Array<{ + id: number + main: string + description: string + icon: string + }> +} + +// 날씨 정보를 얻기 위한 함수 +const fetchWeather = async () => { + const res = await fetch(`https://api.openweathermap.org/data/2.5/weather?q=Seoul&lang=kr&appid=ef23a61e94f59784b8451d12c0d07da8`); + if (res.ok) { + return await res.json() as WeatherType; + } + throw new Error(res.statusText); +}; + +export default function QueryPre() { + // State 선언 + const [data, setData] = useState(); + const [isLoading, setLoading] = useState(true); + const [error, setError] = useState(''); + useEffect(() => { + setLoading(true); + fetchWeather() + .then(result => setData(result)) + .catch(err => setError(err.message)) + .finally(() => setLoading(false)); + }, []); + + if (isLoading) { + return

Loading...

+ } + + if (error) { + return

Error: {error}

+ } + + return ( +
+ {data?.weather?.[0]?.main} +
{data?.weather?.[0]?.description}
+
+ ); +} diff --git a/modern-react/my-react-ts/src/StateBasic.tsx b/modern-react/my-react-ts/src/StateBasic.tsx new file mode 100644 index 0000000..f7a0974 --- /dev/null +++ b/modern-react/my-react-ts/src/StateBasic.tsx @@ -0,0 +1,19 @@ +import { useState } from 'react'; + +// Props 타입 선언 +type StateBasicProps = { + init: number +}; + +export default function StateBasic({ init }: StateBasicProps) { + const [count, setCount] = useState(init); + const handleClick = () => setCount(count + 1); + return ( + <> + +

{count}번 클릭했습니다.

+ + ); +} + + diff --git a/modern-react/my-react-ts/src/StateFormUC.tsx b/modern-react/my-react-ts/src/StateFormUC.tsx new file mode 100644 index 0000000..b42ea56 --- /dev/null +++ b/modern-react/my-react-ts/src/StateFormUC.tsx @@ -0,0 +1,28 @@ +import { useRef } from 'react'; + +export default function StateFormUC() { + const name = useRef(null); + const age = useRef(null); + const show = () => { + console.log(`안녕하세요, ${name.current?.value}(${age.current?.value}세) 님!`); + }; + return ( +
+
+ + +
+
+ + +
+
+ +
+
+ ); +} + diff --git a/modern-react/my-react-ts/src/StyledPanel.tsx b/modern-react/my-react-ts/src/StyledPanel.tsx new file mode 100644 index 0000000..c200e2e --- /dev/null +++ b/modern-react/my-react-ts/src/StyledPanel.tsx @@ -0,0 +1,21 @@ +import { ReactNode } from 'react'; + +// Props 타입 선언 +type StyledPanelProps = { + children: ReactNode +}; + +export default function StyledPanel({ children }: StyledPanelProps) { + return ( +
+ {children} +
+ ); +} diff --git a/modern-react/my-react-ts/src/ThemeContext.tsx b/modern-react/my-react-ts/src/ThemeContext.tsx new file mode 100644 index 0000000..c0f5ca9 --- /dev/null +++ b/modern-react/my-react-ts/src/ThemeContext.tsx @@ -0,0 +1,14 @@ +import { PaletteMode } from '@mui/material'; +import { createContext } from 'react'; + +export type ThemeContextType = { + mode: PaletteMode, + toggleMode: () => void +}; + +// export default createContext({ +// mode: 'light', +// toggleMode: () => {} +// }); + +export default createContext>({}); \ No newline at end of file diff --git a/modern-react/my-react-ts/src/books.ts b/modern-react/my-react-ts/src/books.ts new file mode 100644 index 0000000..a924239 --- /dev/null +++ b/modern-react/my-react-ts/src/books.ts @@ -0,0 +1,43 @@ +const books = [ + { + isbn: '9791158395124', + title: '게임 개발을 위한 미드저니, 스테이블 디퓨전 완벽 활용법', + slug: 'genai-game', + price: 28000, + summary: '생성형 AI를 활용한 게임 캐릭터, 배경, 아이템 제작부터 유니티 실전 프로젝트까지', + download: true, + }, + { + isbn: '9791158395117', + title: '디자인을 위한 미드저니 완벽 활용법', + slug: 'midjourney-design', + price: 24000, + summary: '광고부터 캐릭터, 로고, 일러스트레이션, 표지, 포스터, 타이포까지 독창적인 디자인 만들기', + download: false, + }, + { + isbn: '9791158395032', + title: '만들면서 배우는 블렌더 3D 입문', + slug: 'blender-basic', + price: 28000, + summary: '블렌더 기초, 모델링, 머티리얼, 애니메이션, 렌더링까지', + download: true, + }, + { + isbn: '9791158395018', + title: '모던 그로스 마케팅', + slug: 'mgm', + price: 24000, + summary: '비용은 최소화하고 매출은 극대화하는 생존 마케팅 전략', + download: false, + }, + { + isbn: '9791158395025', + title: '도메인 스토리텔링', + slug: 'domain-storytelling', + price: 28000, + summary: '도메인 주도 소프트웨어 구축을 위한 스토리텔링과 스토리 시각화 기법', + download: true, + }, +]; +export default books; \ No newline at end of file diff --git a/modern-react/my-react-ts/src/index.css b/modern-react/my-react-ts/src/index.css new file mode 100644 index 0000000..ec2585e --- /dev/null +++ b/modern-react/my-react-ts/src/index.css @@ -0,0 +1,13 @@ +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', + monospace; +} diff --git a/modern-react/my-react-ts/src/index.tsx b/modern-react/my-react-ts/src/index.tsx new file mode 100644 index 0000000..a80a28b --- /dev/null +++ b/modern-react/my-react-ts/src/index.tsx @@ -0,0 +1,111 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ + +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import './index.css'; +import App from './App'; +import reportWebVitals from './reportWebVitals'; +import StateBasic from './StateBasic'; +import StyledPanel from './StyledPanel'; +import ListTemplate from './ListTemplate'; +import books from './books'; +import type { Book } from './Book'; +import MyThemeProvider from './MyThemeProvider'; +import HookThemeButton from './HookThemeButton'; +import HookReducerUp from './HookReducerUp'; +import StateFormUC from './StateFormUC'; +import QueryPre from './QueryPre'; +import { QueryClient, QueryClientProvider } from 'react-query'; +import QueryBasic from './QueryBasic'; +/* eslint-enable @typescript-eslint/no-unused-vars */ + +const root = ReactDOM.createRoot( + document.getElementById('root') as HTMLElement +); + +// root.render( +// +// +// +// ); + + + +// Code 10-2-3 +// root.render( +// +// ); + + + +// Code 10-2-4 +// root.render( +// +//

회원 모집 중!

+//

위키북스 프로젝트에 오신 것을 환영합니다!!

+//
+// ); + + + +// Code 10-2-7 +// root.render( +// +// {(elem: Book) => ( +// <> +//
+// +// {elem.title}({elem.price}원) +// +//
+//
{elem.summary}
+// +// )} +//
+// ); + + + +// Code 10-2-11 +// root.render( +// +// +// +// ); + + + +// Code 10-2-12 +// root.render( +// +// ); + + + +// Code 10-2-13 +// root.render( +// +// ); + + + +// Code 10-2-14 +root.render( + +); + + + +// Code 10-2-15 +const cli = new QueryClient(); +root.render( + + + +); + + +// If you want to start measuring performance in your app, pass a function +// to log results (for example: reportWebVitals(console.log)) +// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals +reportWebVitals(); diff --git a/modern-react/my-react-ts/src/logo.svg b/modern-react/my-react-ts/src/logo.svg new file mode 100644 index 0000000..9dfc1c0 --- /dev/null +++ b/modern-react/my-react-ts/src/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/modern-react/my-react-ts/src/react-app-env.d.ts b/modern-react/my-react-ts/src/react-app-env.d.ts new file mode 100644 index 0000000..6431bc5 --- /dev/null +++ b/modern-react/my-react-ts/src/react-app-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/modern-react/my-react-ts/src/reportWebVitals.ts b/modern-react/my-react-ts/src/reportWebVitals.ts new file mode 100644 index 0000000..49a2a16 --- /dev/null +++ b/modern-react/my-react-ts/src/reportWebVitals.ts @@ -0,0 +1,15 @@ +import { ReportHandler } from 'web-vitals'; + +const reportWebVitals = (onPerfEntry?: ReportHandler) => { + if (onPerfEntry && onPerfEntry instanceof Function) { + import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { + getCLS(onPerfEntry); + getFID(onPerfEntry); + getFCP(onPerfEntry); + getLCP(onPerfEntry); + getTTFB(onPerfEntry); + }); + } +}; + +export default reportWebVitals; diff --git a/modern-react/my-react-ts/src/setupTests.ts b/modern-react/my-react-ts/src/setupTests.ts new file mode 100644 index 0000000..8f2609b --- /dev/null +++ b/modern-react/my-react-ts/src/setupTests.ts @@ -0,0 +1,5 @@ +// jest-dom adds custom jest matchers for asserting on DOM nodes. +// allows you to do things like: +// expect(element).toHaveTextContent(/react/i) +// learn more: https://github.com/testing-library/jest-dom +import '@testing-library/jest-dom'; diff --git a/modern-react/my-react-ts/tsconfig.json b/modern-react/my-react-ts/tsconfig.json new file mode 100644 index 0000000..7c4fa87 --- /dev/null +++ b/modern-react/my-react-ts/tsconfig.json @@ -0,0 +1,28 @@ +{ + // 트랜스파일 시 동작 옵션 + "compilerOptions": { + "target": "es5", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noFallthroughCasesInSwitch": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + // 트랜스파일 대상 지정 + "include": [ + "src" + ] +} diff --git a/modern-react/my-react/README.md b/modern-react/my-react/README.md new file mode 100644 index 0000000..58beeac --- /dev/null +++ b/modern-react/my-react/README.md @@ -0,0 +1,70 @@ +# Getting Started with Create React App + +This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). + +## Available Scripts + +In the project directory, you can run: + +### `npm start` + +Runs the app in the development mode.\ +Open [http://localhost:3000](http://localhost:3000) to view it in your browser. + +The page will reload when you make changes.\ +You may also see any lint errors in the console. + +### `npm test` + +Launches the test runner in the interactive watch mode.\ +See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. + +### `npm run build` + +Builds the app for production to the `build` folder.\ +It correctly bundles React in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes.\ +Your app is ready to be deployed! + +See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. + +### `npm run eject` + +**Note: this is a one-way operation. Once you `eject`, you can't go back!** + +If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. + +Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own. + +You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it. + +## Learn More + +You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). + +To learn React, check out the [React documentation](https://reactjs.org/). + +### Code Splitting + +This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting) + +### Analyzing the Bundle Size + +This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size) + +### Making a Progressive Web App + +This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app) + +### Advanced Configuration + +This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration) + +### Deployment + +This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment) + +### `npm run build` fails to minify + +This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify) diff --git a/modern-react/my-react/coverage/clover.xml b/modern-react/my-react/coverage/clover.xml new file mode 100644 index 0000000..fa63c22 --- /dev/null +++ b/modern-react/my-react/coverage/clover.xml @@ -0,0 +1,1288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modern-react/my-react/coverage/coverage-final.json b/modern-react/my-react/coverage/coverage-final.json new file mode 100644 index 0000000..6c4d6c6 --- /dev/null +++ b/modern-react/my-react/coverage/coverage-final.json @@ -0,0 +1,160 @@ +{"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/App.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/App.js","statementMap":{"0":{"start":{"line":8,"column":2},"end":{"line":25,"column":4}}},"fnMap":{"0":{"name":"App","decl":{"start":{"line":6,"column":9},"end":{"line":6,"column":12}},"loc":{"start":{"line":6,"column":15},"end":{"line":26,"column":1}},"line":6}},"branchMap":{},"s":{"0":1},"f":{"0":1},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"bfc5e1727ff1ce8b4bcae4c4b79183ed8402c412"} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/AppClass.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/AppClass.js","statementMap":{"0":{"start":{"line":9,"column":4},"end":{"line":26,"column":6}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":2},"end":{"line":8,"column":3}},"loc":{"start":{"line":8,"column":11},"end":{"line":27,"column":3}},"line":8}},"branchMap":{},"s":{"0":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/config-overrides.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/config-overrides.js","statementMap":{"0":{"start":{"line":1,"column":38},"end":{"line":1,"column":62}},"1":{"start":{"line":2,"column":0},"end":{"line":6,"column":2}}},"fnMap":{},"branchMap":{},"s":{"0":0,"1":0},"f":{},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/index.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/index.js","statementMap":{"0":{"start":{"line":132,"column":13},"end":{"line":132,"column":65}},"1":{"start":{"line":1256,"column":0},"end":{"line":1258,"column":2}},"2":{"start":{"line":1263,"column":0},"end":{"line":1265,"column":2}},"3":{"start":{"line":1270,"column":0},"end":{"line":1272,"column":2}},"4":{"start":{"line":1284,"column":0},"end":{"line":1284,"column":18}}},"fnMap":{},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0},"f":{},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/reportWebVitals.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/reportWebVitals.js","statementMap":{"0":{"start":{"line":1,"column":24},"end":{"line":11,"column":1}},"1":{"start":{"line":2,"column":2},"end":{"line":10,"column":3}},"2":{"start":{"line":3,"column":4},"end":{"line":9,"column":7}},"3":{"start":{"line":4,"column":6},"end":{"line":4,"column":26}},"4":{"start":{"line":5,"column":6},"end":{"line":5,"column":26}},"5":{"start":{"line":6,"column":6},"end":{"line":6,"column":26}},"6":{"start":{"line":7,"column":6},"end":{"line":7,"column":26}},"7":{"start":{"line":8,"column":6},"end":{"line":8,"column":27}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":25}},"loc":{"start":{"line":1,"column":39},"end":{"line":11,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":3,"column":30},"end":{"line":3,"column":31}},"loc":{"start":{"line":3,"column":79},"end":{"line":9,"column":5}},"line":3}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":2},"end":{"line":10,"column":3}},"type":"if","locations":[{"start":{"line":2,"column":2},"end":{"line":10,"column":3}},{"start":{},"end":{}}],"line":2},"1":{"loc":{"start":{"line":2,"column":6},"end":{"line":2,"column":52}},"type":"binary-expr","locations":[{"start":{"line":2,"column":6},"end":{"line":2,"column":17}},{"start":{"line":2,"column":21},"end":{"line":2,"column":52}}],"line":2}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0},"f":{"0":0,"1":0},"b":{"0":[0,0],"1":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/Download.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/Download.js","statementMap":{"0":{"start":{"line":4,"column":2},"end":{"line":8,"column":4}}},"fnMap":{"0":{"name":"Download","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":32}},"loc":{"start":{"line":3,"column":43},"end":{"line":9,"column":1}},"line":3}},"branchMap":{},"s":{"0":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/EventArgs.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/EventArgs.js","statementMap":{"0":{"start":{"line":3,"column":18},"end":{"line":16,"column":3}},"1":{"start":{"line":4,"column":14},"end":{"line":4,"column":24}},"2":{"start":{"line":5,"column":4},"end":{"line":15,"column":5}},"3":{"start":{"line":7,"column":8},"end":{"line":7,"column":65}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":14}},"5":{"start":{"line":10,"column":8},"end":{"line":10,"column":65}},"6":{"start":{"line":11,"column":8},"end":{"line":11,"column":14}},"7":{"start":{"line":13,"column":8},"end":{"line":13,"column":61}},"8":{"start":{"line":14,"column":8},"end":{"line":14,"column":14}},"9":{"start":{"line":17,"column":2},"end":{"line":24,"column":4}},"10":{"start":{"line":20,"column":36},"end":{"line":20,"column":58}},"11":{"start":{"line":21,"column":38},"end":{"line":21,"column":56}},"12":{"start":{"line":22,"column":38},"end":{"line":22,"column":56}}},"fnMap":{"0":{"name":"EventArgs","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":33}},"loc":{"start":{"line":1,"column":36},"end":{"line":25,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":3,"column":18},"end":{"line":3,"column":19}},"loc":{"start":{"line":3,"column":31},"end":{"line":16,"column":3}},"line":3},"2":{"name":"(anonymous_2)","decl":{"start":{"line":20,"column":31},"end":{"line":20,"column":32}},"loc":{"start":{"line":20,"column":36},"end":{"line":20,"column":58}},"line":20},"3":{"name":"(anonymous_3)","decl":{"start":{"line":21,"column":33},"end":{"line":21,"column":34}},"loc":{"start":{"line":21,"column":38},"end":{"line":21,"column":56}},"line":21},"4":{"name":"(anonymous_4)","decl":{"start":{"line":22,"column":33},"end":{"line":22,"column":34}},"loc":{"start":{"line":22,"column":38},"end":{"line":22,"column":56}},"line":22}},"branchMap":{"0":{"loc":{"start":{"line":5,"column":4},"end":{"line":15,"column":5}},"type":"switch","locations":[{"start":{"line":6,"column":6},"end":{"line":8,"column":14}},{"start":{"line":9,"column":6},"end":{"line":11,"column":14}},{"start":{"line":12,"column":6},"end":{"line":14,"column":14}}],"line":5}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0},"b":{"0":[0,0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/EventArgs2.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/EventArgs2.js","statementMap":{"0":{"start":{"line":2,"column":18},"end":{"line":16,"column":3}},"1":{"start":{"line":3,"column":17},"end":{"line":3,"column":38}},"2":{"start":{"line":4,"column":14},"end":{"line":4,"column":24}},"3":{"start":{"line":5,"column":4},"end":{"line":15,"column":5}},"4":{"start":{"line":7,"column":8},"end":{"line":7,"column":65}},"5":{"start":{"line":8,"column":8},"end":{"line":8,"column":14}},"6":{"start":{"line":10,"column":8},"end":{"line":10,"column":65}},"7":{"start":{"line":11,"column":8},"end":{"line":11,"column":14}},"8":{"start":{"line":13,"column":8},"end":{"line":13,"column":61}},"9":{"start":{"line":14,"column":8},"end":{"line":14,"column":14}},"10":{"start":{"line":17,"column":2},"end":{"line":24,"column":4}}},"fnMap":{"0":{"name":"EventArgs2","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":34}},"loc":{"start":{"line":1,"column":37},"end":{"line":25,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":2,"column":18},"end":{"line":2,"column":19}},"loc":{"start":{"line":2,"column":23},"end":{"line":16,"column":3}},"line":2}},"branchMap":{"0":{"loc":{"start":{"line":5,"column":4},"end":{"line":15,"column":5}},"type":"switch","locations":[{"start":{"line":6,"column":6},"end":{"line":8,"column":14}},{"start":{"line":9,"column":6},"end":{"line":11,"column":14}},{"start":{"line":12,"column":6},"end":{"line":14,"column":14}}],"line":5}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0},"f":{"0":0,"1":0},"b":{"0":[0,0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/EventBasic.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/EventBasic.js","statementMap":{"0":{"start":{"line":3,"column":18},"end":{"line":17,"column":3}},"1":{"start":{"line":4,"column":14},"end":{"line":4,"column":24}},"2":{"start":{"line":6,"column":4},"end":{"line":16,"column":5}},"3":{"start":{"line":8,"column":8},"end":{"line":8,"column":44}},"4":{"start":{"line":9,"column":8},"end":{"line":9,"column":14}},"5":{"start":{"line":11,"column":8},"end":{"line":11,"column":44}},"6":{"start":{"line":12,"column":8},"end":{"line":12,"column":14}},"7":{"start":{"line":14,"column":8},"end":{"line":14,"column":40}},"8":{"start":{"line":15,"column":8},"end":{"line":15,"column":14}},"9":{"start":{"line":19,"column":2},"end":{"line":24,"column":4}}},"fnMap":{"0":{"name":"EventBasic","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":34}},"loc":{"start":{"line":1,"column":45},"end":{"line":25,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":3,"column":18},"end":{"line":3,"column":19}},"loc":{"start":{"line":3,"column":24},"end":{"line":17,"column":3}},"line":3}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":4},"end":{"line":16,"column":5}},"type":"switch","locations":[{"start":{"line":7,"column":6},"end":{"line":9,"column":14}},{"start":{"line":10,"column":6},"end":{"line":12,"column":14}},{"start":{"line":13,"column":6},"end":{"line":15,"column":14}}],"line":6}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0},"f":{"0":0,"1":0},"b":{"0":[0,0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/EventCompare.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/EventCompare.js","statementMap":{"0":{"start":{"line":5,"column":30},"end":{"line":5,"column":42}},"1":{"start":{"line":7,"column":19},"end":{"line":7,"column":72}},"2":{"start":{"line":7,"column":24},"end":{"line":7,"column":72}},"3":{"start":{"line":7,"column":39},"end":{"line":7,"column":71}},"4":{"start":{"line":8,"column":19},"end":{"line":8,"column":72}},"5":{"start":{"line":8,"column":24},"end":{"line":8,"column":72}},"6":{"start":{"line":8,"column":39},"end":{"line":8,"column":71}},"7":{"start":{"line":9,"column":2},"end":{"line":22,"column":4}}},"fnMap":{"0":{"name":"EventCompare","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":36}},"loc":{"start":{"line":4,"column":39},"end":{"line":23,"column":1}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":7,"column":19},"end":{"line":7,"column":20}},"loc":{"start":{"line":7,"column":24},"end":{"line":7,"column":72}},"line":7},"2":{"name":"(anonymous_2)","decl":{"start":{"line":7,"column":34},"end":{"line":7,"column":35}},"loc":{"start":{"line":7,"column":39},"end":{"line":7,"column":71}},"line":7},"3":{"name":"(anonymous_3)","decl":{"start":{"line":8,"column":19},"end":{"line":8,"column":20}},"loc":{"start":{"line":8,"column":24},"end":{"line":8,"column":72}},"line":8},"4":{"name":"(anonymous_4)","decl":{"start":{"line":8,"column":34},"end":{"line":8,"column":35}},"loc":{"start":{"line":8,"column":39},"end":{"line":8,"column":71}},"line":8}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/EventError.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/EventError.js","statementMap":{"0":{"start":{"line":4,"column":26},"end":{"line":4,"column":39}},"1":{"start":{"line":6,"column":22},"end":{"line":6,"column":58}},"2":{"start":{"line":6,"column":28},"end":{"line":6,"column":58}},"3":{"start":{"line":7,"column":2},"end":{"line":9,"column":4}}},"fnMap":{"0":{"name":"EventError","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":34}},"loc":{"start":{"line":3,"column":49},"end":{"line":10,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":6,"column":22},"end":{"line":6,"column":23}},"loc":{"start":{"line":6,"column":28},"end":{"line":6,"column":58}},"line":6}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0},"f":{"0":0,"1":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/EventKey.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/EventKey.js","statementMap":{"0":{"start":{"line":3,"column":20},"end":{"line":7,"column":3}},"1":{"start":{"line":4,"column":4},"end":{"line":6,"column":5}},"2":{"start":{"line":5,"column":6},"end":{"line":5,"column":36}},"3":{"start":{"line":9,"column":2},"end":{"line":16,"column":4}}},"fnMap":{"0":{"name":"EventKey","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":32}},"loc":{"start":{"line":1,"column":35},"end":{"line":17,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":3,"column":20},"end":{"line":3,"column":21}},"loc":{"start":{"line":3,"column":25},"end":{"line":7,"column":3}},"line":3}},"branchMap":{"0":{"loc":{"start":{"line":4,"column":4},"end":{"line":6,"column":5}},"type":"if","locations":[{"start":{"line":4,"column":4},"end":{"line":6,"column":5}},{"start":{},"end":{}}],"line":4},"1":{"loc":{"start":{"line":4,"column":8},"end":{"line":4,"column":34}},"type":"binary-expr","locations":[{"start":{"line":4,"column":8},"end":{"line":4,"column":17}},{"start":{"line":4,"column":21},"end":{"line":4,"column":34}}],"line":4}},"s":{"0":0,"1":0,"2":0,"3":0},"f":{"0":0,"1":0},"b":{"0":[0,0],"1":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/EventMouse.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/EventMouse.js","statementMap":{"0":{"start":{"line":5,"column":32},"end":{"line":5,"column":51}},"1":{"start":{"line":7,"column":22},"end":{"line":7,"column":48}},"2":{"start":{"line":7,"column":28},"end":{"line":7,"column":48}},"3":{"start":{"line":8,"column":22},"end":{"line":8,"column":49}},"4":{"start":{"line":8,"column":28},"end":{"line":8,"column":49}},"5":{"start":{"line":9,"column":2},"end":{"line":12,"column":4}}},"fnMap":{"0":{"name":"EventMouse","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":34}},"loc":{"start":{"line":3,"column":65},"end":{"line":13,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":7,"column":22},"end":{"line":7,"column":23}},"loc":{"start":{"line":7,"column":28},"end":{"line":7,"column":48}},"line":7},"2":{"name":"(anonymous_2)","decl":{"start":{"line":8,"column":22},"end":{"line":8,"column":23}},"loc":{"start":{"line":8,"column":28},"end":{"line":8,"column":49}},"line":8}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"f":{"0":0,"1":0,"2":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/EventObj.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/EventObj.js","statementMap":{"0":{"start":{"line":3,"column":22},"end":{"line":3,"column":41}},"1":{"start":{"line":3,"column":27},"end":{"line":3,"column":41}},"2":{"start":{"line":4,"column":2},"end":{"line":6,"column":4}}},"fnMap":{"0":{"name":"EventObj","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":32}},"loc":{"start":{"line":1,"column":35},"end":{"line":7,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":3,"column":22},"end":{"line":3,"column":23}},"loc":{"start":{"line":3,"column":27},"end":{"line":3,"column":41}},"line":3}},"branchMap":{},"s":{"0":0,"1":0,"2":0},"f":{"0":0,"1":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/EventOnce.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/EventOnce.js","statementMap":{"0":{"start":{"line":5,"column":32},"end":{"line":5,"column":47}},"1":{"start":{"line":7,"column":30},"end":{"line":7,"column":43}},"2":{"start":{"line":8,"column":22},"end":{"line":15,"column":3}},"3":{"start":{"line":10,"column":4},"end":{"line":14,"column":5}},"4":{"start":{"line":11,"column":6},"end":{"line":11,"column":53}},"5":{"start":{"line":13,"column":6},"end":{"line":13,"column":23}},"6":{"start":{"line":17,"column":2},"end":{"line":22,"column":4}}},"fnMap":{"0":{"name":"EventOnce","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":33}},"loc":{"start":{"line":3,"column":36},"end":{"line":23,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":22},"end":{"line":8,"column":23}},"loc":{"start":{"line":8,"column":27},"end":{"line":15,"column":3}},"line":8}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":4},"end":{"line":14,"column":5}},"type":"if","locations":[{"start":{"line":10,"column":4},"end":{"line":14,"column":5}},{"start":{},"end":{}}],"line":10}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},"f":{"0":0,"1":0},"b":{"0":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/EventPassive.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/EventPassive.js","statementMap":{"0":{"start":{"line":5,"column":22},"end":{"line":5,"column":45}},"1":{"start":{"line":5,"column":27},"end":{"line":5,"column":45}},"2":{"start":{"line":6,"column":17},"end":{"line":6,"column":29}},"3":{"start":{"line":7,"column":2},"end":{"line":13,"column":5}},"4":{"start":{"line":8,"column":16},"end":{"line":8,"column":30}},"5":{"start":{"line":9,"column":4},"end":{"line":9,"column":67}},"6":{"start":{"line":10,"column":4},"end":{"line":12,"column":7}},"7":{"start":{"line":11,"column":6},"end":{"line":11,"column":52}},"8":{"start":{"line":15,"column":2},"end":{"line":19,"column":4}}},"fnMap":{"0":{"name":"EventPassive","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":36}},"loc":{"start":{"line":4,"column":39},"end":{"line":20,"column":1}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":5,"column":22},"end":{"line":5,"column":23}},"loc":{"start":{"line":5,"column":27},"end":{"line":5,"column":45}},"line":5},"2":{"name":"(anonymous_2)","decl":{"start":{"line":7,"column":12},"end":{"line":7,"column":13}},"loc":{"start":{"line":7,"column":18},"end":{"line":13,"column":3}},"line":7},"3":{"name":"(anonymous_3)","decl":{"start":{"line":10,"column":12},"end":{"line":10,"column":13}},"loc":{"start":{"line":10,"column":18},"end":{"line":12,"column":5}},"line":10}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0},"f":{"0":0,"1":0,"2":0,"3":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/EventPoint.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/EventPoint.js","statementMap":{"0":{"start":{"line":5,"column":30},"end":{"line":5,"column":54}},"1":{"start":{"line":6,"column":30},"end":{"line":6,"column":54}},"2":{"start":{"line":7,"column":30},"end":{"line":7,"column":54}},"3":{"start":{"line":8,"column":30},"end":{"line":8,"column":54}},"4":{"start":{"line":11,"column":26},"end":{"line":16,"column":3}},"5":{"start":{"line":12,"column":4},"end":{"line":12,"column":46}},"6":{"start":{"line":13,"column":4},"end":{"line":13,"column":40}},"7":{"start":{"line":14,"column":4},"end":{"line":14,"column":46}},"8":{"start":{"line":15,"column":4},"end":{"line":15,"column":70}},"9":{"start":{"line":18,"column":2},"end":{"line":25,"column":4}}},"fnMap":{"0":{"name":"EventPoint","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":34}},"loc":{"start":{"line":4,"column":37},"end":{"line":26,"column":1}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":26},"end":{"line":11,"column":27}},"loc":{"start":{"line":11,"column":31},"end":{"line":16,"column":3}},"line":11}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0},"f":{"0":0,"1":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/EventPropagation.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/EventPropagation.js","statementMap":{"0":{"start":{"line":4,"column":23},"end":{"line":4,"column":52}},"1":{"start":{"line":4,"column":29},"end":{"line":4,"column":52}},"2":{"start":{"line":5,"column":19},"end":{"line":5,"column":44}},"3":{"start":{"line":5,"column":25},"end":{"line":5,"column":44}},"4":{"start":{"line":6,"column":22},"end":{"line":6,"column":50}},"5":{"start":{"line":6,"column":28},"end":{"line":6,"column":50}},"6":{"start":{"line":8,"column":2},"end":{"line":18,"column":4}}},"fnMap":{"0":{"name":"EventPropagation","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":40}},"loc":{"start":{"line":3,"column":43},"end":{"line":19,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":23},"end":{"line":4,"column":24}},"loc":{"start":{"line":4,"column":29},"end":{"line":4,"column":52}},"line":4},"2":{"name":"(anonymous_2)","decl":{"start":{"line":5,"column":19},"end":{"line":5,"column":20}},"loc":{"start":{"line":5,"column":25},"end":{"line":5,"column":44}},"line":5},"3":{"name":"(anonymous_3)","decl":{"start":{"line":6,"column":22},"end":{"line":6,"column":23}},"loc":{"start":{"line":6,"column":28},"end":{"line":6,"column":50}},"line":6}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},"f":{"0":0,"1":0,"2":0,"3":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/ForFilter.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/ForFilter.js","statementMap":{"0":{"start":{"line":4,"column":19},"end":{"line":4,"column":57}},"1":{"start":{"line":4,"column":38},"end":{"line":4,"column":56}},"2":{"start":{"line":5,"column":2},"end":{"line":18,"column":4}},"3":{"start":{"line":8,"column":6},"end":{"line":15,"column":23}}},"fnMap":{"0":{"name":"ForFilter","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":33}},"loc":{"start":{"line":3,"column":43},"end":{"line":19,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":30},"end":{"line":4,"column":31}},"loc":{"start":{"line":4,"column":38},"end":{"line":4,"column":56}},"line":4},"2":{"name":"(anonymous_2)","decl":{"start":{"line":7,"column":18},"end":{"line":7,"column":19}},"loc":{"start":{"line":8,"column":6},"end":{"line":15,"column":23}},"line":8}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0},"f":{"0":0,"1":0,"2":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/ForItem.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/ForItem.js","statementMap":{"0":{"start":{"line":4,"column":2},"end":{"line":13,"column":4}}},"fnMap":{"0":{"name":"ForItem","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":31}},"loc":{"start":{"line":3,"column":42},"end":{"line":14,"column":1}},"line":3}},"branchMap":{},"s":{"0":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/ForList.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/ForList.js","statementMap":{"0":{"start":{"line":5,"column":2},"end":{"line":41,"column":4}},"1":{"start":{"line":9,"column":6},"end":{"line":16,"column":9}}},"fnMap":{"0":{"name":"ForList","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":31}},"loc":{"start":{"line":4,"column":41},"end":{"line":42,"column":1}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":13},"end":{"line":8,"column":14}},"loc":{"start":{"line":9,"column":6},"end":{"line":16,"column":9}},"line":9}},"branchMap":{},"s":{"0":0,"1":0},"f":{"0":0,"1":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/ForNest.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/ForNest.js","statementMap":{"0":{"start":{"line":4,"column":2},"end":{"line":10,"column":4}},"1":{"start":{"line":7,"column":8},"end":{"line":7,"column":47}}},"fnMap":{"0":{"name":"ForNest","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":31}},"loc":{"start":{"line":3,"column":41},"end":{"line":11,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":6,"column":15},"end":{"line":6,"column":16}},"loc":{"start":{"line":7,"column":8},"end":{"line":7,"column":47}},"line":7}},"branchMap":{},"s":{"0":1,"1":5},"f":{"0":1,"1":5},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"99d3c8788872722039bc508586a6cd5e242b41a9"} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/ForSort.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/ForSort.js","statementMap":{"0":{"start":{"line":4,"column":2},"end":{"line":4,"column":40}},"1":{"start":{"line":4,"column":21},"end":{"line":4,"column":38}},"2":{"start":{"line":5,"column":2},"end":{"line":18,"column":4}},"3":{"start":{"line":8,"column":6},"end":{"line":15,"column":23}}},"fnMap":{"0":{"name":"ForSort","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":31}},"loc":{"start":{"line":3,"column":41},"end":{"line":19,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":11},"end":{"line":4,"column":12}},"loc":{"start":{"line":4,"column":21},"end":{"line":4,"column":38}},"line":4},"2":{"name":"(anonymous_2)","decl":{"start":{"line":7,"column":13},"end":{"line":7,"column":14}},"loc":{"start":{"line":8,"column":6},"end":{"line":15,"column":23}},"line":8}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0},"f":{"0":0,"1":0,"2":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/ListTemplate.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/ListTemplate.js","statementMap":{"0":{"start":{"line":4,"column":2},"end":{"line":13,"column":4}},"1":{"start":{"line":7,"column":8},"end":{"line":10,"column":25}}},"fnMap":{"0":{"name":"ListTemplate","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":36}},"loc":{"start":{"line":3,"column":56},"end":{"line":14,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":6,"column":15},"end":{"line":6,"column":16}},"loc":{"start":{"line":7,"column":8},"end":{"line":10,"column":25}},"line":7}},"branchMap":{},"s":{"0":0,"1":0},"f":{"0":0,"1":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/MyHello.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/MyHello.js","statementMap":{"0":{"start":{"line":30,"column":2},"end":{"line":32,"column":4}},"1":{"start":{"line":36,"column":0},"end":{"line":38,"column":2}}},"fnMap":{"0":{"name":"MyHello","decl":{"start":{"line":29,"column":9},"end":{"line":29,"column":16}},"loc":{"start":{"line":29,"column":24},"end":{"line":33,"column":1}},"line":29}},"branchMap":{},"s":{"0":0,"1":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/SelectStyle.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/SelectStyle.js","statementMap":{"0":{"start":{"line":5,"column":2},"end":{"line":45,"column":4}}},"fnMap":{"0":{"name":"SelectStyle","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":35}},"loc":{"start":{"line":4,"column":46},"end":{"line":46,"column":1}},"line":4}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":27},"end":{"line":7,"column":62}},"type":"cond-expr","locations":[{"start":{"line":7,"column":46},"end":{"line":7,"column":53}},{"start":{"line":7,"column":56},"end":{"line":7,"column":62}}],"line":7}},"s":{"0":0},"f":{"0":0},"b":{"0":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/StateBasic.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/StateBasic.js","statementMap":{"0":{"start":{"line":5,"column":28},"end":{"line":5,"column":42}},"1":{"start":{"line":7,"column":2},"end":{"line":7,"column":36}},"2":{"start":{"line":8,"column":22},"end":{"line":8,"column":47}},"3":{"start":{"line":8,"column":28},"end":{"line":8,"column":47}},"4":{"start":{"line":10,"column":2},"end":{"line":15,"column":4}}},"fnMap":{"0":{"name":"StateBasic","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":34}},"loc":{"start":{"line":3,"column":45},"end":{"line":16,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":22},"end":{"line":8,"column":23}},"loc":{"start":{"line":8,"column":28},"end":{"line":8,"column":47}},"line":8}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0},"f":{"0":0,"1":0},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"601b3ea530d5398596c017a7cacc676b570ed34f"} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/StateCounter.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/StateCounter.js","statementMap":{"0":{"start":{"line":5,"column":22},"end":{"line":5,"column":42}},"1":{"start":{"line":5,"column":28},"end":{"line":5,"column":42}},"2":{"start":{"line":6,"column":2},"end":{"line":10,"column":4}}},"fnMap":{"0":{"name":"StateCounter","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":36}},"loc":{"start":{"line":3,"column":57},"end":{"line":11,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":5,"column":22},"end":{"line":5,"column":23}},"loc":{"start":{"line":5,"column":28},"end":{"line":5,"column":42}},"line":5}},"branchMap":{},"s":{"0":0,"1":0,"2":0},"f":{"0":0,"1":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/StateParent.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/StateParent.js","statementMap":{"0":{"start":{"line":6,"column":28},"end":{"line":6,"column":39}},"1":{"start":{"line":8,"column":17},"end":{"line":8,"column":48}},"2":{"start":{"line":8,"column":25},"end":{"line":8,"column":48}},"3":{"start":{"line":8,"column":39},"end":{"line":8,"column":47}},"4":{"start":{"line":9,"column":2},"end":{"line":17,"column":4}}},"fnMap":{"0":{"name":"StateParent","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":35}},"loc":{"start":{"line":4,"column":38},"end":{"line":18,"column":1}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":17},"end":{"line":8,"column":18}},"loc":{"start":{"line":8,"column":25},"end":{"line":8,"column":48}},"line":8},"2":{"name":"(anonymous_2)","decl":{"start":{"line":8,"column":34},"end":{"line":8,"column":35}},"loc":{"start":{"line":8,"column":39},"end":{"line":8,"column":47}},"line":8}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0},"f":{"0":0,"1":0,"2":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/StyledPanel.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/StyledPanel.js","statementMap":{"0":{"start":{"line":2,"column":2},"end":{"line":13,"column":4}}},"fnMap":{"0":{"name":"StyledPanel","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":35}},"loc":{"start":{"line":1,"column":50},"end":{"line":14,"column":1}},"line":1}},"branchMap":{},"s":{"0":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/TitledPanel.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/TitledPanel.js","statementMap":{"0":{"start":{"line":20,"column":16},"end":{"line":20,"column":59}},"1":{"start":{"line":20,"column":38},"end":{"line":20,"column":58}},"2":{"start":{"line":21,"column":15},"end":{"line":21,"column":57}},"3":{"start":{"line":21,"column":37},"end":{"line":21,"column":56}},"4":{"start":{"line":23,"column":2},"end":{"line":36,"column":4}}},"fnMap":{"0":{"name":"TitledPanel","decl":{"start":{"line":19,"column":24},"end":{"line":19,"column":35}},"loc":{"start":{"line":19,"column":50},"end":{"line":37,"column":1}},"line":19},"1":{"name":"(anonymous_1)","decl":{"start":{"line":20,"column":30},"end":{"line":20,"column":31}},"loc":{"start":{"line":20,"column":38},"end":{"line":20,"column":58}},"line":20},"2":{"name":"(anonymous_2)","decl":{"start":{"line":21,"column":29},"end":{"line":21,"column":30}},"loc":{"start":{"line":21,"column":37},"end":{"line":21,"column":56}},"line":21}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0},"f":{"0":0,"1":0,"2":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/TypeProp.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/TypeProp.js","statementMap":{"0":{"start":{"line":5,"column":2},"end":{"line":5,"column":21}},"1":{"start":{"line":6,"column":2},"end":{"line":6,"column":35}},"2":{"start":{"line":9,"column":0},"end":{"line":35,"column":2}}},"fnMap":{"0":{"name":"Member","decl":{"start":{"line":3,"column":16},"end":{"line":3,"column":22}},"loc":{"start":{"line":3,"column":25},"end":{"line":3,"column":27}},"line":3},"1":{"name":"TypeProp","decl":{"start":{"line":4,"column":9},"end":{"line":4,"column":17}},"loc":{"start":{"line":4,"column":25},"end":{"line":7,"column":1}},"line":4}},"branchMap":{},"s":{"0":0,"1":0,"2":0},"f":{"0":0,"1":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/books.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap03/books.js","statementMap":{"0":{"start":{"line":1,"column":14},"end":{"line":42,"column":1}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"51a70b4044b028074e18ca33b80e76991e56788c"} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/FormBasic.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/FormBasic.js","statementMap":{"0":{"start":{"line":5,"column":24},"end":{"line":10,"column":3}},"1":{"start":{"line":14,"column":29},"end":{"line":16,"column":4}},"2":{"start":{"line":19,"column":19},"end":{"line":19,"column":44}},"3":{"start":{"line":19,"column":27},"end":{"line":19,"column":44}},"4":{"start":{"line":20,"column":18},"end":{"line":20,"column":41}},"5":{"start":{"line":20,"column":25},"end":{"line":20,"column":41}},"6":{"start":{"line":22,"column":2},"end":{"line":82,"column":4}}},"fnMap":{"0":{"name":"FormBasic","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":33}},"loc":{"start":{"line":3,"column":36},"end":{"line":83,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":19,"column":19},"end":{"line":19,"column":20}},"loc":{"start":{"line":19,"column":27},"end":{"line":19,"column":44}},"line":19},"2":{"name":"(anonymous_2)","decl":{"start":{"line":20,"column":18},"end":{"line":20,"column":19}},"loc":{"start":{"line":20,"column":25},"end":{"line":20,"column":41}},"line":20}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},"f":{"0":0,"1":0,"2":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/FormCheck.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/FormCheck.js","statementMap":{"0":{"start":{"line":5,"column":26},"end":{"line":7,"column":4}},"1":{"start":{"line":10,"column":26},"end":{"line":15,"column":3}},"2":{"start":{"line":11,"column":4},"end":{"line":14,"column":7}},"3":{"start":{"line":18,"column":15},"end":{"line":20,"column":3}},"4":{"start":{"line":19,"column":4},"end":{"line":19,"column":62}},"5":{"start":{"line":22,"column":2},"end":{"line":30,"column":4}}},"fnMap":{"0":{"name":"FormCheck","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":33}},"loc":{"start":{"line":3,"column":36},"end":{"line":31,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":26},"end":{"line":10,"column":27}},"loc":{"start":{"line":10,"column":31},"end":{"line":15,"column":3}},"line":10},"2":{"name":"(anonymous_2)","decl":{"start":{"line":18,"column":15},"end":{"line":18,"column":16}},"loc":{"start":{"line":18,"column":21},"end":{"line":20,"column":3}},"line":18}},"branchMap":{"0":{"loc":{"start":{"line":19,"column":26},"end":{"line":19,"column":58}},"type":"cond-expr","locations":[{"start":{"line":19,"column":43},"end":{"line":19,"column":47}},{"start":{"line":19,"column":49},"end":{"line":19,"column":58}}],"line":19}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"f":{"0":0,"1":0,"2":0},"b":{"0":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/FormCheckMulti.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/FormCheckMulti.js","statementMap":{"0":{"start":{"line":5,"column":26},"end":{"line":7,"column":4}},"1":{"start":{"line":10,"column":26},"end":{"line":23,"column":3}},"2":{"start":{"line":11,"column":15},"end":{"line":11,"column":26}},"3":{"start":{"line":13,"column":4},"end":{"line":17,"column":5}},"4":{"start":{"line":14,"column":6},"end":{"line":14,"column":30}},"5":{"start":{"line":16,"column":6},"end":{"line":16,"column":47}},"6":{"start":{"line":19,"column":4},"end":{"line":22,"column":7}},"7":{"start":{"line":26,"column":15},"end":{"line":28,"column":3}},"8":{"start":{"line":27,"column":4},"end":{"line":27,"column":42}},"9":{"start":{"line":31,"column":2},"end":{"line":58,"column":4}}},"fnMap":{"0":{"name":"FormCheckMulti","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":38}},"loc":{"start":{"line":3,"column":41},"end":{"line":59,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":26},"end":{"line":10,"column":27}},"loc":{"start":{"line":10,"column":31},"end":{"line":23,"column":3}},"line":10},"2":{"name":"(anonymous_2)","decl":{"start":{"line":26,"column":15},"end":{"line":26,"column":16}},"loc":{"start":{"line":26,"column":21},"end":{"line":28,"column":3}},"line":26}},"branchMap":{"0":{"loc":{"start":{"line":13,"column":4},"end":{"line":17,"column":5}},"type":"if","locations":[{"start":{"line":13,"column":4},"end":{"line":17,"column":5}},{"start":{"line":15,"column":11},"end":{"line":17,"column":5}}],"line":13}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0},"f":{"0":0,"1":0,"2":0},"b":{"0":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/FormFile.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/FormFile.js","statementMap":{"0":{"start":{"line":5,"column":15},"end":{"line":5,"column":27}},"1":{"start":{"line":9,"column":15},"end":{"line":9,"column":33}},"2":{"start":{"line":11,"column":4},"end":{"line":15,"column":5}},"3":{"start":{"line":12,"column":6},"end":{"line":12,"column":35}},"4":{"start":{"line":13,"column":6},"end":{"line":13,"column":34}},"5":{"start":{"line":14,"column":6},"end":{"line":14,"column":55}},"6":{"start":{"line":18,"column":2},"end":{"line":24,"column":4}}},"fnMap":{"0":{"name":"FormFile","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":32}},"loc":{"start":{"line":3,"column":35},"end":{"line":25,"column":1}},"line":3},"1":{"name":"show","decl":{"start":{"line":8,"column":11},"end":{"line":8,"column":15}},"loc":{"start":{"line":8,"column":18},"end":{"line":16,"column":3}},"line":8}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},"f":{"0":0,"1":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/FormList.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/FormList.js","statementMap":{"0":{"start":{"line":5,"column":26},"end":{"line":7,"column":4}},"1":{"start":{"line":10,"column":25},"end":{"line":25,"column":3}},"2":{"start":{"line":12,"column":17},"end":{"line":12,"column":19}},"3":{"start":{"line":14,"column":17},"end":{"line":14,"column":33}},"4":{"start":{"line":15,"column":4},"end":{"line":19,"column":5}},"5":{"start":{"line":16,"column":6},"end":{"line":18,"column":7}},"6":{"start":{"line":17,"column":8},"end":{"line":17,"column":29}},"7":{"start":{"line":21,"column":4},"end":{"line":24,"column":7}},"8":{"start":{"line":28,"column":15},"end":{"line":30,"column":3}},"9":{"start":{"line":29,"column":4},"end":{"line":29,"column":42}},"10":{"start":{"line":32,"column":2},"end":{"line":46,"column":4}}},"fnMap":{"0":{"name":"FormList","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":32}},"loc":{"start":{"line":3,"column":35},"end":{"line":47,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":25},"end":{"line":10,"column":26}},"loc":{"start":{"line":10,"column":30},"end":{"line":25,"column":3}},"line":10},"2":{"name":"(anonymous_2)","decl":{"start":{"line":28,"column":15},"end":{"line":28,"column":16}},"loc":{"start":{"line":28,"column":21},"end":{"line":30,"column":3}},"line":28}},"branchMap":{"0":{"loc":{"start":{"line":16,"column":6},"end":{"line":18,"column":7}},"type":"if","locations":[{"start":{"line":16,"column":6},"end":{"line":18,"column":7}},{"start":{},"end":{}}],"line":16}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0},"f":{"0":0,"1":0,"2":0},"b":{"0":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/FormRadio.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/FormRadio.js","statementMap":{"0":{"start":{"line":5,"column":26},"end":{"line":7,"column":4}},"1":{"start":{"line":10,"column":21},"end":{"line":15,"column":3}},"2":{"start":{"line":11,"column":4},"end":{"line":14,"column":7}},"3":{"start":{"line":18,"column":15},"end":{"line":20,"column":3}},"4":{"start":{"line":19,"column":4},"end":{"line":19,"column":35}},"5":{"start":{"line":23,"column":2},"end":{"line":45,"column":4}}},"fnMap":{"0":{"name":"FormRadio","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":33}},"loc":{"start":{"line":3,"column":36},"end":{"line":46,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":21},"end":{"line":10,"column":22}},"loc":{"start":{"line":10,"column":26},"end":{"line":15,"column":3}},"line":10},"2":{"name":"(anonymous_2)","decl":{"start":{"line":18,"column":15},"end":{"line":18,"column":16}},"loc":{"start":{"line":18,"column":21},"end":{"line":20,"column":3}},"line":18}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"f":{"0":0,"1":0,"2":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/FormSelect.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/FormSelect.js","statementMap":{"0":{"start":{"line":5,"column":26},"end":{"line":7,"column":4}},"1":{"start":{"line":10,"column":21},"end":{"line":15,"column":3}},"2":{"start":{"line":11,"column":4},"end":{"line":14,"column":7}},"3":{"start":{"line":18,"column":15},"end":{"line":20,"column":3}},"4":{"start":{"line":19,"column":4},"end":{"line":19,"column":42}},"5":{"start":{"line":22,"column":2},"end":{"line":35,"column":4}}},"fnMap":{"0":{"name":"FormSelect","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":34}},"loc":{"start":{"line":3,"column":37},"end":{"line":36,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":21},"end":{"line":10,"column":22}},"loc":{"start":{"line":10,"column":26},"end":{"line":15,"column":3}},"line":10},"2":{"name":"(anonymous_2)","decl":{"start":{"line":18,"column":15},"end":{"line":18,"column":16}},"loc":{"start":{"line":18,"column":21},"end":{"line":20,"column":3}},"line":18}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"f":{"0":0,"1":0,"2":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/FormTextarea.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/FormTextarea.js","statementMap":{"0":{"start":{"line":5,"column":26},"end":{"line":7,"column":4}},"1":{"start":{"line":10,"column":21},"end":{"line":15,"column":3}},"2":{"start":{"line":11,"column":4},"end":{"line":14,"column":7}},"3":{"start":{"line":18,"column":15},"end":{"line":20,"column":3}},"4":{"start":{"line":19,"column":4},"end":{"line":19,"column":39}},"5":{"start":{"line":22,"column":2},"end":{"line":32,"column":4}}},"fnMap":{"0":{"name":"FormTextarea","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":36}},"loc":{"start":{"line":3,"column":39},"end":{"line":33,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":21},"end":{"line":10,"column":22}},"loc":{"start":{"line":10,"column":26},"end":{"line":15,"column":3}},"line":10},"2":{"name":"(anonymous_2)","decl":{"start":{"line":18,"column":15},"end":{"line":18,"column":16}},"loc":{"start":{"line":18,"column":21},"end":{"line":20,"column":3}},"line":18}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"f":{"0":0,"1":0,"2":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/FormYup.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/FormYup.js","statementMap":{"0":{"start":{"line":311,"column":0},"end":{"line":324,"column":3}},"1":{"start":{"line":312,"column":2},"end":{"line":323,"column":4}},"2":{"start":{"line":313,"column":19},"end":{"line":313,"column":53}},"3":{"start":{"line":315,"column":18},"end":{"line":315,"column":39}},"4":{"start":{"line":316,"column":6},"end":{"line":320,"column":7}},"5":{"start":{"line":317,"column":8},"end":{"line":319,"column":9}},"6":{"start":{"line":318,"column":10},"end":{"line":318,"column":23}},"7":{"start":{"line":321,"column":6},"end":{"line":321,"column":19}},"8":{"start":{"line":328,"column":15},"end":{"line":352,"column":2}},"9":{"start":{"line":356,"column":60},"end":{"line":365,"column":4}},"10":{"start":{"line":368,"column":19},"end":{"line":368,"column":44}},"11":{"start":{"line":368,"column":27},"end":{"line":368,"column":44}},"12":{"start":{"line":369,"column":18},"end":{"line":369,"column":41}},"13":{"start":{"line":369,"column":25},"end":{"line":369,"column":41}},"14":{"start":{"line":371,"column":2},"end":{"line":407,"column":4}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":311,"column":32},"end":{"line":311,"column":33}},"loc":{"start":{"line":311,"column":43},"end":{"line":324,"column":1}},"line":311},"1":{"name":"(anonymous_1)","decl":{"start":{"line":313,"column":4},"end":{"line":313,"column":5}},"loc":{"start":{"line":313,"column":19},"end":{"line":313,"column":53}},"line":313},"2":{"name":"(anonymous_2)","decl":{"start":{"line":314,"column":4},"end":{"line":314,"column":5}},"loc":{"start":{"line":314,"column":13},"end":{"line":322,"column":5}},"line":314},"3":{"name":"FormYup","decl":{"start":{"line":355,"column":24},"end":{"line":355,"column":31}},"loc":{"start":{"line":355,"column":34},"end":{"line":408,"column":1}},"line":355},"4":{"name":"(anonymous_4)","decl":{"start":{"line":368,"column":19},"end":{"line":368,"column":20}},"loc":{"start":{"line":368,"column":27},"end":{"line":368,"column":44}},"line":368},"5":{"name":"(anonymous_5)","decl":{"start":{"line":369,"column":18},"end":{"line":369,"column":19}},"loc":{"start":{"line":369,"column":25},"end":{"line":369,"column":41}},"line":369}},"branchMap":{"0":{"loc":{"start":{"line":317,"column":8},"end":{"line":319,"column":9}},"type":"if","locations":[{"start":{"line":317,"column":8},"end":{"line":319,"column":9}},{"start":{},"end":{}}],"line":317}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"b":{"0":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/FromKorean.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/FromKorean.js","statementMap":{"0":{"start":{"line":5,"column":15},"end":{"line":25,"column":2}},"1":{"start":{"line":28,"column":60},"end":{"line":36,"column":4}},"2":{"start":{"line":37,"column":19},"end":{"line":37,"column":44}},"3":{"start":{"line":37,"column":27},"end":{"line":37,"column":44}},"4":{"start":{"line":38,"column":18},"end":{"line":38,"column":41}},"5":{"start":{"line":38,"column":25},"end":{"line":38,"column":41}},"6":{"start":{"line":40,"column":2},"end":{"line":76,"column":4}}},"fnMap":{"0":{"name":"FormYup","decl":{"start":{"line":27,"column":24},"end":{"line":27,"column":31}},"loc":{"start":{"line":27,"column":34},"end":{"line":77,"column":1}},"line":27},"1":{"name":"(anonymous_1)","decl":{"start":{"line":37,"column":19},"end":{"line":37,"column":20}},"loc":{"start":{"line":37,"column":27},"end":{"line":37,"column":44}},"line":37},"2":{"name":"(anonymous_2)","decl":{"start":{"line":38,"column":18},"end":{"line":38,"column":19}},"loc":{"start":{"line":38,"column":25},"end":{"line":38,"column":41}},"line":38}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},"f":{"0":0,"1":0,"2":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/StateForm.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/StateForm.js","statementMap":{"0":{"start":{"line":5,"column":26},"end":{"line":8,"column":4}},"1":{"start":{"line":11,"column":21},"end":{"line":16,"column":3}},"2":{"start":{"line":12,"column":4},"end":{"line":15,"column":7}},"3":{"start":{"line":19,"column":15},"end":{"line":21,"column":3}},"4":{"start":{"line":20,"column":4},"end":{"line":20,"column":56}},"5":{"start":{"line":23,"column":2},"end":{"line":42,"column":4}}},"fnMap":{"0":{"name":"StateForm","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":33}},"loc":{"start":{"line":3,"column":36},"end":{"line":43,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":21},"end":{"line":11,"column":22}},"loc":{"start":{"line":11,"column":26},"end":{"line":16,"column":3}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":19,"column":15},"end":{"line":19,"column":16}},"loc":{"start":{"line":19,"column":21},"end":{"line":21,"column":3}},"line":19}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"f":{"0":0,"1":0,"2":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/StateFormUC.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/StateFormUC.js","statementMap":{"0":{"start":{"line":5,"column":15},"end":{"line":5,"column":27}},"1":{"start":{"line":6,"column":14},"end":{"line":6,"column":26}},"2":{"start":{"line":9,"column":15},"end":{"line":11,"column":3}},"3":{"start":{"line":10,"column":4},"end":{"line":10,"column":74}},"4":{"start":{"line":14,"column":2},"end":{"line":32,"column":4}}},"fnMap":{"0":{"name":"StateFormUC","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":35}},"loc":{"start":{"line":3,"column":38},"end":{"line":33,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":9,"column":15},"end":{"line":9,"column":16}},"loc":{"start":{"line":9,"column":21},"end":{"line":11,"column":3}},"line":9}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0},"f":{"0":0,"1":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/StateNest.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/StateNest.js","statementMap":{"0":{"start":{"line":5,"column":26},"end":{"line":11,"column":4}},"1":{"start":{"line":14,"column":21},"end":{"line":19,"column":3}},"2":{"start":{"line":15,"column":4},"end":{"line":18,"column":7}},"3":{"start":{"line":22,"column":25},"end":{"line":30,"column":3}},"4":{"start":{"line":23,"column":4},"end":{"line":29,"column":7}},"5":{"start":{"line":33,"column":15},"end":{"line":35,"column":3}},"6":{"start":{"line":34,"column":4},"end":{"line":34,"column":73}},"7":{"start":{"line":37,"column":2},"end":{"line":59,"column":4}}},"fnMap":{"0":{"name":"StateNest","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":33}},"loc":{"start":{"line":3,"column":36},"end":{"line":60,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":14,"column":21},"end":{"line":14,"column":22}},"loc":{"start":{"line":14,"column":26},"end":{"line":19,"column":3}},"line":14},"2":{"name":"(anonymous_2)","decl":{"start":{"line":22,"column":25},"end":{"line":22,"column":26}},"loc":{"start":{"line":22,"column":30},"end":{"line":30,"column":3}},"line":22},"3":{"name":"(anonymous_3)","decl":{"start":{"line":33,"column":15},"end":{"line":33,"column":16}},"loc":{"start":{"line":33,"column":21},"end":{"line":35,"column":3}},"line":33}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0},"f":{"0":0,"1":0,"2":0,"3":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/StateNestImmer.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/StateNestImmer.js","statementMap":{"0":{"start":{"line":5,"column":26},"end":{"line":11,"column":4}},"1":{"start":{"line":14,"column":21},"end":{"line":18,"column":3}},"2":{"start":{"line":15,"column":4},"end":{"line":17,"column":7}},"3":{"start":{"line":16,"column":6},"end":{"line":16,"column":43}},"4":{"start":{"line":21,"column":25},"end":{"line":25,"column":3}},"5":{"start":{"line":22,"column":4},"end":{"line":24,"column":7}},"6":{"start":{"line":23,"column":6},"end":{"line":23,"column":51}},"7":{"start":{"line":27,"column":15},"end":{"line":29,"column":3}},"8":{"start":{"line":28,"column":4},"end":{"line":28,"column":73}},"9":{"start":{"line":31,"column":2},"end":{"line":53,"column":4}}},"fnMap":{"0":{"name":"StateNestImmer","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":38}},"loc":{"start":{"line":3,"column":41},"end":{"line":54,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":14,"column":21},"end":{"line":14,"column":22}},"loc":{"start":{"line":14,"column":26},"end":{"line":18,"column":3}},"line":14},"2":{"name":"(anonymous_2)","decl":{"start":{"line":15,"column":12},"end":{"line":15,"column":13}},"loc":{"start":{"line":15,"column":20},"end":{"line":17,"column":5}},"line":15},"3":{"name":"(anonymous_3)","decl":{"start":{"line":21,"column":25},"end":{"line":21,"column":26}},"loc":{"start":{"line":21,"column":30},"end":{"line":25,"column":3}},"line":21},"4":{"name":"(anonymous_4)","decl":{"start":{"line":22,"column":12},"end":{"line":22,"column":13}},"loc":{"start":{"line":22,"column":20},"end":{"line":24,"column":5}},"line":22},"5":{"name":"(anonymous_5)","decl":{"start":{"line":27,"column":15},"end":{"line":27,"column":16}},"loc":{"start":{"line":27,"column":21},"end":{"line":29,"column":3}},"line":27}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/StateNestImmer2.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/StateNestImmer2.js","statementMap":{"0":{"start":{"line":4,"column":26},"end":{"line":10,"column":4}},"1":{"start":{"line":12,"column":21},"end":{"line":23,"column":3}},"2":{"start":{"line":14,"column":15},"end":{"line":14,"column":39}},"3":{"start":{"line":15,"column":4},"end":{"line":22,"column":7}},"4":{"start":{"line":17,"column":6},"end":{"line":21,"column":7}},"5":{"start":{"line":18,"column":8},"end":{"line":18,"column":37}},"6":{"start":{"line":20,"column":8},"end":{"line":20,"column":44}},"7":{"start":{"line":25,"column":15},"end":{"line":27,"column":3}},"8":{"start":{"line":26,"column":4},"end":{"line":26,"column":81}},"9":{"start":{"line":29,"column":2},"end":{"line":51,"column":4}}},"fnMap":{"0":{"name":"StateNestImmer2","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":39}},"loc":{"start":{"line":3,"column":42},"end":{"line":52,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":21},"end":{"line":12,"column":22}},"loc":{"start":{"line":12,"column":26},"end":{"line":23,"column":3}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":15,"column":12},"end":{"line":15,"column":13}},"loc":{"start":{"line":15,"column":20},"end":{"line":22,"column":5}},"line":15},"3":{"name":"(anonymous_3)","decl":{"start":{"line":25,"column":15},"end":{"line":25,"column":16}},"loc":{"start":{"line":25,"column":21},"end":{"line":27,"column":3}},"line":25}},"branchMap":{"0":{"loc":{"start":{"line":17,"column":6},"end":{"line":21,"column":7}},"type":"if","locations":[{"start":{"line":17,"column":6},"end":{"line":21,"column":7}},{"start":{"line":19,"column":13},"end":{"line":21,"column":7}}],"line":17}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0},"f":{"0":0,"1":0,"2":0,"3":0},"b":{"0":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/StateTodo.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/StateTodo.js","statementMap":{"0":{"start":{"line":5,"column":12},"end":{"line":5,"column":13}},"1":{"start":{"line":8,"column":28},"end":{"line":8,"column":40}},"2":{"start":{"line":9,"column":26},"end":{"line":9,"column":38}},"3":{"start":{"line":12,"column":28},"end":{"line":14,"column":3}},"4":{"start":{"line":13,"column":4},"end":{"line":13,"column":29}},"5":{"start":{"line":16,"column":22},"end":{"line":27,"column":3}},"6":{"start":{"line":18,"column":4},"end":{"line":26,"column":7}},"7":{"start":{"line":29,"column":2},"end":{"line":46,"column":4}},"8":{"start":{"line":42,"column":10},"end":{"line":42,"column":45}}},"fnMap":{"0":{"name":"StateTodo","decl":{"start":{"line":6,"column":24},"end":{"line":6,"column":33}},"loc":{"start":{"line":6,"column":36},"end":{"line":47,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":28},"end":{"line":12,"column":29}},"loc":{"start":{"line":12,"column":33},"end":{"line":14,"column":3}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":16,"column":22},"end":{"line":16,"column":23}},"loc":{"start":{"line":16,"column":28},"end":{"line":27,"column":3}},"line":16},"3":{"name":"(anonymous_3)","decl":{"start":{"line":41,"column":18},"end":{"line":41,"column":19}},"loc":{"start":{"line":42,"column":10},"end":{"line":42,"column":45}},"line":42}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0},"f":{"0":0,"1":0,"2":0,"3":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/yup.kr.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap04/yup.kr.js","statementMap":{"0":{"start":{"line":4,"column":17},"end":{"line":30,"column":1}},"1":{"start":{"line":6,"column":23},"end":{"line":6,"column":49}},"2":{"start":{"line":7,"column":20},"end":{"line":7,"column":67}},"3":{"start":{"line":10,"column":21},"end":{"line":10,"column":65}},"4":{"start":{"line":11,"column":18},"end":{"line":11,"column":63}},"5":{"start":{"line":12,"column":18},"end":{"line":12,"column":62}},"6":{"start":{"line":13,"column":22},"end":{"line":13,"column":70}},"7":{"start":{"line":14,"column":20},"end":{"line":14,"column":57}},"8":{"start":{"line":15,"column":18},"end":{"line":15,"column":52}},"9":{"start":{"line":18,"column":18},"end":{"line":18,"column":61}},"10":{"start":{"line":19,"column":18},"end":{"line":19,"column":60}},"11":{"start":{"line":20,"column":23},"end":{"line":20,"column":67}},"12":{"start":{"line":21,"column":23},"end":{"line":21,"column":66}},"13":{"start":{"line":22,"column":23},"end":{"line":22,"column":52}},"14":{"start":{"line":23,"column":23},"end":{"line":23,"column":52}},"15":{"start":{"line":24,"column":22},"end":{"line":24,"column":51}},"16":{"start":{"line":27,"column":18},"end":{"line":27,"column":62}},"17":{"start":{"line":28,"column":18},"end":{"line":28,"column":63}},"18":{"start":{"line":33,"column":0},"end":{"line":33,"column":24}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":14},"end":{"line":6,"column":15}},"loc":{"start":{"line":6,"column":23},"end":{"line":6,"column":49}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":7,"column":11},"end":{"line":7,"column":12}},"loc":{"start":{"line":7,"column":20},"end":{"line":7,"column":67}},"line":7},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":12},"end":{"line":10,"column":13}},"loc":{"start":{"line":10,"column":21},"end":{"line":10,"column":65}},"line":10},"3":{"name":"(anonymous_3)","decl":{"start":{"line":11,"column":9},"end":{"line":11,"column":10}},"loc":{"start":{"line":11,"column":18},"end":{"line":11,"column":63}},"line":11},"4":{"name":"(anonymous_4)","decl":{"start":{"line":12,"column":9},"end":{"line":12,"column":10}},"loc":{"start":{"line":12,"column":18},"end":{"line":12,"column":62}},"line":12},"5":{"name":"(anonymous_5)","decl":{"start":{"line":13,"column":13},"end":{"line":13,"column":14}},"loc":{"start":{"line":13,"column":22},"end":{"line":13,"column":70}},"line":13},"6":{"name":"(anonymous_6)","decl":{"start":{"line":14,"column":11},"end":{"line":14,"column":12}},"loc":{"start":{"line":14,"column":20},"end":{"line":14,"column":57}},"line":14},"7":{"name":"(anonymous_7)","decl":{"start":{"line":15,"column":9},"end":{"line":15,"column":10}},"loc":{"start":{"line":15,"column":18},"end":{"line":15,"column":52}},"line":15},"8":{"name":"(anonymous_8)","decl":{"start":{"line":18,"column":9},"end":{"line":18,"column":10}},"loc":{"start":{"line":18,"column":18},"end":{"line":18,"column":61}},"line":18},"9":{"name":"(anonymous_9)","decl":{"start":{"line":19,"column":9},"end":{"line":19,"column":10}},"loc":{"start":{"line":19,"column":18},"end":{"line":19,"column":60}},"line":19},"10":{"name":"(anonymous_10)","decl":{"start":{"line":20,"column":14},"end":{"line":20,"column":15}},"loc":{"start":{"line":20,"column":23},"end":{"line":20,"column":67}},"line":20},"11":{"name":"(anonymous_11)","decl":{"start":{"line":21,"column":14},"end":{"line":21,"column":15}},"loc":{"start":{"line":21,"column":23},"end":{"line":21,"column":66}},"line":21},"12":{"name":"(anonymous_12)","decl":{"start":{"line":22,"column":14},"end":{"line":22,"column":15}},"loc":{"start":{"line":22,"column":23},"end":{"line":22,"column":52}},"line":22},"13":{"name":"(anonymous_13)","decl":{"start":{"line":23,"column":14},"end":{"line":23,"column":15}},"loc":{"start":{"line":23,"column":23},"end":{"line":23,"column":52}},"line":23},"14":{"name":"(anonymous_14)","decl":{"start":{"line":24,"column":13},"end":{"line":24,"column":14}},"loc":{"start":{"line":24,"column":22},"end":{"line":24,"column":51}},"line":24},"15":{"name":"(anonymous_15)","decl":{"start":{"line":27,"column":9},"end":{"line":27,"column":10}},"loc":{"start":{"line":27,"column":18},"end":{"line":27,"column":62}},"line":27},"16":{"name":"(anonymous_16)","decl":{"start":{"line":28,"column":9},"end":{"line":28,"column":10}},"loc":{"start":{"line":28,"column":18},"end":{"line":28,"column":63}},"line":28}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/EmotionComp.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/EmotionComp.js","statementMap":{"0":{"start":{"line":5,"column":16},"end":{"line":12,"column":1}},"1":{"start":{"line":15,"column":2},"end":{"line":18,"column":4}}},"fnMap":{"0":{"name":"EmotionComp","decl":{"start":{"line":14,"column":24},"end":{"line":14,"column":35}},"loc":{"start":{"line":14,"column":38},"end":{"line":19,"column":1}},"line":14}},"branchMap":{},"s":{"0":0,"1":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/EmotionJsx.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/EmotionJsx.js","statementMap":{"0":{"start":{"line":5,"column":17},"end":{"line":12,"column":3}},"1":{"start":{"line":14,"column":2},"end":{"line":16,"column":4}}},"fnMap":{"0":{"name":"EmotionJsx","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":34}},"loc":{"start":{"line":4,"column":37},"end":{"line":17,"column":1}},"line":4}},"branchMap":{},"s":{"0":0,"1":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/ErrorEvent.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/ErrorEvent.js","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":4,"column":3}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":50}},"2":{"start":{"line":5,"column":2},"end":{"line":9,"column":4}}},"fnMap":{"0":{"name":"ErrorEvent","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":34}},"loc":{"start":{"line":1,"column":37},"end":{"line":10,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":2,"column":22},"end":{"line":2,"column":23}},"loc":{"start":{"line":2,"column":28},"end":{"line":4,"column":3}},"line":2}},"branchMap":{},"s":{"0":0,"1":0,"2":0},"f":{"0":0,"1":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/ErrorEventRoot.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/ErrorEventRoot.js","statementMap":{"0":{"start":{"line":5,"column":25},"end":{"line":16,"column":3}},"1":{"start":{"line":6,"column":24},"end":{"line":6,"column":50}},"2":{"start":{"line":6,"column":30},"end":{"line":6,"column":50}},"3":{"start":{"line":7,"column":4},"end":{"line":15,"column":6}},"4":{"start":{"line":17,"column":22},"end":{"line":17,"column":50}},"5":{"start":{"line":17,"column":28},"end":{"line":17,"column":50}},"6":{"start":{"line":18,"column":2},"end":{"line":27,"column":4}}},"fnMap":{"0":{"name":"ErrorEventRoot","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":38}},"loc":{"start":{"line":4,"column":41},"end":{"line":28,"column":1}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":5,"column":25},"end":{"line":5,"column":26}},"loc":{"start":{"line":5,"column":60},"end":{"line":16,"column":3}},"line":5},"2":{"name":"(anonymous_2)","decl":{"start":{"line":6,"column":24},"end":{"line":6,"column":25}},"loc":{"start":{"line":6,"column":30},"end":{"line":6,"column":50}},"line":6},"3":{"name":"(anonymous_3)","decl":{"start":{"line":17,"column":22},"end":{"line":17,"column":23}},"loc":{"start":{"line":17,"column":28},"end":{"line":17,"column":50}},"line":17}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},"f":{"0":0,"1":0,"2":0,"3":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/ErrorFallback.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/ErrorFallback.js","statementMap":{"0":{"start":{"line":2,"column":22},"end":{"line":2,"column":48}},"1":{"start":{"line":2,"column":28},"end":{"line":2,"column":48}},"2":{"start":{"line":3,"column":2},"end":{"line":11,"column":4}}},"fnMap":{"0":{"name":"ErrorFallback","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":37}},"loc":{"start":{"line":1,"column":69},"end":{"line":12,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":2,"column":22},"end":{"line":2,"column":23}},"loc":{"start":{"line":2,"column":28},"end":{"line":2,"column":48}},"line":2}},"branchMap":{},"s":{"0":0,"1":0,"2":0},"f":{"0":0,"1":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/ErrorRetryRoot.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/ErrorRetryRoot.js","statementMap":{"0":{"start":{"line":6,"column":25},"end":{"line":17,"column":3}},"1":{"start":{"line":7,"column":24},"end":{"line":7,"column":50}},"2":{"start":{"line":7,"column":30},"end":{"line":7,"column":50}},"3":{"start":{"line":8,"column":4},"end":{"line":16,"column":6}},"4":{"start":{"line":19,"column":22},"end":{"line":19,"column":50}},"5":{"start":{"line":19,"column":28},"end":{"line":19,"column":50}},"6":{"start":{"line":21,"column":2},"end":{"line":31,"column":4}}},"fnMap":{"0":{"name":"ErrorRetryRoot","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":38}},"loc":{"start":{"line":4,"column":41},"end":{"line":32,"column":1}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":6,"column":25},"end":{"line":6,"column":26}},"loc":{"start":{"line":6,"column":60},"end":{"line":17,"column":3}},"line":6},"2":{"name":"(anonymous_2)","decl":{"start":{"line":7,"column":24},"end":{"line":7,"column":25}},"loc":{"start":{"line":7,"column":30},"end":{"line":7,"column":50}},"line":7},"3":{"name":"(anonymous_3)","decl":{"start":{"line":19,"column":22},"end":{"line":19,"column":23}},"loc":{"start":{"line":19,"column":28},"end":{"line":19,"column":50}},"line":19}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},"f":{"0":0,"1":0,"2":0,"3":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/ErrorRetryThrow.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/ErrorRetryThrow.js","statementMap":{"0":{"start":{"line":3,"column":2},"end":{"line":5,"column":3}},"1":{"start":{"line":4,"column":4},"end":{"line":4,"column":50}},"2":{"start":{"line":6,"column":2},"end":{"line":8,"column":4}}},"fnMap":{"0":{"name":"ErrorRetryThrow","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":39}},"loc":{"start":{"line":1,"column":42},"end":{"line":9,"column":1}},"line":1}},"branchMap":{"0":{"loc":{"start":{"line":3,"column":2},"end":{"line":5,"column":3}},"type":"if","locations":[{"start":{"line":3,"column":2},"end":{"line":5,"column":3}},{"start":{},"end":{}}],"line":3}},"s":{"0":0,"1":0,"2":0},"f":{"0":0},"b":{"0":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/ErrorRoot.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/ErrorRoot.js","statementMap":{"0":{"start":{"line":5,"column":2},"end":{"line":12,"column":4}}},"fnMap":{"0":{"name":"ErrorRoot","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":33}},"loc":{"start":{"line":4,"column":36},"end":{"line":13,"column":1}},"line":4}},"branchMap":{},"s":{"0":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/ErrorThrow.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/ErrorThrow.js","statementMap":{"0":{"start":{"line":3,"column":2},"end":{"line":3,"column":48}},"1":{"start":{"line":4,"column":2},"end":{"line":6,"column":4}}},"fnMap":{"0":{"name":"ErrorThrow","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":34}},"loc":{"start":{"line":1,"column":37},"end":{"line":7,"column":1}},"line":1}},"branchMap":{},"s":{"0":0,"1":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/HeavyUI.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/HeavyUI.js","statementMap":{"0":{"start":{"line":2,"column":14},"end":{"line":2,"column":24}},"1":{"start":{"line":3,"column":2},"end":{"line":3,"column":37}},"2":{"start":{"line":8,"column":2},"end":{"line":8,"column":15}},"3":{"start":{"line":9,"column":2},"end":{"line":9,"column":34}}},"fnMap":{"0":{"name":"sleep","decl":{"start":{"line":1,"column":9},"end":{"line":1,"column":14}},"loc":{"start":{"line":1,"column":22},"end":{"line":4,"column":1}},"line":1},"1":{"name":"HeavyUI","decl":{"start":{"line":7,"column":24},"end":{"line":7,"column":31}},"loc":{"start":{"line":7,"column":43},"end":{"line":10,"column":1}},"line":7}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0},"f":{"0":0,"1":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/LazyBasic.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/LazyBasic.js","statementMap":{"0":{"start":{"line":4,"column":14},"end":{"line":4,"column":67}},"1":{"start":{"line":4,"column":20},"end":{"line":4,"column":67}},"2":{"start":{"line":4,"column":43},"end":{"line":4,"column":66}},"3":{"start":{"line":6,"column":19},"end":{"line":6,"column":77}},"4":{"start":{"line":6,"column":30},"end":{"line":6,"column":76}},"5":{"start":{"line":6,"column":53},"end":{"line":6,"column":75}},"6":{"start":{"line":10,"column":2},"end":{"line":14,"column":4}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":14},"end":{"line":4,"column":15}},"loc":{"start":{"line":4,"column":20},"end":{"line":4,"column":67}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":32},"end":{"line":4,"column":33}},"loc":{"start":{"line":4,"column":43},"end":{"line":4,"column":66}},"line":4},"2":{"name":"(anonymous_2)","decl":{"start":{"line":6,"column":24},"end":{"line":6,"column":25}},"loc":{"start":{"line":6,"column":30},"end":{"line":6,"column":76}},"line":6},"3":{"name":"(anonymous_3)","decl":{"start":{"line":6,"column":47},"end":{"line":6,"column":48}},"loc":{"start":{"line":6,"column":53},"end":{"line":6,"column":75}},"line":6},"4":{"name":"LazyBasic","decl":{"start":{"line":8,"column":24},"end":{"line":8,"column":33}},"loc":{"start":{"line":8,"column":36},"end":{"line":15,"column":1}},"line":8}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/LazyButton.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/LazyButton.js","statementMap":{"0":{"start":{"line":2,"column":2},"end":{"line":6,"column":4}}},"fnMap":{"0":{"name":"LazyButton","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":34}},"loc":{"start":{"line":1,"column":37},"end":{"line":7,"column":1}},"line":1}},"branchMap":{},"s":{"0":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/LazyButton2.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/LazyButton2.js","statementMap":{"0":{"start":{"line":2,"column":2},"end":{"line":6,"column":4}}},"fnMap":{"0":{"name":"LazyButton2","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":35}},"loc":{"start":{"line":1,"column":38},"end":{"line":7,"column":1}},"line":1}},"branchMap":{},"s":{"0":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/LazyMulti.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/LazyMulti.js","statementMap":{"0":{"start":{"line":3,"column":14},"end":{"line":3,"column":67}},"1":{"start":{"line":3,"column":20},"end":{"line":3,"column":67}},"2":{"start":{"line":3,"column":43},"end":{"line":3,"column":66}},"3":{"start":{"line":6,"column":19},"end":{"line":6,"column":77}},"4":{"start":{"line":6,"column":30},"end":{"line":6,"column":76}},"5":{"start":{"line":6,"column":53},"end":{"line":6,"column":75}},"6":{"start":{"line":7,"column":20},"end":{"line":7,"column":79}},"7":{"start":{"line":7,"column":31},"end":{"line":7,"column":78}},"8":{"start":{"line":7,"column":54},"end":{"line":7,"column":77}},"9":{"start":{"line":10,"column":2},"end":{"line":15,"column":4}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":3,"column":14},"end":{"line":3,"column":15}},"loc":{"start":{"line":3,"column":20},"end":{"line":3,"column":67}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":3,"column":32},"end":{"line":3,"column":33}},"loc":{"start":{"line":3,"column":43},"end":{"line":3,"column":66}},"line":3},"2":{"name":"(anonymous_2)","decl":{"start":{"line":6,"column":24},"end":{"line":6,"column":25}},"loc":{"start":{"line":6,"column":30},"end":{"line":6,"column":76}},"line":6},"3":{"name":"(anonymous_3)","decl":{"start":{"line":6,"column":47},"end":{"line":6,"column":48}},"loc":{"start":{"line":6,"column":53},"end":{"line":6,"column":75}},"line":6},"4":{"name":"(anonymous_4)","decl":{"start":{"line":7,"column":25},"end":{"line":7,"column":26}},"loc":{"start":{"line":7,"column":31},"end":{"line":7,"column":78}},"line":7},"5":{"name":"(anonymous_5)","decl":{"start":{"line":7,"column":48},"end":{"line":7,"column":49}},"loc":{"start":{"line":7,"column":54},"end":{"line":7,"column":77}},"line":7},"6":{"name":"LazyMulti","decl":{"start":{"line":9,"column":24},"end":{"line":9,"column":33}},"loc":{"start":{"line":9,"column":36},"end":{"line":16,"column":1}},"line":9}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/MyLoading.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/MyLoading.js","statementMap":{"0":{"start":{"line":2,"column":4},"end":{"line":4,"column":6}}},"fnMap":{"0":{"name":"MyLoading","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":33}},"loc":{"start":{"line":1,"column":36},"end":{"line":5,"column":3}},"line":1}},"branchMap":{},"s":{"0":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/PortalBasic.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/PortalBasic.js","statementMap":{"0":{"start":{"line":7,"column":26},"end":{"line":7,"column":41}},"1":{"start":{"line":9,"column":23},"end":{"line":9,"column":45}},"2":{"start":{"line":9,"column":29},"end":{"line":9,"column":45}},"3":{"start":{"line":9,"column":42},"end":{"line":9,"column":44}},"4":{"start":{"line":11,"column":2},"end":{"line":27,"column":4}}},"fnMap":{"0":{"name":"PortalBasic","decl":{"start":{"line":5,"column":24},"end":{"line":5,"column":35}},"loc":{"start":{"line":5,"column":38},"end":{"line":28,"column":1}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":9,"column":23},"end":{"line":9,"column":24}},"loc":{"start":{"line":9,"column":29},"end":{"line":9,"column":45}},"line":9},"2":{"name":"(anonymous_2)","decl":{"start":{"line":9,"column":37},"end":{"line":9,"column":38}},"loc":{"start":{"line":9,"column":42},"end":{"line":9,"column":44}},"line":9}},"branchMap":{"0":{"loc":{"start":{"line":17,"column":7},"end":{"line":25,"column":7}},"type":"binary-expr","locations":[{"start":{"line":17,"column":7},"end":{"line":17,"column":11}},{"start":{"line":17,"column":15},"end":{"line":25,"column":7}}],"line":17}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0},"f":{"0":0,"1":0,"2":0},"b":{"0":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/ProfilerBasic.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/ProfilerBasic.js","statementMap":{"0":{"start":{"line":6,"column":24},"end":{"line":14,"column":3}},"1":{"start":{"line":8,"column":4},"end":{"line":8,"column":28}},"2":{"start":{"line":9,"column":4},"end":{"line":9,"column":34}},"3":{"start":{"line":10,"column":4},"end":{"line":10,"column":52}},"4":{"start":{"line":11,"column":4},"end":{"line":11,"column":48}},"5":{"start":{"line":12,"column":4},"end":{"line":12,"column":42}},"6":{"start":{"line":13,"column":4},"end":{"line":13,"column":36}},"7":{"start":{"line":16,"column":2},"end":{"line":22,"column":4}}},"fnMap":{"0":{"name":"ProfilerBasic","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":37}},"loc":{"start":{"line":4,"column":40},"end":{"line":23,"column":1}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":6,"column":24},"end":{"line":6,"column":25}},"loc":{"start":{"line":7,"column":41},"end":{"line":14,"column":3}},"line":7}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0},"f":{"0":0,"1":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/StyledCommon.css.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/StyledCommon.css.js","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/StyledCommon.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/StyledCommon.js","statementMap":{"0":{"start":{"line":4,"column":16},"end":{"line":12,"column":1}},"1":{"start":{"line":15,"column":2},"end":{"line":17,"column":4}}},"fnMap":{"0":{"name":"StyledCommon","decl":{"start":{"line":14,"column":24},"end":{"line":14,"column":36}},"loc":{"start":{"line":14,"column":39},"end":{"line":18,"column":1}},"line":14}},"branchMap":{},"s":{"0":0,"1":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/StyledComp.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/StyledComp.js","statementMap":{"0":{"start":{"line":4,"column":16},"end":{"line":11,"column":1}},"1":{"start":{"line":14,"column":2},"end":{"line":16,"column":4}}},"fnMap":{"0":{"name":"StyledComp","decl":{"start":{"line":13,"column":24},"end":{"line":13,"column":34}},"loc":{"start":{"line":13,"column":37},"end":{"line":17,"column":1}},"line":13}},"branchMap":{},"s":{"0":0,"1":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/StyledComp2.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/StyledComp2.js","statementMap":{"0":{"start":{"line":5,"column":2},"end":{"line":9,"column":4}},"1":{"start":{"line":13,"column":30},"end":{"line":20,"column":1}}},"fnMap":{"0":{"name":"MyButton","decl":{"start":{"line":4,"column":16},"end":{"line":4,"column":24}},"loc":{"start":{"line":4,"column":50},"end":{"line":10,"column":1}},"line":4}},"branchMap":{},"s":{"0":0,"1":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/StyledGlobal.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/StyledGlobal.js","statementMap":{},"fnMap":{},"branchMap":{},"s":{},"f":{},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/StyledProps.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/StyledProps.js","statementMap":{"0":{"start":{"line":3,"column":16},"end":{"line":10,"column":1}},"1":{"start":{"line":8,"column":30},"end":{"line":8,"column":65}},"2":{"start":{"line":9,"column":32},"end":{"line":9,"column":49}},"3":{"start":{"line":13,"column":2},"end":{"line":18,"column":4}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":20},"end":{"line":8,"column":21}},"loc":{"start":{"line":8,"column":30},"end":{"line":8,"column":65}},"line":8},"1":{"name":"(anonymous_1)","decl":{"start":{"line":9,"column":23},"end":{"line":9,"column":24}},"loc":{"start":{"line":9,"column":32},"end":{"line":9,"column":49}},"line":9},"2":{"name":"StyledProps","decl":{"start":{"line":12,"column":24},"end":{"line":12,"column":35}},"loc":{"start":{"line":12,"column":47},"end":{"line":19,"column":1}},"line":12}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":30},"end":{"line":8,"column":65}},"type":"cond-expr","locations":[{"start":{"line":8,"column":51},"end":{"line":8,"column":57}},{"start":{"line":8,"column":60},"end":{"line":8,"column":65}}],"line":8}},"s":{"0":0,"1":0,"2":0,"3":0},"f":{"0":0,"1":0,"2":0},"b":{"0":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/SuspenseResult.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/SuspenseResult.js","statementMap":{"0":{"start":{"line":5,"column":2},"end":{"line":9,"column":4}}},"fnMap":{"0":{"name":"SuspenseResult","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":38}},"loc":{"start":{"line":4,"column":41},"end":{"line":10,"column":1}},"line":4}},"branchMap":{},"s":{"0":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/SuspenseSimple.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/SuspenseSimple.js","statementMap":{"0":{"start":{"line":5,"column":2},"end":{"line":9,"column":4}}},"fnMap":{"0":{"name":"SuspenseSimple","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":38}},"loc":{"start":{"line":4,"column":41},"end":{"line":10,"column":1}},"line":4}},"branchMap":{},"s":{"0":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/ThrowPromise.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/ThrowPromise.js","statementMap":{"0":{"start":{"line":2,"column":2},"end":{"line":2,"column":46}}},"fnMap":{"0":{"name":"ThrowPromise","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":36}},"loc":{"start":{"line":1,"column":39},"end":{"line":3,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":2,"column":20},"end":{"line":2,"column":21}},"loc":{"start":{"line":2,"column":41},"end":{"line":2,"column":44}},"line":2}},"branchMap":{},"s":{"0":0},"f":{"0":0,"1":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/ThrowResult.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/ThrowResult.js","statementMap":{"0":{"start":{"line":4,"column":13},"end":{"line":4,"column":22}},"1":{"start":{"line":7,"column":17},"end":{"line":7,"column":27}},"2":{"start":{"line":8,"column":2},"end":{"line":8,"column":25}},"3":{"start":{"line":13,"column":2},"end":{"line":22,"column":6}},"4":{"start":{"line":15,"column":4},"end":{"line":21,"column":13}},"5":{"start":{"line":16,"column":6},"end":{"line":20,"column":7}},"6":{"start":{"line":17,"column":8},"end":{"line":17,"column":31}},"7":{"start":{"line":19,"column":8},"end":{"line":19,"column":26}}},"fnMap":{"0":{"name":"ThrowResult","decl":{"start":{"line":6,"column":24},"end":{"line":6,"column":35}},"loc":{"start":{"line":6,"column":38},"end":{"line":9,"column":1}},"line":6},"1":{"name":"getInfo","decl":{"start":{"line":12,"column":9},"end":{"line":12,"column":16}},"loc":{"start":{"line":12,"column":19},"end":{"line":23,"column":1}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":33},"end":{"line":13,"column":34}},"loc":{"start":{"line":13,"column":54},"end":{"line":22,"column":3}},"line":13},"3":{"name":"(anonymous_3)","decl":{"start":{"line":15,"column":15},"end":{"line":15,"column":16}},"loc":{"start":{"line":15,"column":21},"end":{"line":21,"column":5}},"line":15}},"branchMap":{"0":{"loc":{"start":{"line":16,"column":6},"end":{"line":20,"column":7}},"type":"if","locations":[{"start":{"line":16,"column":6},"end":{"line":20,"column":7}},{"start":{"line":18,"column":13},"end":{"line":20,"column":7}}],"line":16}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0},"f":{"0":0,"1":0,"2":0,"3":0},"b":{"0":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/wrapPromise.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap05/wrapPromise.js","statementMap":{"0":{"start":{"line":3,"column":15},"end":{"line":3,"column":24}},"1":{"start":{"line":7,"column":16},"end":{"line":18,"column":3}},"2":{"start":{"line":10,"column":6},"end":{"line":10,"column":27}},"3":{"start":{"line":11,"column":6},"end":{"line":11,"column":20}},"4":{"start":{"line":15,"column":6},"end":{"line":15,"column":26}},"5":{"start":{"line":16,"column":6},"end":{"line":16,"column":15}},"6":{"start":{"line":20,"column":2},"end":{"line":33,"column":4}},"7":{"start":{"line":22,"column":6},"end":{"line":31,"column":7}},"8":{"start":{"line":24,"column":10},"end":{"line":24,"column":22}},"9":{"start":{"line":26,"column":10},"end":{"line":26,"column":21}},"10":{"start":{"line":28,"column":10},"end":{"line":28,"column":24}},"11":{"start":{"line":30,"column":10},"end":{"line":30,"column":16}}},"fnMap":{"0":{"name":"wrapPromise","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":35}},"loc":{"start":{"line":1,"column":45},"end":{"line":34,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":9,"column":4},"end":{"line":9,"column":5}},"loc":{"start":{"line":9,"column":14},"end":{"line":12,"column":5}},"line":9},"2":{"name":"(anonymous_2)","decl":{"start":{"line":14,"column":4},"end":{"line":14,"column":5}},"loc":{"start":{"line":14,"column":9},"end":{"line":17,"column":5}},"line":14},"3":{"name":"(anonymous_3)","decl":{"start":{"line":21,"column":4},"end":{"line":21,"column":5}},"loc":{"start":{"line":21,"column":10},"end":{"line":32,"column":5}},"line":21}},"branchMap":{"0":{"loc":{"start":{"line":22,"column":6},"end":{"line":31,"column":7}},"type":"switch","locations":[{"start":{"line":23,"column":8},"end":{"line":24,"column":22}},{"start":{"line":25,"column":8},"end":{"line":26,"column":21}},{"start":{"line":27,"column":8},"end":{"line":28,"column":24}},{"start":{"line":29,"column":8},"end":{"line":30,"column":16}}],"line":22}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0},"f":{"0":0,"1":0,"2":0,"3":0},"b":{"0":[0,0,0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap06/FormMui.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap06/FormMui.js","statementMap":{"0":{"start":{"line":6,"column":24},"end":{"line":11,"column":3}},"1":{"start":{"line":13,"column":60},"end":{"line":15,"column":4}},"2":{"start":{"line":16,"column":19},"end":{"line":16,"column":44}},"3":{"start":{"line":16,"column":27},"end":{"line":16,"column":44}},"4":{"start":{"line":17,"column":18},"end":{"line":17,"column":41}},"5":{"start":{"line":17,"column":25},"end":{"line":17,"column":41}},"6":{"start":{"line":19,"column":2},"end":{"line":81,"column":4}}},"fnMap":{"0":{"name":"FormMui","decl":{"start":{"line":5,"column":24},"end":{"line":5,"column":31}},"loc":{"start":{"line":5,"column":34},"end":{"line":82,"column":1}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":16,"column":19},"end":{"line":16,"column":20}},"loc":{"start":{"line":16,"column":27},"end":{"line":16,"column":44}},"line":16},"2":{"name":"(anonymous_2)","decl":{"start":{"line":17,"column":18},"end":{"line":17,"column":19}},"loc":{"start":{"line":17,"column":25},"end":{"line":17,"column":41}},"line":17}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},"f":{"0":0,"1":0,"2":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap06/MaterialBasic.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap06/MaterialBasic.js","statementMap":{"0":{"start":{"line":4,"column":2},"end":{"line":10,"column":4}}},"fnMap":{"0":{"name":"MaterialBasic","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":37}},"loc":{"start":{"line":3,"column":40},"end":{"line":11,"column":1}},"line":3}},"branchMap":{},"s":{"0":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap06/MaterialDrawer.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap06/MaterialDrawer.js","statementMap":{"0":{"start":{"line":7,"column":13},"end":{"line":12,"column":1}},"1":{"start":{"line":16,"column":26},"end":{"line":16,"column":41}},"2":{"start":{"line":18,"column":21},"end":{"line":18,"column":41}},"3":{"start":{"line":18,"column":27},"end":{"line":18,"column":41}},"4":{"start":{"line":20,"column":2},"end":{"line":42,"column":4}},"5":{"start":{"line":28,"column":21},"end":{"line":28,"column":29}},"6":{"start":{"line":29,"column":8},"end":{"line":36,"column":10}}},"fnMap":{"0":{"name":"MaterialDrawer","decl":{"start":{"line":14,"column":24},"end":{"line":14,"column":38}},"loc":{"start":{"line":14,"column":41},"end":{"line":43,"column":1}},"line":14},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":21},"end":{"line":18,"column":22}},"loc":{"start":{"line":18,"column":27},"end":{"line":18,"column":41}},"line":18},"2":{"name":"(anonymous_2)","decl":{"start":{"line":27,"column":16},"end":{"line":27,"column":17}},"loc":{"start":{"line":27,"column":23},"end":{"line":37,"column":7}},"line":27}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},"f":{"0":0,"1":0,"2":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap06/MaterialGrid.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap06/MaterialGrid.js","statementMap":{"0":{"start":{"line":5,"column":2},"end":{"line":20,"column":4}}},"fnMap":{"0":{"name":"MaterialGrid","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":36}},"loc":{"start":{"line":4,"column":39},"end":{"line":21,"column":1}},"line":4}},"branchMap":{},"s":{"0":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap06/MaterialMode.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap06/MaterialMode.js","statementMap":{"0":{"start":{"line":11,"column":26},"end":{"line":11,"column":43}},"1":{"start":{"line":13,"column":21},"end":{"line":15,"column":3}},"2":{"start":{"line":13,"column":27},"end":{"line":15,"column":3}},"3":{"start":{"line":14,"column":4},"end":{"line":14,"column":39}},"4":{"start":{"line":17,"column":16},"end":{"line":38,"column":4}},"5":{"start":{"line":40,"column":2},"end":{"line":47,"column":4}}},"fnMap":{"0":{"name":"MaterialMode","decl":{"start":{"line":6,"column":24},"end":{"line":6,"column":36}},"loc":{"start":{"line":6,"column":39},"end":{"line":48,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":13,"column":21},"end":{"line":13,"column":22}},"loc":{"start":{"line":13,"column":27},"end":{"line":15,"column":3}},"line":13},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":35},"end":{"line":13,"column":36}},"loc":{"start":{"line":14,"column":4},"end":{"line":14,"column":39}},"line":14}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":4},"end":{"line":14,"column":39}},"type":"cond-expr","locations":[{"start":{"line":14,"column":23},"end":{"line":14,"column":29}},{"start":{"line":14,"column":32},"end":{"line":14,"column":39}}],"line":14},"1":{"loc":{"start":{"line":21,"column":10},"end":{"line":36,"column":7}},"type":"cond-expr","locations":[{"start":{"line":23,"column":8},"end":{"line":25,"column":9}},{"start":{"line":27,"column":8},"end":{"line":36,"column":7}}],"line":21}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"f":{"0":0,"1":0,"2":0},"b":{"0":[0,0],"1":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap06/MyButton.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap06/MyButton.js","statementMap":{"0":{"start":{"line":100,"column":15},"end":{"line":101,"column":63}},"1":{"start":{"line":102,"column":2},"end":{"line":113,"column":4}},"2":{"start":{"line":120,"column":0},"end":{"line":138,"column":2}}},"fnMap":{"0":{"name":"MyButton","decl":{"start":{"line":91,"column":24},"end":{"line":91,"column":32}},"loc":{"start":{"line":98,"column":5},"end":{"line":114,"column":1}},"line":98}},"branchMap":{"0":{"loc":{"start":{"line":92,"column":4},"end":{"line":92,"column":19}},"type":"default-arg","locations":[{"start":{"line":92,"column":14},"end":{"line":92,"column":19}}],"line":92},"1":{"loc":{"start":{"line":93,"column":4},"end":{"line":93,"column":26}},"type":"default-arg","locations":[{"start":{"line":93,"column":22},"end":{"line":93,"column":26}}],"line":93},"2":{"loc":{"start":{"line":94,"column":4},"end":{"line":94,"column":19}},"type":"default-arg","locations":[{"start":{"line":94,"column":11},"end":{"line":94,"column":19}}],"line":94},"3":{"loc":{"start":{"line":95,"column":4},"end":{"line":95,"column":20}},"type":"default-arg","locations":[{"start":{"line":95,"column":12},"end":{"line":95,"column":20}}],"line":95},"4":{"loc":{"start":{"line":100,"column":15},"end":{"line":101,"column":63}},"type":"cond-expr","locations":[{"start":{"line":101,"column":4},"end":{"line":101,"column":31}},{"start":{"line":101,"column":34},"end":{"line":101,"column":63}}],"line":100},"5":{"loc":{"start":{"line":107,"column":13},"end":{"line":107,"column":51}},"type":"binary-expr","locations":[{"start":{"line":107,"column":13},"end":{"line":107,"column":28}},{"start":{"line":107,"column":32},"end":{"line":107,"column":51}}],"line":107}},"s":{"0":0,"1":0,"2":0},"f":{"0":0},"b":{"0":[0],"1":[0],"2":[0],"3":[0],"4":[0,0],"5":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap06/MyButton.stories.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap06/MyButton.stories.js","statementMap":{"0":{"start":{"line":10,"column":21},"end":{"line":13,"column":1}},"1":{"start":{"line":11,"column":16},"end":{"line":12,"column":55}},"2":{"start":{"line":12,"column":19},"end":{"line":12,"column":52}},"3":{"start":{"line":15,"column":21},"end":{"line":18,"column":1}},"4":{"start":{"line":16,"column":16},"end":{"line":17,"column":29}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":11,"column":10},"end":{"line":11,"column":11}},"loc":{"start":{"line":11,"column":16},"end":{"line":12,"column":55}},"line":11},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":13},"end":{"line":12,"column":14}},"loc":{"start":{"line":12,"column":19},"end":{"line":12,"column":52}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":16,"column":10},"end":{"line":16,"column":11}},"loc":{"start":{"line":16,"column":16},"end":{"line":17,"column":29}},"line":16}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0},"f":{"0":0,"1":0,"2":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap06/QueryBasic.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap06/QueryBasic.js","statementMap":{"0":{"start":{"line":4,"column":14},"end":{"line":4,"column":73}},"1":{"start":{"line":4,"column":23},"end":{"line":4,"column":73}},"2":{"start":{"line":4,"column":46},"end":{"line":4,"column":72}},"3":{"start":{"line":7,"column":21},"end":{"line":13,"column":1}},"4":{"start":{"line":9,"column":2},"end":{"line":9,"column":20}},"5":{"start":{"line":10,"column":14},"end":{"line":10,"column":131}},"6":{"start":{"line":11,"column":2},"end":{"line":11,"column":36}},"7":{"start":{"line":11,"column":16},"end":{"line":11,"column":34}},"8":{"start":{"line":12,"column":2},"end":{"line":12,"column":34}},"9":{"start":{"line":17,"column":46},"end":{"line":17,"column":79}},"10":{"start":{"line":19,"column":2},"end":{"line":21,"column":3}},"11":{"start":{"line":20,"column":4},"end":{"line":20,"column":29}},"12":{"start":{"line":23,"column":2},"end":{"line":25,"column":3}},"13":{"start":{"line":24,"column":4},"end":{"line":24,"column":41}},"14":{"start":{"line":27,"column":2},"end":{"line":34,"column":4}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":14},"end":{"line":4,"column":15}},"loc":{"start":{"line":4,"column":23},"end":{"line":4,"column":73}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":35},"end":{"line":4,"column":36}},"loc":{"start":{"line":4,"column":46},"end":{"line":4,"column":72}},"line":4},"2":{"name":"(anonymous_2)","decl":{"start":{"line":7,"column":21},"end":{"line":7,"column":22}},"loc":{"start":{"line":7,"column":33},"end":{"line":13,"column":1}},"line":7},"3":{"name":"QuerBasic","decl":{"start":{"line":15,"column":24},"end":{"line":15,"column":33}},"loc":{"start":{"line":15,"column":36},"end":{"line":35,"column":1}},"line":15}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":2},"end":{"line":11,"column":36}},"type":"if","locations":[{"start":{"line":11,"column":2},"end":{"line":11,"column":36}},{"start":{},"end":{}}],"line":11},"1":{"loc":{"start":{"line":19,"column":2},"end":{"line":21,"column":3}},"type":"if","locations":[{"start":{"line":19,"column":2},"end":{"line":21,"column":3}},{"start":{},"end":{}}],"line":19},"2":{"loc":{"start":{"line":23,"column":2},"end":{"line":25,"column":3}},"type":"if","locations":[{"start":{"line":23,"column":2},"end":{"line":25,"column":3}},{"start":{},"end":{}}],"line":23}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0},"f":{"0":0,"1":0,"2":0,"3":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap06/QueryPre.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap06/QueryPre.js","statementMap":{"0":{"start":{"line":4,"column":14},"end":{"line":4,"column":73}},"1":{"start":{"line":4,"column":23},"end":{"line":4,"column":73}},"2":{"start":{"line":4,"column":46},"end":{"line":4,"column":72}},"3":{"start":{"line":7,"column":21},"end":{"line":14,"column":1}},"4":{"start":{"line":9,"column":2},"end":{"line":9,"column":20}},"5":{"start":{"line":10,"column":14},"end":{"line":10,"column":131}},"6":{"start":{"line":11,"column":2},"end":{"line":11,"column":36}},"7":{"start":{"line":11,"column":16},"end":{"line":11,"column":34}},"8":{"start":{"line":13,"column":2},"end":{"line":13,"column":34}},"9":{"start":{"line":18,"column":27},"end":{"line":18,"column":41}},"10":{"start":{"line":19,"column":34},"end":{"line":19,"column":48}},"11":{"start":{"line":20,"column":28},"end":{"line":20,"column":40}},"12":{"start":{"line":23,"column":2},"end":{"line":32,"column":9}},"13":{"start":{"line":24,"column":4},"end":{"line":24,"column":21}},"14":{"start":{"line":25,"column":4},"end":{"line":31,"column":40}},"15":{"start":{"line":27,"column":22},"end":{"line":27,"column":37}},"16":{"start":{"line":29,"column":20},"end":{"line":29,"column":41}},"17":{"start":{"line":31,"column":21},"end":{"line":31,"column":38}},"18":{"start":{"line":35,"column":2},"end":{"line":37,"column":3}},"19":{"start":{"line":36,"column":4},"end":{"line":36,"column":29}},"20":{"start":{"line":40,"column":2},"end":{"line":42,"column":3}},"21":{"start":{"line":41,"column":4},"end":{"line":41,"column":33}},"22":{"start":{"line":45,"column":2},"end":{"line":52,"column":4}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":14},"end":{"line":4,"column":15}},"loc":{"start":{"line":4,"column":23},"end":{"line":4,"column":73}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":35},"end":{"line":4,"column":36}},"loc":{"start":{"line":4,"column":46},"end":{"line":4,"column":72}},"line":4},"2":{"name":"(anonymous_2)","decl":{"start":{"line":7,"column":21},"end":{"line":7,"column":22}},"loc":{"start":{"line":7,"column":33},"end":{"line":14,"column":1}},"line":7},"3":{"name":"QueryPre","decl":{"start":{"line":16,"column":24},"end":{"line":16,"column":32}},"loc":{"start":{"line":16,"column":41},"end":{"line":53,"column":1}},"line":16},"4":{"name":"(anonymous_4)","decl":{"start":{"line":23,"column":12},"end":{"line":23,"column":13}},"loc":{"start":{"line":23,"column":18},"end":{"line":32,"column":3}},"line":23},"5":{"name":"(anonymous_5)","decl":{"start":{"line":27,"column":12},"end":{"line":27,"column":13}},"loc":{"start":{"line":27,"column":22},"end":{"line":27,"column":37}},"line":27},"6":{"name":"(anonymous_6)","decl":{"start":{"line":29,"column":13},"end":{"line":29,"column":14}},"loc":{"start":{"line":29,"column":20},"end":{"line":29,"column":41}},"line":29},"7":{"name":"(anonymous_7)","decl":{"start":{"line":31,"column":15},"end":{"line":31,"column":16}},"loc":{"start":{"line":31,"column":21},"end":{"line":31,"column":38}},"line":31}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":2},"end":{"line":11,"column":36}},"type":"if","locations":[{"start":{"line":11,"column":2},"end":{"line":11,"column":36}},{"start":{},"end":{}}],"line":11},"1":{"loc":{"start":{"line":35,"column":2},"end":{"line":37,"column":3}},"type":"if","locations":[{"start":{"line":35,"column":2},"end":{"line":37,"column":3}},{"start":{},"end":{}}],"line":35},"2":{"loc":{"start":{"line":40,"column":2},"end":{"line":42,"column":3}},"type":"if","locations":[{"start":{"line":40,"column":2},"end":{"line":42,"column":3}},{"start":{},"end":{}}],"line":40}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":0,"7":0,"8":0,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":0,"16":0,"17":0,"18":1,"19":1,"20":0,"21":0,"22":0},"f":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":0,"6":0,"7":0},"b":{"0":[0,0],"1":[1,0],"2":[0,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"950765f46bac2028f75bada7c74e096d90d7c4af"} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap06/QuerySuspense.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap06/QuerySuspense.js","statementMap":{"0":{"start":{"line":4,"column":14},"end":{"line":4,"column":73}},"1":{"start":{"line":4,"column":23},"end":{"line":4,"column":73}},"2":{"start":{"line":4,"column":46},"end":{"line":4,"column":72}},"3":{"start":{"line":6,"column":21},"end":{"line":13,"column":1}},"4":{"start":{"line":8,"column":2},"end":{"line":8,"column":20}},"5":{"start":{"line":10,"column":14},"end":{"line":10,"column":131}},"6":{"start":{"line":11,"column":2},"end":{"line":11,"column":36}},"7":{"start":{"line":11,"column":16},"end":{"line":11,"column":34}},"8":{"start":{"line":12,"column":2},"end":{"line":12,"column":34}},"9":{"start":{"line":16,"column":19},"end":{"line":16,"column":52}},"10":{"start":{"line":19,"column":2},"end":{"line":26,"column":4}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":14},"end":{"line":4,"column":15}},"loc":{"start":{"line":4,"column":23},"end":{"line":4,"column":73}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":35},"end":{"line":4,"column":36}},"loc":{"start":{"line":4,"column":46},"end":{"line":4,"column":72}},"line":4},"2":{"name":"(anonymous_2)","decl":{"start":{"line":6,"column":21},"end":{"line":6,"column":22}},"loc":{"start":{"line":6,"column":33},"end":{"line":13,"column":1}},"line":6},"3":{"name":"QuerySuspense","decl":{"start":{"line":15,"column":24},"end":{"line":15,"column":37}},"loc":{"start":{"line":15,"column":40},"end":{"line":27,"column":1}},"line":15}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":2},"end":{"line":11,"column":36}},"type":"if","locations":[{"start":{"line":11,"column":2},"end":{"line":11,"column":36}},{"start":{},"end":{}}],"line":11}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0},"f":{"0":0,"1":0,"2":0,"3":0},"b":{"0":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap06/theme.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap06/theme.js","statementMap":{"0":{"start":{"line":4,"column":14},"end":{"line":15,"column":2}}},"fnMap":{},"branchMap":{},"s":{"0":0},"f":{},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookCallbackRef.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookCallbackRef.js","statementMap":{"0":{"start":{"line":4,"column":26},"end":{"line":4,"column":41}},"1":{"start":{"line":6,"column":22},"end":{"line":6,"column":42}},"2":{"start":{"line":6,"column":28},"end":{"line":6,"column":42}},"3":{"start":{"line":8,"column":18},"end":{"line":8,"column":30}},"4":{"start":{"line":10,"column":2},"end":{"line":14,"column":13}},"5":{"start":{"line":11,"column":4},"end":{"line":13,"column":5}},"6":{"start":{"line":12,"column":6},"end":{"line":12,"column":30}},"7":{"start":{"line":16,"column":2},"end":{"line":35,"column":4}}},"fnMap":{"0":{"name":"HookCallbackRef","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":39}},"loc":{"start":{"line":3,"column":42},"end":{"line":36,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":6,"column":22},"end":{"line":6,"column":23}},"loc":{"start":{"line":6,"column":28},"end":{"line":6,"column":42}},"line":6},"2":{"name":"(anonymous_2)","decl":{"start":{"line":10,"column":12},"end":{"line":10,"column":13}},"loc":{"start":{"line":10,"column":18},"end":{"line":14,"column":3}},"line":10}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":4},"end":{"line":13,"column":5}},"type":"if","locations":[{"start":{"line":11,"column":4},"end":{"line":13,"column":5}},{"start":{},"end":{}}],"line":11},"1":{"loc":{"start":{"line":28,"column":3},"end":{"line":32,"column":10}},"type":"binary-expr","locations":[{"start":{"line":28,"column":3},"end":{"line":28,"column":7}},{"start":{"line":29,"column":4},"end":{"line":32,"column":10}}],"line":28}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0},"f":{"0":0,"1":0,"2":0},"b":{"0":[0,0],"1":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookContext.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookContext.js","statementMap":{"0":{"start":{"line":5,"column":28},"end":{"line":5,"column":43}},"1":{"start":{"line":7,"column":15},"end":{"line":10,"column":1}},"2":{"start":{"line":14,"column":2},"end":{"line":20,"column":4}}},"fnMap":{"0":{"name":"HookContext","decl":{"start":{"line":12,"column":24},"end":{"line":12,"column":35}},"loc":{"start":{"line":12,"column":38},"end":{"line":21,"column":1}},"line":12}},"branchMap":{},"s":{"0":0,"1":0,"2":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookContextChild.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookContextChild.js","statementMap":{"0":{"start":{"line":5,"column":2},"end":{"line":9,"column":4}},"1":{"start":{"line":13,"column":26},"end":{"line":13,"column":50}},"2":{"start":{"line":14,"column":2},"end":{"line":18,"column":4}}},"fnMap":{"0":{"name":"HookContextChild","decl":{"start":{"line":4,"column":16},"end":{"line":4,"column":32}},"loc":{"start":{"line":4,"column":35},"end":{"line":10,"column":1}},"line":4},"1":{"name":"HookContextChildGrand","decl":{"start":{"line":12,"column":16},"end":{"line":12,"column":37}},"loc":{"start":{"line":12,"column":40},"end":{"line":19,"column":1}},"line":12}},"branchMap":{},"s":{"0":0,"1":0,"2":0},"f":{"0":0,"1":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookCustom.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookCustom.js","statementMap":{"0":{"start":{"line":4,"column":53},"end":{"line":4,"column":69}},"1":{"start":{"line":5,"column":2},"end":{"line":12,"column":4}}},"fnMap":{"0":{"name":"HookCustom","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":34}},"loc":{"start":{"line":3,"column":37},"end":{"line":13,"column":1}},"line":3}},"branchMap":{},"s":{"0":0,"1":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookDeferred.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookDeferred.js","statementMap":{"0":{"start":{"line":4,"column":26},"end":{"line":4,"column":38}},"1":{"start":{"line":6,"column":20},"end":{"line":6,"column":42}},"2":{"start":{"line":8,"column":23},"end":{"line":11,"column":3}},"3":{"start":{"line":9,"column":4},"end":{"line":9,"column":28}},"4":{"start":{"line":10,"column":4},"end":{"line":10,"column":33}},"5":{"start":{"line":13,"column":2},"end":{"line":18,"column":4}},"6":{"start":{"line":16,"column":41},"end":{"line":16,"column":71}}},"fnMap":{"0":{"name":"HookDefered","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":35}},"loc":{"start":{"line":3,"column":38},"end":{"line":19,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":23},"end":{"line":8,"column":24}},"loc":{"start":{"line":8,"column":28},"end":{"line":11,"column":3}},"line":8},"2":{"name":"(anonymous_2)","decl":{"start":{"line":16,"column":27},"end":{"line":16,"column":28}},"loc":{"start":{"line":16,"column":41},"end":{"line":16,"column":71}},"line":16}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},"f":{"0":0,"1":0,"2":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookDeferredTransition.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookDeferredTransition.js","statementMap":{"0":{"start":{"line":7,"column":26},"end":{"line":7,"column":38}},"1":{"start":{"line":8,"column":34},"end":{"line":8,"column":46}},"2":{"start":{"line":9,"column":27},"end":{"line":9,"column":53}},"3":{"start":{"line":10,"column":20},"end":{"line":10,"column":49}},"4":{"start":{"line":12,"column":23},"end":{"line":16,"column":3}},"5":{"start":{"line":13,"column":17},"end":{"line":13,"column":31}},"6":{"start":{"line":14,"column":4},"end":{"line":14,"column":18}},"7":{"start":{"line":15,"column":4},"end":{"line":15,"column":58}},"8":{"start":{"line":15,"column":40},"end":{"line":15,"column":55}},"9":{"start":{"line":18,"column":2},"end":{"line":30,"column":4}},"10":{"start":{"line":23,"column":11},"end":{"line":23,"column":65}}},"fnMap":{"0":{"name":"HookDeferredTransition","decl":{"start":{"line":6,"column":24},"end":{"line":6,"column":46}},"loc":{"start":{"line":6,"column":49},"end":{"line":31,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":23},"end":{"line":12,"column":24}},"loc":{"start":{"line":12,"column":28},"end":{"line":16,"column":3}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":15,"column":35},"end":{"line":15,"column":36}},"loc":{"start":{"line":15,"column":40},"end":{"line":15,"column":55}},"line":15},"3":{"name":"(anonymous_3)","decl":{"start":{"line":22,"column":19},"end":{"line":22,"column":20}},"loc":{"start":{"line":23,"column":11},"end":{"line":23,"column":65}},"line":23}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0},"f":{"0":0,"1":0,"2":0,"3":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookEffect.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookEffect.js","statementMap":{"0":{"start":{"line":4,"column":14},"end":{"line":10,"column":1}},"1":{"start":{"line":5,"column":16},"end":{"line":5,"column":26}},"2":{"start":{"line":7,"column":2},"end":{"line":9,"column":3}},"3":{"start":{"line":8,"column":3},"end":{"line":8,"column":45}},"4":{"start":{"line":8,"column":37},"end":{"line":8,"column":43}},"5":{"start":{"line":13,"column":28},"end":{"line":13,"column":39}},"6":{"start":{"line":16,"column":2},"end":{"line":20,"column":9}},"7":{"start":{"line":18,"column":4},"end":{"line":18,"column":16}},"8":{"start":{"line":19,"column":4},"end":{"line":19,"column":19}},"9":{"start":{"line":22,"column":22},"end":{"line":24,"column":3}},"10":{"start":{"line":23,"column":4},"end":{"line":23,"column":25}},"11":{"start":{"line":23,"column":18},"end":{"line":23,"column":23}},"12":{"start":{"line":26,"column":2},"end":{"line":31,"column":4}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":14},"end":{"line":4,"column":15}},"loc":{"start":{"line":4,"column":23},"end":{"line":10,"column":1}},"line":4},"1":{"name":"HookEffect","decl":{"start":{"line":12,"column":24},"end":{"line":12,"column":34}},"loc":{"start":{"line":12,"column":45},"end":{"line":32,"column":1}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":16,"column":12},"end":{"line":16,"column":13}},"loc":{"start":{"line":16,"column":18},"end":{"line":20,"column":3}},"line":16},"3":{"name":"(anonymous_3)","decl":{"start":{"line":22,"column":22},"end":{"line":22,"column":23}},"loc":{"start":{"line":22,"column":28},"end":{"line":24,"column":3}},"line":22},"4":{"name":"(anonymous_4)","decl":{"start":{"line":23,"column":13},"end":{"line":23,"column":14}},"loc":{"start":{"line":23,"column":18},"end":{"line":23,"column":23}},"line":23}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":3},"end":{"line":8,"column":45}},"type":"if","locations":[{"start":{"line":8,"column":3},"end":{"line":8,"column":45}},{"start":{},"end":{}}],"line":8}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0},"b":{"0":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookMemo.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookMemo.js","statementMap":{"0":{"start":{"line":5,"column":14},"end":{"line":8,"column":1}},"1":{"start":{"line":6,"column":16},"end":{"line":6,"column":26}},"2":{"start":{"line":7,"column":2},"end":{"line":7,"column":37}},"3":{"start":{"line":11,"column":30},"end":{"line":11,"column":41}},"4":{"start":{"line":12,"column":30},"end":{"line":12,"column":41}},"5":{"start":{"line":14,"column":20},"end":{"line":14,"column":47}},"6":{"start":{"line":14,"column":26},"end":{"line":14,"column":47}},"7":{"start":{"line":14,"column":41},"end":{"line":14,"column":46}},"8":{"start":{"line":15,"column":20},"end":{"line":15,"column":47}},"9":{"start":{"line":15,"column":26},"end":{"line":15,"column":47}},"10":{"start":{"line":15,"column":41},"end":{"line":15,"column":46}},"11":{"start":{"line":18,"column":23},"end":{"line":21,"column":3}},"12":{"start":{"line":19,"column":4},"end":{"line":19,"column":16}},"13":{"start":{"line":20,"column":4},"end":{"line":20,"column":24}},"14":{"start":{"line":23,"column":2},"end":{"line":38,"column":4}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":14},"end":{"line":5,"column":15}},"loc":{"start":{"line":5,"column":23},"end":{"line":8,"column":1}},"line":5},"1":{"name":"HookMemo","decl":{"start":{"line":10,"column":24},"end":{"line":10,"column":32}},"loc":{"start":{"line":10,"column":35},"end":{"line":39,"column":1}},"line":10},"2":{"name":"(anonymous_2)","decl":{"start":{"line":14,"column":20},"end":{"line":14,"column":21}},"loc":{"start":{"line":14,"column":26},"end":{"line":14,"column":47}},"line":14},"3":{"name":"(anonymous_3)","decl":{"start":{"line":14,"column":36},"end":{"line":14,"column":37}},"loc":{"start":{"line":14,"column":41},"end":{"line":14,"column":46}},"line":14},"4":{"name":"(anonymous_4)","decl":{"start":{"line":15,"column":20},"end":{"line":15,"column":21}},"loc":{"start":{"line":15,"column":26},"end":{"line":15,"column":47}},"line":15},"5":{"name":"(anonymous_5)","decl":{"start":{"line":15,"column":36},"end":{"line":15,"column":37}},"loc":{"start":{"line":15,"column":41},"end":{"line":15,"column":46}},"line":15},"6":{"name":"(anonymous_6)","decl":{"start":{"line":18,"column":23},"end":{"line":18,"column":24}},"loc":{"start":{"line":18,"column":29},"end":{"line":21,"column":3}},"line":18}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookMemoChild.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookMemoChild.js","statementMap":{"0":{"start":{"line":3,"column":24},"end":{"line":9,"column":1}},"1":{"start":{"line":5,"column":2},"end":{"line":5,"column":43}},"2":{"start":{"line":6,"column":2},"end":{"line":8,"column":4}},"3":{"start":{"line":13,"column":25},"end":{"line":19,"column":1}},"4":{"start":{"line":15,"column":2},"end":{"line":15,"column":44}},"5":{"start":{"line":16,"column":2},"end":{"line":18,"column":4}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":25}},"loc":{"start":{"line":3,"column":59},"end":{"line":9,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":13,"column":25},"end":{"line":13,"column":26}},"loc":{"start":{"line":13,"column":44},"end":{"line":19,"column":1}},"line":13}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"f":{"0":0,"1":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookReducer.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookReducer.js","statementMap":{"0":{"start":{"line":5,"column":28},"end":{"line":19,"column":3}},"1":{"start":{"line":8,"column":6},"end":{"line":13,"column":7}},"2":{"start":{"line":10,"column":10},"end":{"line":10,"column":44}},"3":{"start":{"line":12,"column":10},"end":{"line":12,"column":23}},"4":{"start":{"line":22,"column":22},"end":{"line":24,"column":3}},"5":{"start":{"line":23,"column":4},"end":{"line":23,"column":33}},"6":{"start":{"line":26,"column":2},"end":{"line":31,"column":4}}},"fnMap":{"0":{"name":"HookReducer","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":35}},"loc":{"start":{"line":3,"column":46},"end":{"line":32,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},"loc":{"start":{"line":7,"column":23},"end":{"line":14,"column":5}},"line":7},"2":{"name":"(anonymous_2)","decl":{"start":{"line":22,"column":22},"end":{"line":22,"column":23}},"loc":{"start":{"line":22,"column":28},"end":{"line":24,"column":3}},"line":22}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":6},"end":{"line":13,"column":7}},"type":"switch","locations":[{"start":{"line":9,"column":8},"end":{"line":10,"column":44}},{"start":{"line":11,"column":8},"end":{"line":12,"column":23}}],"line":8}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},"f":{"0":0,"1":0,"2":0},"b":{"0":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookReducerInit.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookReducerInit.js","statementMap":{"0":{"start":{"line":5,"column":2},"end":{"line":5,"column":41}},"1":{"start":{"line":6,"column":2},"end":{"line":8,"column":4}},"2":{"start":{"line":12,"column":28},"end":{"line":22,"column":3}},"3":{"start":{"line":14,"column":6},"end":{"line":19,"column":7}},"4":{"start":{"line":16,"column":10},"end":{"line":16,"column":44}},"5":{"start":{"line":18,"column":10},"end":{"line":18,"column":23}},"6":{"start":{"line":24,"column":22},"end":{"line":26,"column":3}},"7":{"start":{"line":25,"column":4},"end":{"line":25,"column":33}},"8":{"start":{"line":27,"column":2},"end":{"line":32,"column":4}}},"fnMap":{"0":{"name":"initCounter","decl":{"start":{"line":4,"column":9},"end":{"line":4,"column":20}},"loc":{"start":{"line":4,"column":27},"end":{"line":9,"column":1}},"line":4},"1":{"name":"HookReducerInit","decl":{"start":{"line":11,"column":24},"end":{"line":11,"column":39}},"loc":{"start":{"line":11,"column":50},"end":{"line":33,"column":1}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":4},"end":{"line":13,"column":5}},"loc":{"start":{"line":13,"column":23},"end":{"line":20,"column":5}},"line":13},"3":{"name":"(anonymous_3)","decl":{"start":{"line":24,"column":22},"end":{"line":24,"column":23}},"loc":{"start":{"line":24,"column":28},"end":{"line":26,"column":3}},"line":24}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":6},"end":{"line":19,"column":7}},"type":"switch","locations":[{"start":{"line":15,"column":8},"end":{"line":16,"column":44}},{"start":{"line":17,"column":8},"end":{"line":18,"column":23}}],"line":14}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0},"f":{"0":0,"1":0,"2":0,"3":0},"b":{"0":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookReducerUp.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookReducerUp.js","statementMap":{"0":{"start":{"line":4,"column":28},"end":{"line":21,"column":3}},"1":{"start":{"line":6,"column":6},"end":{"line":16,"column":7}},"2":{"start":{"line":9,"column":10},"end":{"line":9,"column":54}},"3":{"start":{"line":12,"column":10},"end":{"line":12,"column":40}},"4":{"start":{"line":15,"column":10},"end":{"line":15,"column":23}},"5":{"start":{"line":23,"column":19},"end":{"line":23,"column":62}},"6":{"start":{"line":23,"column":25},"end":{"line":23,"column":62}},"7":{"start":{"line":24,"column":21},"end":{"line":24,"column":65}},"8":{"start":{"line":24,"column":27},"end":{"line":24,"column":65}},"9":{"start":{"line":25,"column":22},"end":{"line":25,"column":64}},"10":{"start":{"line":25,"column":28},"end":{"line":25,"column":64}},"11":{"start":{"line":27,"column":2},"end":{"line":34,"column":4}}},"fnMap":{"0":{"name":"HookReducerUp","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":37}},"loc":{"start":{"line":3,"column":48},"end":{"line":35,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":5,"column":4},"end":{"line":5,"column":5}},"loc":{"start":{"line":5,"column":23},"end":{"line":17,"column":5}},"line":5},"2":{"name":"(anonymous_2)","decl":{"start":{"line":23,"column":19},"end":{"line":23,"column":20}},"loc":{"start":{"line":23,"column":25},"end":{"line":23,"column":62}},"line":23},"3":{"name":"(anonymous_3)","decl":{"start":{"line":24,"column":21},"end":{"line":24,"column":22}},"loc":{"start":{"line":24,"column":27},"end":{"line":24,"column":65}},"line":24},"4":{"name":"(anonymous_4)","decl":{"start":{"line":25,"column":22},"end":{"line":25,"column":23}},"loc":{"start":{"line":25,"column":28},"end":{"line":25,"column":64}},"line":25}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":6},"end":{"line":16,"column":7}},"type":"switch","locations":[{"start":{"line":8,"column":8},"end":{"line":9,"column":54}},{"start":{"line":11,"column":8},"end":{"line":12,"column":40}},{"start":{"line":14,"column":8},"end":{"line":15,"column":23}}],"line":6}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0},"b":{"0":[0,0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookRef.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookRef.js","statementMap":{"0":{"start":{"line":4,"column":13},"end":{"line":4,"column":25}},"1":{"start":{"line":5,"column":28},"end":{"line":5,"column":39}},"2":{"start":{"line":7,"column":22},"end":{"line":11,"column":3}},"3":{"start":{"line":8,"column":4},"end":{"line":10,"column":5}},"4":{"start":{"line":9,"column":6},"end":{"line":9,"column":65}},"5":{"start":{"line":9,"column":37},"end":{"line":9,"column":57}},"6":{"start":{"line":9,"column":51},"end":{"line":9,"column":56}},"7":{"start":{"line":12,"column":20},"end":{"line":15,"column":3}},"8":{"start":{"line":13,"column":4},"end":{"line":13,"column":30}},"9":{"start":{"line":14,"column":4},"end":{"line":14,"column":22}},"10":{"start":{"line":16,"column":2},"end":{"line":22,"column":4}}},"fnMap":{"0":{"name":"HookRef","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":31}},"loc":{"start":{"line":3,"column":34},"end":{"line":23,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":7,"column":22},"end":{"line":7,"column":23}},"loc":{"start":{"line":7,"column":28},"end":{"line":11,"column":3}},"line":7},"2":{"name":"(anonymous_2)","decl":{"start":{"line":9,"column":31},"end":{"line":9,"column":32}},"loc":{"start":{"line":9,"column":37},"end":{"line":9,"column":57}},"line":9},"3":{"name":"(anonymous_3)","decl":{"start":{"line":9,"column":46},"end":{"line":9,"column":47}},"loc":{"start":{"line":9,"column":51},"end":{"line":9,"column":56}},"line":9},"4":{"name":"(anonymous_4)","decl":{"start":{"line":12,"column":20},"end":{"line":12,"column":21}},"loc":{"start":{"line":12,"column":26},"end":{"line":15,"column":3}},"line":12}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":4},"end":{"line":10,"column":5}},"type":"if","locations":[{"start":{"line":8,"column":4},"end":{"line":10,"column":5}},{"start":{},"end":{}}],"line":8}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0},"b":{"0":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookRefForward.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookRefForward.js","statementMap":{"0":{"start":{"line":5,"column":15},"end":{"line":5,"column":27}},"1":{"start":{"line":7,"column":2},"end":{"line":9,"column":9}},"2":{"start":{"line":8,"column":4},"end":{"line":8,"column":26}},"3":{"start":{"line":11,"column":2},"end":{"line":13,"column":4}}},"fnMap":{"0":{"name":"HookRefForward","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":38}},"loc":{"start":{"line":4,"column":41},"end":{"line":14,"column":1}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":7,"column":12},"end":{"line":7,"column":13}},"loc":{"start":{"line":7,"column":18},"end":{"line":9,"column":3}},"line":7}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0},"f":{"0":0,"1":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookRefNg.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookRefNg.js","statementMap":{"0":{"start":{"line":5,"column":11},"end":{"line":5,"column":15}},"1":{"start":{"line":6,"column":28},"end":{"line":6,"column":39}},"2":{"start":{"line":9,"column":22},"end":{"line":14,"column":3}},"3":{"start":{"line":11,"column":4},"end":{"line":13,"column":5}},"4":{"start":{"line":12,"column":6},"end":{"line":12,"column":57}},"5":{"start":{"line":12,"column":29},"end":{"line":12,"column":49}},"6":{"start":{"line":12,"column":43},"end":{"line":12,"column":48}},"7":{"start":{"line":16,"column":20},"end":{"line":19,"column":3}},"8":{"start":{"line":17,"column":4},"end":{"line":17,"column":22}},"9":{"start":{"line":18,"column":4},"end":{"line":18,"column":14}},"10":{"start":{"line":21,"column":2},"end":{"line":27,"column":4}}},"fnMap":{"0":{"name":"HookRefNg","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":33}},"loc":{"start":{"line":3,"column":36},"end":{"line":28,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":9,"column":22},"end":{"line":9,"column":23}},"loc":{"start":{"line":9,"column":28},"end":{"line":14,"column":3}},"line":9},"2":{"name":"(anonymous_2)","decl":{"start":{"line":12,"column":23},"end":{"line":12,"column":24}},"loc":{"start":{"line":12,"column":29},"end":{"line":12,"column":49}},"line":12},"3":{"name":"(anonymous_3)","decl":{"start":{"line":12,"column":38},"end":{"line":12,"column":39}},"loc":{"start":{"line":12,"column":43},"end":{"line":12,"column":48}},"line":12},"4":{"name":"(anonymous_4)","decl":{"start":{"line":16,"column":20},"end":{"line":16,"column":21}},"loc":{"start":{"line":16,"column":26},"end":{"line":19,"column":3}},"line":16}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":4},"end":{"line":13,"column":5}},"type":"if","locations":[{"start":{"line":11,"column":4},"end":{"line":13,"column":5}},{"start":{},"end":{}}],"line":11}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0},"b":{"0":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookThemeButton.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookThemeButton.js","statementMap":{"0":{"start":{"line":6,"column":31},"end":{"line":6,"column":55}},"1":{"start":{"line":7,"column":2},"end":{"line":11,"column":4}}},"fnMap":{"0":{"name":"HookThemeButton","decl":{"start":{"line":5,"column":24},"end":{"line":5,"column":39}},"loc":{"start":{"line":5,"column":42},"end":{"line":12,"column":1}},"line":5}},"branchMap":{},"s":{"0":0,"1":0},"f":{"0":0},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"6ad78e08083caf2053520e30d59f1c2ce0eb6e1d"} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookTimer.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookTimer.js","statementMap":{"0":{"start":{"line":5,"column":28},"end":{"line":5,"column":42}},"1":{"start":{"line":7,"column":2},"end":{"line":16,"column":9}},"2":{"start":{"line":9,"column":14},"end":{"line":11,"column":12}},"3":{"start":{"line":10,"column":6},"end":{"line":10,"column":27}},"4":{"start":{"line":10,"column":20},"end":{"line":10,"column":25}},"5":{"start":{"line":13,"column":4},"end":{"line":15,"column":6}},"6":{"start":{"line":14,"column":6},"end":{"line":14,"column":23}},"7":{"start":{"line":18,"column":2},"end":{"line":23,"column":4}}},"fnMap":{"0":{"name":"HookTimer","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":33}},"loc":{"start":{"line":4,"column":44},"end":{"line":24,"column":1}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":7,"column":12},"end":{"line":7,"column":13}},"loc":{"start":{"line":7,"column":18},"end":{"line":16,"column":3}},"line":7},"2":{"name":"(anonymous_2)","decl":{"start":{"line":9,"column":26},"end":{"line":9,"column":27}},"loc":{"start":{"line":9,"column":32},"end":{"line":11,"column":5}},"line":9},"3":{"name":"(anonymous_3)","decl":{"start":{"line":10,"column":15},"end":{"line":10,"column":16}},"loc":{"start":{"line":10,"column":20},"end":{"line":10,"column":25}},"line":10},"4":{"name":"(anonymous_4)","decl":{"start":{"line":13,"column":11},"end":{"line":13,"column":12}},"loc":{"start":{"line":13,"column":17},"end":{"line":15,"column":5}},"line":13}},"branchMap":{"0":{"loc":{"start":{"line":20,"column":20},"end":{"line":20,"column":43}},"type":"cond-expr","locations":[{"start":{"line":20,"column":32},"end":{"line":20,"column":38}},{"start":{"line":20,"column":41},"end":{"line":20,"column":43}}],"line":20}},"s":{"0":2,"1":2,"2":1,"3":1,"4":1,"5":1,"6":1,"7":2},"f":{"0":2,"1":1,"2":1,"3":1,"4":1},"b":{"0":[0,2]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"31dd14c2ea6190bcbb52128eda323b0be6373bed"} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookTransition.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookTransition.js","statementMap":{"0":{"start":{"line":85,"column":26},"end":{"line":85,"column":38}},"1":{"start":{"line":86,"column":34},"end":{"line":86,"column":46}},"2":{"start":{"line":88,"column":39},"end":{"line":88,"column":54}},"3":{"start":{"line":91,"column":23},"end":{"line":98,"column":3}},"4":{"start":{"line":92,"column":17},"end":{"line":92,"column":31}},"5":{"start":{"line":93,"column":4},"end":{"line":93,"column":18}},"6":{"start":{"line":95,"column":4},"end":{"line":97,"column":7}},"7":{"start":{"line":96,"column":6},"end":{"line":96,"column":60}},"8":{"start":{"line":96,"column":42},"end":{"line":96,"column":57}},"9":{"start":{"line":100,"column":2},"end":{"line":113,"column":4}},"10":{"start":{"line":105,"column":11},"end":{"line":105,"column":65}}},"fnMap":{"0":{"name":"HookTransition","decl":{"start":{"line":84,"column":24},"end":{"line":84,"column":38}},"loc":{"start":{"line":84,"column":41},"end":{"line":114,"column":1}},"line":84},"1":{"name":"(anonymous_1)","decl":{"start":{"line":91,"column":23},"end":{"line":91,"column":24}},"loc":{"start":{"line":91,"column":28},"end":{"line":98,"column":3}},"line":91},"2":{"name":"(anonymous_2)","decl":{"start":{"line":95,"column":20},"end":{"line":95,"column":21}},"loc":{"start":{"line":95,"column":26},"end":{"line":97,"column":5}},"line":95},"3":{"name":"(anonymous_3)","decl":{"start":{"line":96,"column":37},"end":{"line":96,"column":38}},"loc":{"start":{"line":96,"column":42},"end":{"line":96,"column":57}},"line":96},"4":{"name":"(anonymous_4)","decl":{"start":{"line":104,"column":19},"end":{"line":104,"column":20}},"loc":{"start":{"line":105,"column":11},"end":{"line":105,"column":65}},"line":105}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookTransitionChild.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/HookTransitionChild.js","statementMap":{"0":{"start":{"line":6,"column":14},"end":{"line":9,"column":1}},"1":{"start":{"line":7,"column":16},"end":{"line":7,"column":26}},"2":{"start":{"line":8,"column":2},"end":{"line":8,"column":37}},"3":{"start":{"line":12,"column":15},"end":{"line":12,"column":47}},"4":{"start":{"line":12,"column":31},"end":{"line":12,"column":46}},"5":{"start":{"line":13,"column":2},"end":{"line":21,"column":4}},"6":{"start":{"line":24,"column":27},"end":{"line":33,"column":2}},"7":{"start":{"line":26,"column":2},"end":{"line":26,"column":46}},"8":{"start":{"line":26,"column":17},"end":{"line":26,"column":46}},"9":{"start":{"line":28,"column":2},"end":{"line":32,"column":4}},"10":{"start":{"line":30,"column":20},"end":{"line":30,"column":54}},"11":{"start":{"line":37,"column":2},"end":{"line":37,"column":14}},"12":{"start":{"line":38,"column":2},"end":{"line":38,"column":41}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":14},"end":{"line":6,"column":15}},"loc":{"start":{"line":6,"column":25},"end":{"line":9,"column":1}},"line":6},"1":{"name":"BookDetails","decl":{"start":{"line":11,"column":16},"end":{"line":11,"column":27}},"loc":{"start":{"line":11,"column":38},"end":{"line":22,"column":1}},"line":11},"2":{"name":"(anonymous_2)","decl":{"start":{"line":12,"column":26},"end":{"line":12,"column":27}},"loc":{"start":{"line":12,"column":31},"end":{"line":12,"column":46}},"line":12},"3":{"name":"(anonymous_3)","decl":{"start":{"line":24,"column":32},"end":{"line":24,"column":33}},"loc":{"start":{"line":24,"column":60},"end":{"line":33,"column":1}},"line":24},"4":{"name":"(anonymous_4)","decl":{"start":{"line":30,"column":15},"end":{"line":30,"column":16}},"loc":{"start":{"line":30,"column":20},"end":{"line":30,"column":54}},"line":30},"5":{"name":"CommentItem","decl":{"start":{"line":36,"column":9},"end":{"line":36,"column":20}},"loc":{"start":{"line":36,"column":30},"end":{"line":39,"column":1}},"line":36}},"branchMap":{"0":{"loc":{"start":{"line":19,"column":17},"end":{"line":19,"column":46}},"type":"cond-expr","locations":[{"start":{"line":19,"column":36},"end":{"line":19,"column":40}},{"start":{"line":19,"column":42},"end":{"line":19,"column":46}}],"line":19},"1":{"loc":{"start":{"line":26,"column":2},"end":{"line":26,"column":46}},"type":"if","locations":[{"start":{"line":26,"column":2},"end":{"line":26,"column":46}},{"start":{},"end":{}}],"line":26}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"b":{"0":[0,0],"1":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/MyTextBox.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/MyTextBox.js","statementMap":{"0":{"start":{"line":2,"column":2},"end":{"line":7,"column":4}}},"fnMap":{"0":{"name":"MyTextBox","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":33}},"loc":{"start":{"line":1,"column":50},"end":{"line":8,"column":1}},"line":1}},"branchMap":{},"s":{"0":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/MyThemeProvider.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/MyThemeProvider.js","statementMap":{"0":{"start":{"line":8,"column":26},"end":{"line":8,"column":43}},"1":{"start":{"line":10,"column":22},"end":{"line":17,"column":3}},"2":{"start":{"line":13,"column":6},"end":{"line":15,"column":8}},"3":{"start":{"line":14,"column":8},"end":{"line":14,"column":43}},"4":{"start":{"line":18,"column":16},"end":{"line":38,"column":4}},"5":{"start":{"line":39,"column":2},"end":{"line":46,"column":4}}},"fnMap":{"0":{"name":"MyThemeProvider","decl":{"start":{"line":7,"column":24},"end":{"line":7,"column":39}},"loc":{"start":{"line":7,"column":54},"end":{"line":47,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":16},"end":{"line":12,"column":17}},"loc":{"start":{"line":12,"column":22},"end":{"line":16,"column":5}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":13,"column":14},"end":{"line":13,"column":15}},"loc":{"start":{"line":14,"column":8},"end":{"line":14,"column":43}},"line":14}},"branchMap":{"0":{"loc":{"start":{"line":14,"column":8},"end":{"line":14,"column":43}},"type":"cond-expr","locations":[{"start":{"line":14,"column":27},"end":{"line":14,"column":33}},{"start":{"line":14,"column":36},"end":{"line":14,"column":43}}],"line":14},"1":{"loc":{"start":{"line":22,"column":10},"end":{"line":35,"column":7}},"type":"cond-expr","locations":[{"start":{"line":23,"column":8},"end":{"line":25,"column":9}},{"start":{"line":26,"column":8},"end":{"line":35,"column":7}}],"line":22}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"f":{"0":0,"1":0,"2":0},"b":{"0":[0,0],"1":[0,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"d7871b711b1e199db455f1a405aeb9acd0392b8a"} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/RecoilCounter.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/RecoilCounter.js","statementMap":{"0":{"start":{"line":49,"column":32},"end":{"line":49,"column":59}},"1":{"start":{"line":50,"column":23},"end":{"line":50,"column":55}},"2":{"start":{"line":52,"column":22},"end":{"line":54,"column":3}},"3":{"start":{"line":53,"column":4},"end":{"line":53,"column":27}},"4":{"start":{"line":53,"column":20},"end":{"line":53,"column":25}},"5":{"start":{"line":56,"column":2},"end":{"line":62,"column":4}},"6":{"start":{"line":59,"column":29},"end":{"line":59,"column":43}}},"fnMap":{"0":{"name":"RecoilCounter","decl":{"start":{"line":48,"column":24},"end":{"line":48,"column":37}},"loc":{"start":{"line":48,"column":40},"end":{"line":63,"column":1}},"line":48},"1":{"name":"(anonymous_1)","decl":{"start":{"line":52,"column":22},"end":{"line":52,"column":23}},"loc":{"start":{"line":52,"column":28},"end":{"line":54,"column":3}},"line":52},"2":{"name":"(anonymous_2)","decl":{"start":{"line":53,"column":15},"end":{"line":53,"column":16}},"loc":{"start":{"line":53,"column":20},"end":{"line":53,"column":25}},"line":53},"3":{"name":"(anonymous_3)","decl":{"start":{"line":59,"column":23},"end":{"line":59,"column":24}},"loc":{"start":{"line":59,"column":29},"end":{"line":59,"column":43}},"line":59}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},"f":{"0":0,"1":0,"2":0,"3":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/RecoilTodo.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/RecoilTodo.js","statementMap":{"0":{"start":{"line":7,"column":28},"end":{"line":7,"column":40}},"1":{"start":{"line":9,"column":26},"end":{"line":9,"column":50}},"2":{"start":{"line":10,"column":16},"end":{"line":10,"column":50}},"3":{"start":{"line":12,"column":28},"end":{"line":12,"column":57}},"4":{"start":{"line":12,"column":33},"end":{"line":12,"column":57}},"5":{"start":{"line":14,"column":20},"end":{"line":23,"column":3}},"6":{"start":{"line":15,"column":4},"end":{"line":22,"column":7}},"7":{"start":{"line":25,"column":21},"end":{"line":36,"column":3}},"8":{"start":{"line":26,"column":4},"end":{"line":35,"column":8}},"9":{"start":{"line":27,"column":6},"end":{"line":34,"column":7}},"10":{"start":{"line":28,"column":8},"end":{"line":31,"column":10}},"11":{"start":{"line":33,"column":8},"end":{"line":33,"column":20}},"12":{"start":{"line":38,"column":23},"end":{"line":42,"column":3}},"13":{"start":{"line":39,"column":4},"end":{"line":41,"column":7}},"14":{"start":{"line":40,"column":6},"end":{"line":40,"column":45}},"15":{"start":{"line":44,"column":2},"end":{"line":70,"column":4}},"16":{"start":{"line":57,"column":10},"end":{"line":66,"column":15}}},"fnMap":{"0":{"name":"RecoilTodo","decl":{"start":{"line":6,"column":24},"end":{"line":6,"column":34}},"loc":{"start":{"line":6,"column":37},"end":{"line":71,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":12,"column":28},"end":{"line":12,"column":29}},"loc":{"start":{"line":12,"column":33},"end":{"line":12,"column":57}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":14,"column":20},"end":{"line":14,"column":21}},"loc":{"start":{"line":14,"column":26},"end":{"line":23,"column":3}},"line":14},"3":{"name":"(anonymous_3)","decl":{"start":{"line":25,"column":21},"end":{"line":25,"column":22}},"loc":{"start":{"line":25,"column":26},"end":{"line":36,"column":3}},"line":25},"4":{"name":"(anonymous_4)","decl":{"start":{"line":26,"column":21},"end":{"line":26,"column":22}},"loc":{"start":{"line":26,"column":29},"end":{"line":35,"column":5}},"line":26},"5":{"name":"(anonymous_5)","decl":{"start":{"line":38,"column":23},"end":{"line":38,"column":24}},"loc":{"start":{"line":38,"column":28},"end":{"line":42,"column":3}},"line":38},"6":{"name":"(anonymous_6)","decl":{"start":{"line":39,"column":24},"end":{"line":39,"column":25}},"loc":{"start":{"line":40,"column":6},"end":{"line":40,"column":45}},"line":40},"7":{"name":"(anonymous_7)","decl":{"start":{"line":56,"column":18},"end":{"line":56,"column":19}},"loc":{"start":{"line":57,"column":10},"end":{"line":66,"column":15}},"line":57}},"branchMap":{"0":{"loc":{"start":{"line":27,"column":6},"end":{"line":34,"column":7}},"type":"if","locations":[{"start":{"line":27,"column":6},"end":{"line":34,"column":7}},{"start":{"line":32,"column":13},"end":{"line":34,"column":7}}],"line":27},"1":{"loc":{"start":{"line":58,"column":23},"end":{"line":58,"column":48}},"type":"cond-expr","locations":[{"start":{"line":58,"column":37},"end":{"line":58,"column":43}},{"start":{"line":58,"column":46},"end":{"line":58,"column":48}}],"line":58}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0},"b":{"0":[0,0],"1":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/RecoilTodoUp.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/RecoilTodoUp.js","statementMap":{"0":{"start":{"line":7,"column":28},"end":{"line":7,"column":40}},"1":{"start":{"line":9,"column":26},"end":{"line":9,"column":58}},"2":{"start":{"line":10,"column":24},"end":{"line":10,"column":47}},"3":{"start":{"line":13,"column":28},"end":{"line":13,"column":59}},"4":{"start":{"line":13,"column":34},"end":{"line":13,"column":58}},"5":{"start":{"line":16,"column":20},"end":{"line":27,"column":3}},"6":{"start":{"line":18,"column":18},"end":{"line":18,"column":59}},"7":{"start":{"line":19,"column":4},"end":{"line":26,"column":7}},"8":{"start":{"line":30,"column":21},"end":{"line":35,"column":3}},"9":{"start":{"line":31,"column":4},"end":{"line":34,"column":7}},"10":{"start":{"line":38,"column":23},"end":{"line":43,"column":3}},"11":{"start":{"line":39,"column":4},"end":{"line":42,"column":7}},"12":{"start":{"line":45,"column":2},"end":{"line":70,"column":4}},"13":{"start":{"line":57,"column":10},"end":{"line":66,"column":15}}},"fnMap":{"0":{"name":"RecoilTodoUp","decl":{"start":{"line":6,"column":24},"end":{"line":6,"column":36}},"loc":{"start":{"line":6,"column":39},"end":{"line":71,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":13,"column":28},"end":{"line":13,"column":29}},"loc":{"start":{"line":13,"column":33},"end":{"line":13,"column":59}},"line":13},"2":{"name":"(anonymous_2)","decl":{"start":{"line":16,"column":20},"end":{"line":16,"column":21}},"loc":{"start":{"line":16,"column":26},"end":{"line":27,"column":3}},"line":16},"3":{"name":"(anonymous_3)","decl":{"start":{"line":30,"column":21},"end":{"line":30,"column":22}},"loc":{"start":{"line":30,"column":26},"end":{"line":35,"column":3}},"line":30},"4":{"name":"(anonymous_4)","decl":{"start":{"line":38,"column":23},"end":{"line":38,"column":24}},"loc":{"start":{"line":38,"column":28},"end":{"line":43,"column":3}},"line":38},"5":{"name":"(anonymous_5)","decl":{"start":{"line":56,"column":18},"end":{"line":56,"column":19}},"loc":{"start":{"line":57,"column":10},"end":{"line":66,"column":15}},"line":57}},"branchMap":{"0":{"loc":{"start":{"line":18,"column":31},"end":{"line":18,"column":53}},"type":"cond-expr","locations":[{"start":{"line":18,"column":44},"end":{"line":18,"column":47}},{"start":{"line":18,"column":50},"end":{"line":18,"column":53}}],"line":18},"1":{"loc":{"start":{"line":58,"column":23},"end":{"line":58,"column":48}},"type":"cond-expr","locations":[{"start":{"line":58,"column":37},"end":{"line":58,"column":43}},{"start":{"line":58,"column":46},"end":{"line":58,"column":48}}],"line":58}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"b":{"0":[0,0],"1":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/StateEffect.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/StateEffect.js","statementMap":{"0":{"start":{"line":4,"column":28},"end":{"line":4,"column":42}},"1":{"start":{"line":5,"column":24},"end":{"line":5,"column":39}},"2":{"start":{"line":8,"column":2},"end":{"line":10,"column":9}},"3":{"start":{"line":9,"column":4},"end":{"line":9,"column":38}},"4":{"start":{"line":11,"column":22},"end":{"line":11,"column":47}},"5":{"start":{"line":11,"column":28},"end":{"line":11,"column":47}},"6":{"start":{"line":13,"column":2},"end":{"line":20,"column":4}},"7":{"start":{"line":16,"column":29},"end":{"line":16,"column":47}}},"fnMap":{"0":{"name":"StateEffect","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":35}},"loc":{"start":{"line":3,"column":46},"end":{"line":21,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":12},"end":{"line":8,"column":13}},"loc":{"start":{"line":8,"column":18},"end":{"line":10,"column":3}},"line":8},"2":{"name":"(anonymous_2)","decl":{"start":{"line":11,"column":22},"end":{"line":11,"column":23}},"loc":{"start":{"line":11,"column":28},"end":{"line":11,"column":47}},"line":11},"3":{"name":"(anonymous_3)","decl":{"start":{"line":16,"column":23},"end":{"line":16,"column":24}},"loc":{"start":{"line":16,"column":29},"end":{"line":16,"column":47}},"line":16}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0},"f":{"0":0,"1":0,"2":0,"3":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/ThemeContext.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/ThemeContext.js","statementMap":{},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":14},"end":{"line":5,"column":15}},"loc":{"start":{"line":5,"column":20},"end":{"line":5,"column":22}},"line":5}},"branchMap":{},"s":{},"f":{"0":0},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"35f0022afeb4795b8c90bd29e956019adab55335"} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/UseCounter.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/UseCounter.js","statementMap":{"0":{"start":{"line":5,"column":28},"end":{"line":19,"column":3}},"1":{"start":{"line":7,"column":6},"end":{"line":14,"column":7}},"2":{"start":{"line":9,"column":10},"end":{"line":9,"column":54}},"3":{"start":{"line":11,"column":10},"end":{"line":11,"column":40}},"4":{"start":{"line":13,"column":10},"end":{"line":13,"column":23}},"5":{"start":{"line":21,"column":19},"end":{"line":21,"column":59}},"6":{"start":{"line":21,"column":25},"end":{"line":21,"column":59}},"7":{"start":{"line":22,"column":21},"end":{"line":22,"column":68}},"8":{"start":{"line":22,"column":27},"end":{"line":22,"column":68}},"9":{"start":{"line":23,"column":22},"end":{"line":23,"column":61}},"10":{"start":{"line":23,"column":28},"end":{"line":23,"column":61}},"11":{"start":{"line":24,"column":2},"end":{"line":24,"column":52}}},"fnMap":{"0":{"name":"useCounter","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":34}},"loc":{"start":{"line":3,"column":47},"end":{"line":25,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":6,"column":4},"end":{"line":6,"column":5}},"loc":{"start":{"line":6,"column":23},"end":{"line":15,"column":5}},"line":6},"2":{"name":"(anonymous_2)","decl":{"start":{"line":21,"column":19},"end":{"line":21,"column":20}},"loc":{"start":{"line":21,"column":25},"end":{"line":21,"column":59}},"line":21},"3":{"name":"(anonymous_3)","decl":{"start":{"line":22,"column":21},"end":{"line":22,"column":22}},"loc":{"start":{"line":22,"column":27},"end":{"line":22,"column":68}},"line":22},"4":{"name":"(anonymous_4)","decl":{"start":{"line":23,"column":22},"end":{"line":23,"column":23}},"loc":{"start":{"line":23,"column":28},"end":{"line":23,"column":61}},"line":23}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":6},"end":{"line":14,"column":7}},"type":"switch","locations":[{"start":{"line":8,"column":8},"end":{"line":9,"column":54}},{"start":{"line":10,"column":8},"end":{"line":11,"column":40}},{"start":{"line":12,"column":8},"end":{"line":13,"column":23}}],"line":7}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0},"b":{"0":[0,0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/books.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/books.js","statementMap":{"0":{"start":{"line":1,"column":14},"end":{"line":58,"column":1}}},"fnMap":{},"branchMap":{},"s":{"0":0},"f":{},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/comments.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap07/comments.js","statementMap":{"0":{"start":{"line":1,"column":17},"end":{"line":104,"column":1}}},"fnMap":{},"branchMap":{},"s":{"0":0},"f":{},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/AboutPage.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/AboutPage.js","statementMap":{"0":{"start":{"line":16,"column":19},"end":{"line":16,"column":32}},"1":{"start":{"line":18,"column":22},"end":{"line":18,"column":41}},"2":{"start":{"line":18,"column":28},"end":{"line":18,"column":41}},"3":{"start":{"line":20,"column":2},"end":{"line":26,"column":4}}},"fnMap":{"0":{"name":"AboutPage","decl":{"start":{"line":14,"column":24},"end":{"line":14,"column":33}},"loc":{"start":{"line":14,"column":36},"end":{"line":27,"column":1}},"line":14},"1":{"name":"(anonymous_1)","decl":{"start":{"line":18,"column":22},"end":{"line":18,"column":23}},"loc":{"start":{"line":18,"column":28},"end":{"line":18,"column":41}},"line":18}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0},"f":{"0":0,"1":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/ArticlePage.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/ArticlePage.js","statementMap":{"0":{"start":{"line":2,"column":2},"end":{"line":2,"column":32}}},"fnMap":{"0":{"name":"ArticlePage","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":35}},"loc":{"start":{"line":1,"column":38},"end":{"line":3,"column":1}},"line":1}},"branchMap":{},"s":{"0":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/BookFormPage.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/BookFormPage.js","statementMap":{"0":{"start":{"line":31,"column":17},"end":{"line":31,"column":32}},"1":{"start":{"line":33,"column":2},"end":{"line":54,"column":4}},"2":{"start":{"line":36,"column":24},"end":{"line":36,"column":48}}},"fnMap":{"0":{"name":"BookFormPage","decl":{"start":{"line":30,"column":24},"end":{"line":30,"column":36}},"loc":{"start":{"line":30,"column":39},"end":{"line":55,"column":1}},"line":30},"1":{"name":"(anonymous_1)","decl":{"start":{"line":36,"column":17},"end":{"line":36,"column":18}},"loc":{"start":{"line":36,"column":24},"end":{"line":36,"column":48}},"line":36}},"branchMap":{},"s":{"0":0,"1":0,"2":0},"f":{"0":0,"1":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/BookNest.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/BookNest.js","statementMap":{"0":{"start":{"line":6,"column":2},"end":{"line":18,"column":4}},"1":{"start":{"line":10,"column":6},"end":{"line":13,"column":23}},"2":{"start":{"line":22,"column":39},"end":{"line":22,"column":50}},"3":{"start":{"line":24,"column":15},"end":{"line":24,"column":47}},"4":{"start":{"line":24,"column":31},"end":{"line":24,"column":46}},"5":{"start":{"line":26,"column":2},"end":{"line":33,"column":4}}},"fnMap":{"0":{"name":"BookListPage","decl":{"start":{"line":5,"column":16},"end":{"line":5,"column":28}},"loc":{"start":{"line":5,"column":31},"end":{"line":19,"column":1}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":9,"column":15},"end":{"line":9,"column":16}},"loc":{"start":{"line":10,"column":6},"end":{"line":13,"column":23}},"line":10},"2":{"name":"BookDetailsPage","decl":{"start":{"line":21,"column":16},"end":{"line":21,"column":31}},"loc":{"start":{"line":21,"column":34},"end":{"line":34,"column":1}},"line":21},"3":{"name":"(anonymous_3)","decl":{"start":{"line":24,"column":26},"end":{"line":24,"column":27}},"loc":{"start":{"line":24,"column":31},"end":{"line":24,"column":46}},"line":24}},"branchMap":{"0":{"loc":{"start":{"line":22,"column":10},"end":{"line":22,"column":34}},"type":"default-arg","locations":[{"start":{"line":22,"column":15},"end":{"line":22,"column":34}}],"line":22}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"f":{"0":0,"1":0,"2":0,"3":0},"b":{"0":[0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/BookPage.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/BookPage.js","statementMap":{"0":{"start":{"line":47,"column":41},"end":{"line":47,"column":52}},"1":{"start":{"line":49,"column":2},"end":{"line":51,"column":3}},"2":{"start":{"line":50,"column":4},"end":{"line":50,"column":46}},"3":{"start":{"line":53,"column":2},"end":{"line":53,"column":42}}},"fnMap":{"0":{"name":"BookPage","decl":{"start":{"line":46,"column":24},"end":{"line":46,"column":32}},"loc":{"start":{"line":46,"column":35},"end":{"line":54,"column":1}},"line":46}},"branchMap":{"0":{"loc":{"start":{"line":47,"column":10},"end":{"line":47,"column":36}},"type":"default-arg","locations":[{"start":{"line":47,"column":17},"end":{"line":47,"column":36}}],"line":47},"1":{"loc":{"start":{"line":49,"column":2},"end":{"line":51,"column":3}},"type":"if","locations":[{"start":{"line":49,"column":2},"end":{"line":51,"column":3}},{"start":{},"end":{}}],"line":49}},"s":{"0":0,"1":0,"2":0,"3":0},"f":{"0":0},"b":{"0":[0],"1":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/BookQueryPage.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/BookQueryPage.js","statementMap":{"0":{"start":{"line":5,"column":32},"end":{"line":7,"column":3}},"1":{"start":{"line":8,"column":2},"end":{"line":8,"column":54}}},"fnMap":{"0":{"name":"BookQueryPage","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":37}},"loc":{"start":{"line":3,"column":40},"end":{"line":9,"column":1}},"line":3}},"branchMap":{},"s":{"0":0,"1":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/BookStatePage.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/BookStatePage.js","statementMap":{"0":{"start":{"line":5,"column":48},"end":{"line":5,"column":61}},"1":{"start":{"line":7,"column":2},"end":{"line":11,"column":4}}},"fnMap":{"0":{"name":"BookStatePage","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":37}},"loc":{"start":{"line":3,"column":40},"end":{"line":12,"column":1}},"line":3}},"branchMap":{"0":{"loc":{"start":{"line":5,"column":17},"end":{"line":5,"column":43}},"type":"default-arg","locations":[{"start":{"line":5,"column":24},"end":{"line":5,"column":43}}],"line":5}},"s":{"0":0,"1":0},"f":{"0":0},"b":{"0":[0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/CommonErrorPage.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/CommonErrorPage.js","statementMap":{"0":{"start":{"line":5,"column":16},"end":{"line":5,"column":31}},"1":{"start":{"line":7,"column":2},"end":{"line":19,"column":3}},"2":{"start":{"line":9,"column":4},"end":{"line":18,"column":5}},"3":{"start":{"line":11,"column":8},"end":{"line":11,"column":42}},"4":{"start":{"line":13,"column":8},"end":{"line":13,"column":34}},"5":{"start":{"line":15,"column":8},"end":{"line":15,"column":42}},"6":{"start":{"line":17,"column":8},"end":{"line":17,"column":54}},"7":{"start":{"line":21,"column":2},"end":{"line":26,"column":4}}},"fnMap":{"0":{"name":"CommonErrorPage","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":39}},"loc":{"start":{"line":3,"column":42},"end":{"line":27,"column":1}},"line":3}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":2},"end":{"line":19,"column":3}},"type":"if","locations":[{"start":{"line":7,"column":2},"end":{"line":19,"column":3}},{"start":{},"end":{}}],"line":7},"1":{"loc":{"start":{"line":9,"column":4},"end":{"line":18,"column":5}},"type":"switch","locations":[{"start":{"line":10,"column":6},"end":{"line":11,"column":42}},{"start":{"line":12,"column":6},"end":{"line":13,"column":34}},{"start":{"line":14,"column":6},"end":{"line":15,"column":42}},{"start":{"line":16,"column":6},"end":{"line":17,"column":54}}],"line":9}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0},"f":{"0":0},"b":{"0":[0,0],"1":[0,0,0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/FirstPage.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/FirstPage.js","statementMap":{"0":{"start":{"line":19,"column":2},"end":{"line":26,"column":4}}},"fnMap":{"0":{"name":"FirstPage","decl":{"start":{"line":18,"column":24},"end":{"line":18,"column":33}},"loc":{"start":{"line":18,"column":36},"end":{"line":27,"column":1}},"line":18}},"branchMap":{},"s":{"0":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/InfoPage.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/InfoPage.js","statementMap":{"0":{"start":{"line":4,"column":2},"end":{"line":11,"column":4}}},"fnMap":{"0":{"name":"InfoPage","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":32}},"loc":{"start":{"line":3,"column":35},"end":{"line":12,"column":1}},"line":3}},"branchMap":{},"s":{"0":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/InvalidParamsPage.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/InvalidParamsPage.js","statementMap":{"0":{"start":{"line":5,"column":16},"end":{"line":5,"column":31}},"1":{"start":{"line":6,"column":2},"end":{"line":8,"column":4}}},"fnMap":{"0":{"name":"InvalidParamsPage","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":41}},"loc":{"start":{"line":3,"column":44},"end":{"line":9,"column":1}},"line":3}},"branchMap":{},"s":{"0":0,"1":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/MyHeader.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/MyHeader.js","statementMap":{"0":{"start":{"line":9,"column":6},"end":{"line":9,"column":38}},"1":{"start":{"line":11,"column":2},"end":{"line":11,"column":43}},"2":{"start":{"line":12,"column":2},"end":{"line":12,"column":52}},"3":{"start":{"line":13,"column":2},"end":{"line":13,"column":61}},"4":{"start":{"line":14,"column":2},"end":{"line":21,"column":4}}},"fnMap":{"0":{"name":"MyHeader","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":32}},"loc":{"start":{"line":4,"column":40},"end":{"line":22,"column":1}},"line":4}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":4},"end":{"line":6,"column":20}},"type":"default-arg","locations":[{"start":{"line":6,"column":12},"end":{"line":6,"column":20}}],"line":6},"1":{"loc":{"start":{"line":7,"column":4},"end":{"line":7,"column":35}},"type":"default-arg","locations":[{"start":{"line":7,"column":15},"end":{"line":7,"column":35}}],"line":7},"2":{"loc":{"start":{"line":8,"column":4},"end":{"line":8,"column":34}},"type":"default-arg","locations":[{"start":{"line":8,"column":18},"end":{"line":8,"column":34}}],"line":8},"3":{"loc":{"start":{"line":9,"column":6},"end":{"line":9,"column":38}},"type":"binary-expr","locations":[{"start":{"line":9,"column":6},"end":{"line":9,"column":32}},{"start":{"line":9,"column":36},"end":{"line":9,"column":38}}],"line":9}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0},"f":{"0":0},"b":{"0":[0],"1":[0],"2":[0],"3":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/MyLink.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/MyLink.js","statementMap":{"0":{"start":{"line":6,"column":23},"end":{"line":6,"column":42}},"1":{"start":{"line":7,"column":18},"end":{"line":8,"column":45}},"2":{"start":{"line":10,"column":2},"end":{"line":12,"column":47}}},"fnMap":{"0":{"name":"MyLink","decl":{"start":{"line":4,"column":16},"end":{"line":4,"column":22}},"loc":{"start":{"line":4,"column":51},"end":{"line":13,"column":1}},"line":4}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":9},"end":{"line":12,"column":46}},"type":"cond-expr","locations":[{"start":{"line":11,"column":4},"end":{"line":11,"column":46}},{"start":{"line":12,"column":4},"end":{"line":12,"column":46}}],"line":10}},"s":{"0":0,"1":0,"2":0},"f":{"0":0},"b":{"0":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/NotFoundPage.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/NotFoundPage.js","statementMap":{"0":{"start":{"line":4,"column":25},"end":{"line":4,"column":36}},"1":{"start":{"line":5,"column":2},"end":{"line":5,"column":43}}},"fnMap":{"0":{"name":"NotFoundPage","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":36}},"loc":{"start":{"line":3,"column":39},"end":{"line":6,"column":1}},"line":3}},"branchMap":{},"s":{"0":0,"1":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/RouterApp.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/RouterApp.js","statementMap":{"0":{"start":{"line":4,"column":2},"end":{"line":16,"column":4}}},"fnMap":{"0":{"name":"RouterApp","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":33}},"loc":{"start":{"line":3,"column":36},"end":{"line":17,"column":1}},"line":3}},"branchMap":{},"s":{"0":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/RouterCustom.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/RouterCustom.js","statementMap":{"0":{"start":{"line":5,"column":2},"end":{"line":16,"column":4}}},"fnMap":{"0":{"name":"RouterCustom","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":36}},"loc":{"start":{"line":4,"column":39},"end":{"line":17,"column":1}},"line":4}},"branchMap":{},"s":{"0":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/RouterNav.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/RouterNav.js","statementMap":{"0":{"start":{"line":5,"column":2},"end":{"line":15,"column":4}}},"fnMap":{"0":{"name":"RouterNav","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":33}},"loc":{"start":{"line":4,"column":36},"end":{"line":16,"column":1}},"line":4}},"branchMap":{},"s":{"0":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/RouterParam.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/RouterParam.js","statementMap":{"0":{"start":{"line":382,"column":28},"end":{"line":382,"column":39}},"1":{"start":{"line":385,"column":21},"end":{"line":385,"column":36}},"2":{"start":{"line":387,"column":2},"end":{"line":410,"column":4}}},"fnMap":{"0":{"name":"RouterParam","decl":{"start":{"line":380,"column":24},"end":{"line":380,"column":35}},"loc":{"start":{"line":380,"column":38},"end":{"line":411,"column":1}},"line":380}},"branchMap":{},"s":{"0":0,"1":0,"2":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/RouterScroll.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/RouterScroll.js","statementMap":{"0":{"start":{"line":30,"column":2},"end":{"line":35,"column":4}},"1":{"start":{"line":32,"column":56},"end":{"line":32,"column":73}}},"fnMap":{"0":{"name":"RouterScroll","decl":{"start":{"line":29,"column":24},"end":{"line":29,"column":36}},"loc":{"start":{"line":29,"column":39},"end":{"line":36,"column":1}},"line":29},"1":{"name":"(anonymous_1)","decl":{"start":{"line":32,"column":33},"end":{"line":32,"column":34}},"loc":{"start":{"line":32,"column":56},"end":{"line":32,"column":73}},"line":32}},"branchMap":{},"s":{"0":0,"1":0},"f":{"0":0,"1":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/SearchPage.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/SearchPage.js","statementMap":{"0":{"start":{"line":4,"column":28},"end":{"line":4,"column":39}},"1":{"start":{"line":5,"column":2},"end":{"line":5,"column":40}}},"fnMap":{"0":{"name":"SearchPage","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":34}},"loc":{"start":{"line":3,"column":37},"end":{"line":6,"column":1}},"line":3}},"branchMap":{},"s":{"0":0,"1":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/SecondPage.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/SecondPage.js","statementMap":{"0":{"start":{"line":4,"column":2},"end":{"line":11,"column":4}}},"fnMap":{"0":{"name":"SecondPage","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":34}},"loc":{"start":{"line":3,"column":37},"end":{"line":12,"column":1}},"line":3}},"branchMap":{},"s":{"0":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/TopPage.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/TopPage.js","statementMap":{"0":{"start":{"line":51,"column":2},"end":{"line":51,"column":25}}},"fnMap":{"0":{"name":"TopPage","decl":{"start":{"line":50,"column":24},"end":{"line":50,"column":31}},"loc":{"start":{"line":50,"column":34},"end":{"line":52,"column":1}},"line":50}},"branchMap":{},"s":{"0":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/WeatherLazyPage.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/WeatherLazyPage.js","statementMap":{"0":{"start":{"line":4,"column":14},"end":{"line":4,"column":59}},"1":{"start":{"line":4,"column":20},"end":{"line":4,"column":59}},"2":{"start":{"line":4,"column":39},"end":{"line":4,"column":58}},"3":{"start":{"line":8,"column":2},"end":{"line":8,"column":20}},"4":{"start":{"line":9,"column":14},"end":{"line":9,"column":140}},"5":{"start":{"line":10,"column":2},"end":{"line":10,"column":29}},"6":{"start":{"line":10,"column":16},"end":{"line":10,"column":27}},"7":{"start":{"line":11,"column":2},"end":{"line":18,"column":3}},"8":{"start":{"line":13,"column":6},"end":{"line":13,"column":68}},"9":{"start":{"line":15,"column":6},"end":{"line":15,"column":71}},"10":{"start":{"line":17,"column":6},"end":{"line":17,"column":67}},"11":{"start":{"line":23,"column":16},"end":{"line":23,"column":31}},"12":{"start":{"line":24,"column":2},"end":{"line":30,"column":4}},"13":{"start":{"line":32,"column":0},"end":{"line":32,"column":42}},"14":{"start":{"line":36,"column":16},"end":{"line":36,"column":31}},"15":{"start":{"line":37,"column":2},"end":{"line":48,"column":3}},"16":{"start":{"line":38,"column":4},"end":{"line":47,"column":5}},"17":{"start":{"line":40,"column":8},"end":{"line":40,"column":42}},"18":{"start":{"line":42,"column":8},"end":{"line":42,"column":34}},"19":{"start":{"line":44,"column":8},"end":{"line":44,"column":42}},"20":{"start":{"line":46,"column":8},"end":{"line":46,"column":54}},"21":{"start":{"line":49,"column":2},"end":{"line":54,"column":4}},"22":{"start":{"line":56,"column":0},"end":{"line":56,"column":51}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":4,"column":14},"end":{"line":4,"column":15}},"loc":{"start":{"line":4,"column":20},"end":{"line":4,"column":59}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":32},"end":{"line":4,"column":33}},"loc":{"start":{"line":4,"column":39},"end":{"line":4,"column":58}},"line":4},"2":{"name":"loader","decl":{"start":{"line":7,"column":22},"end":{"line":7,"column":28}},"loc":{"start":{"line":7,"column":41},"end":{"line":19,"column":1}},"line":7},"3":{"name":"Component","decl":{"start":{"line":22,"column":16},"end":{"line":22,"column":25}},"loc":{"start":{"line":22,"column":28},"end":{"line":31,"column":1}},"line":22},"4":{"name":"ErrorBoundary","decl":{"start":{"line":35,"column":16},"end":{"line":35,"column":29}},"loc":{"start":{"line":35,"column":32},"end":{"line":55,"column":1}},"line":35}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":2},"end":{"line":10,"column":29}},"type":"if","locations":[{"start":{"line":10,"column":2},"end":{"line":10,"column":29}},{"start":{},"end":{}}],"line":10},"1":{"loc":{"start":{"line":11,"column":2},"end":{"line":18,"column":3}},"type":"switch","locations":[{"start":{"line":12,"column":4},"end":{"line":13,"column":68}},{"start":{"line":14,"column":4},"end":{"line":15,"column":71}},{"start":{"line":16,"column":4},"end":{"line":17,"column":67}}],"line":11},"2":{"loc":{"start":{"line":37,"column":2},"end":{"line":48,"column":3}},"type":"if","locations":[{"start":{"line":37,"column":2},"end":{"line":48,"column":3}},{"start":{},"end":{}}],"line":37},"3":{"loc":{"start":{"line":38,"column":4},"end":{"line":47,"column":5}},"type":"switch","locations":[{"start":{"line":39,"column":6},"end":{"line":40,"column":42}},{"start":{"line":41,"column":6},"end":{"line":42,"column":34}},{"start":{"line":43,"column":6},"end":{"line":44,"column":42}},{"start":{"line":45,"column":6},"end":{"line":46,"column":54}}],"line":38}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0},"b":{"0":[0,0],"1":[0,0,0],"2":[0,0],"3":[0,0,0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/WeatherPage.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/WeatherPage.js","statementMap":{"0":{"start":{"line":5,"column":16},"end":{"line":5,"column":31}},"1":{"start":{"line":6,"column":2},"end":{"line":12,"column":4}}},"fnMap":{"0":{"name":"WeatherPage","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":35}},"loc":{"start":{"line":3,"column":38},"end":{"line":13,"column":1}},"line":3}},"branchMap":{},"s":{"0":0,"1":0},"f":{"0":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/books.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/books.js","statementMap":{"0":{"start":{"line":1,"column":14},"end":{"line":58,"column":1}}},"fnMap":{},"branchMap":{},"s":{"0":0},"f":{},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/routesBasic.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/routesBasic.js","statementMap":{"0":{"start":{"line":9,"column":20},"end":{"line":13,"column":2}}},"fnMap":{},"branchMap":{},"s":{"0":0},"f":{},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/routesHandle.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/routesHandle.js","statementMap":{"0":{"start":{"line":7,"column":21},"end":{"line":22,"column":1}}},"fnMap":{},"branchMap":{},"s":{"0":0},"f":{},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/routesLink.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/routesLink.js","statementMap":{"0":{"start":{"line":7,"column":19},"end":{"line":17,"column":1}}},"fnMap":{},"branchMap":{},"s":{"0":0},"f":{},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/routesMyLink.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/routesMyLink.js","statementMap":{"0":{"start":{"line":7,"column":21},"end":{"line":15,"column":1}}},"fnMap":{},"branchMap":{},"s":{"0":0},"f":{},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/routesParam.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/routesParam.js","statementMap":{"0":{"start":{"line":680,"column":19},"end":{"line":703,"column":1}},"1":{"start":{"line":681,"column":15},"end":{"line":681,"column":39}},"2":{"start":{"line":683,"column":21},"end":{"line":687,"column":4}},"3":{"start":{"line":690,"column":2},"end":{"line":702,"column":3}},"4":{"start":{"line":691,"column":4},"end":{"line":697,"column":7}},"5":{"start":{"line":698,"column":4},"end":{"line":698,"column":22}},"6":{"start":{"line":699,"column":4},"end":{"line":699,"column":25}},"7":{"start":{"line":701,"column":4},"end":{"line":701,"column":20}},"8":{"start":{"line":705,"column":20},"end":{"line":731,"column":1}},"9":{"start":{"line":712,"column":33},"end":{"line":712,"column":59}},"10":{"start":{"line":713,"column":8},"end":{"line":713,"column":43}},"11":{"start":{"line":716,"column":38},"end":{"line":716,"column":64}},"12":{"start":{"line":717,"column":10},"end":{"line":717,"column":48}},"13":{"start":{"line":725,"column":20},"end":{"line":725,"column":47}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":680,"column":19},"end":{"line":680,"column":20}},"loc":{"start":{"line":680,"column":42},"end":{"line":703,"column":1}},"line":680},"1":{"name":"(anonymous_1)","decl":{"start":{"line":711,"column":33},"end":{"line":711,"column":34}},"loc":{"start":{"line":711,"column":44},"end":{"line":714,"column":7}},"line":711},"2":{"name":"(anonymous_2)","decl":{"start":{"line":715,"column":34},"end":{"line":715,"column":35}},"loc":{"start":{"line":715,"column":45},"end":{"line":718,"column":9}},"line":715},"3":{"name":"(anonymous_3)","decl":{"start":{"line":725,"column":14},"end":{"line":725,"column":15}},"loc":{"start":{"line":725,"column":20},"end":{"line":725,"column":47}},"line":725}},"branchMap":{"0":{"loc":{"start":{"line":693,"column":13},"end":{"line":693,"column":35}},"type":"binary-expr","locations":[{"start":{"line":693,"column":13},"end":{"line":693,"column":30}},{"start":{"line":693,"column":34},"end":{"line":693,"column":35}}],"line":693},"1":{"loc":{"start":{"line":694,"column":26},"end":{"line":694,"column":61}},"type":"binary-expr","locations":[{"start":{"line":694,"column":26},"end":{"line":694,"column":47}},{"start":{"line":694,"column":51},"end":{"line":694,"column":61}}],"line":694}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0},"f":{"0":0,"1":0,"2":0,"3":0},"b":{"0":[0,0],"1":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/routesScroll.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap08/routesScroll.js","statementMap":{"0":{"start":{"line":6,"column":21},"end":{"line":13,"column":1}}},"fnMap":{},"branchMap":{},"s":{"0":0},"f":{},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap09/MyUtil.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/chap09/MyUtil.js","statementMap":{"0":{"start":{"line":2,"column":2},"end":{"line":2,"column":27}}},"fnMap":{"0":{"name":"getTriangleArea","decl":{"start":{"line":1,"column":16},"end":{"line":1,"column":31}},"loc":{"start":{"line":1,"column":46},"end":{"line":3,"column":1}},"line":1}},"branchMap":{},"s":{"0":1},"f":{"0":1},"b":{},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"dfa8311ec2bd1bd45a3b3db2b5cda7e2a34cc994"} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/column/MyStore.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/column/MyStore.js","statementMap":{"0":{"start":{"line":4,"column":15},"end":{"line":10,"column":3}},"1":{"start":{"line":6,"column":6},"end":{"line":6,"column":51}},"2":{"start":{"line":7,"column":6},"end":{"line":7,"column":67}},"3":{"start":{"line":7,"column":19},"end":{"line":7,"column":66}},"4":{"start":{"line":9,"column":10},"end":{"line":9,"column":42}},"5":{"start":{"line":11,"column":2},"end":{"line":13,"column":4}}},"fnMap":{"0":{"name":"MyStore","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":31}},"loc":{"start":{"line":3,"column":34},"end":{"line":14,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":5,"column":4},"end":{"line":5,"column":5}},"loc":{"start":{"line":5,"column":16},"end":{"line":8,"column":5}},"line":5},"2":{"name":"(anonymous_2)","decl":{"start":{"line":7,"column":13},"end":{"line":7,"column":14}},"loc":{"start":{"line":7,"column":19},"end":{"line":7,"column":66}},"line":7},"3":{"name":"(anonymous_3)","decl":{"start":{"line":9,"column":4},"end":{"line":9,"column":5}},"loc":{"start":{"line":9,"column":10},"end":{"line":9,"column":42}},"line":9}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"f":{"0":0,"1":0,"2":0,"3":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/store/atom.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/store/atom.js","statementMap":{"0":{"start":{"line":3,"column":27},"end":{"line":6,"column":2}},"1":{"start":{"line":9,"column":24},"end":{"line":38,"column":2}},"2":{"start":{"line":40,"column":34},"end":{"line":47,"column":2}},"3":{"start":{"line":44,"column":17},"end":{"line":44,"column":30}},"4":{"start":{"line":45,"column":4},"end":{"line":45,"column":32}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":42,"column":7},"end":{"line":42,"column":8}},"loc":{"start":{"line":42,"column":20},"end":{"line":46,"column":3}},"line":42}},"branchMap":{"0":{"loc":{"start":{"line":45,"column":11},"end":{"line":45,"column":31}},"type":"binary-expr","locations":[{"start":{"line":45,"column":11},"end":{"line":45,"column":26}},{"start":{"line":45,"column":30},"end":{"line":45,"column":31}}],"line":45}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0},"f":{"0":0},"b":{"0":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/store/atomUp.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/store/atomUp.js","statementMap":{"0":{"start":{"line":4,"column":23},"end":{"line":7,"column":2}},"1":{"start":{"line":10,"column":24},"end":{"line":13,"column":2}},"2":{"start":{"line":16,"column":32},"end":{"line":45,"column":2}},"3":{"start":{"line":20,"column":16},"end":{"line":20,"column":28}},"4":{"start":{"line":21,"column":4},"end":{"line":21,"column":44}},"5":{"start":{"line":21,"column":25},"end":{"line":21,"column":42}},"6":{"start":{"line":25,"column":4},"end":{"line":43,"column":5}},"7":{"start":{"line":28,"column":7},"end":{"line":28,"column":42}},"8":{"start":{"line":29,"column":7},"end":{"line":29,"column":49}},"9":{"start":{"line":29,"column":27},"end":{"line":29,"column":47}},"10":{"start":{"line":30,"column":7},"end":{"line":30,"column":13}},"11":{"start":{"line":33,"column":8},"end":{"line":33,"column":63}},"12":{"start":{"line":33,"column":35},"end":{"line":33,"column":60}},"13":{"start":{"line":34,"column":8},"end":{"line":34,"column":14}},"14":{"start":{"line":38,"column":8},"end":{"line":38,"column":28}},"15":{"start":{"line":39,"column":8},"end":{"line":39,"column":55}},"16":{"start":{"line":39,"column":28},"end":{"line":39,"column":53}},"17":{"start":{"line":39,"column":44},"end":{"line":39,"column":52}},"18":{"start":{"line":40,"column":8},"end":{"line":40,"column":14}},"19":{"start":{"line":42,"column":8},"end":{"line":42,"column":44}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":19,"column":7},"end":{"line":19,"column":8}},"loc":{"start":{"line":19,"column":20},"end":{"line":22,"column":3}},"line":19},"1":{"name":"(anonymous_1)","decl":{"start":{"line":21,"column":19},"end":{"line":21,"column":20}},"loc":{"start":{"line":21,"column":25},"end":{"line":21,"column":42}},"line":21},"2":{"name":"(anonymous_2)","decl":{"start":{"line":24,"column":7},"end":{"line":24,"column":8}},"loc":{"start":{"line":24,"column":50},"end":{"line":44,"column":3}},"line":24},"3":{"name":"(anonymous_3)","decl":{"start":{"line":29,"column":20},"end":{"line":29,"column":21}},"loc":{"start":{"line":29,"column":27},"end":{"line":29,"column":47}},"line":29},"4":{"name":"(anonymous_4)","decl":{"start":{"line":33,"column":26},"end":{"line":33,"column":27}},"loc":{"start":{"line":33,"column":35},"end":{"line":33,"column":60}},"line":33},"5":{"name":"(anonymous_5)","decl":{"start":{"line":39,"column":21},"end":{"line":39,"column":22}},"loc":{"start":{"line":39,"column":28},"end":{"line":39,"column":53}},"line":39},"6":{"name":"(anonymous_6)","decl":{"start":{"line":39,"column":39},"end":{"line":39,"column":40}},"loc":{"start":{"line":39,"column":44},"end":{"line":39,"column":52}},"line":39}},"branchMap":{"0":{"loc":{"start":{"line":25,"column":4},"end":{"line":43,"column":5}},"type":"switch","locations":[{"start":{"line":27,"column":6},"end":{"line":30,"column":13}},{"start":{"line":32,"column":6},"end":{"line":34,"column":14}},{"start":{"line":37,"column":6},"end":{"line":40,"column":14}},{"start":{"line":41,"column":6},"end":{"line":42,"column":44}}],"line":25}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0},"f":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0},"b":{"0":[0,0,0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/stories/Button.jsx": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/stories/Button.jsx","statementMap":{"0":{"start":{"line":8,"column":22},"end":{"line":20,"column":1}},"1":{"start":{"line":9,"column":15},"end":{"line":9,"column":84}},"2":{"start":{"line":10,"column":2},"end":{"line":19,"column":4}},"3":{"start":{"line":22,"column":0},"end":{"line":43,"column":2}},"4":{"start":{"line":45,"column":0},"end":{"line":50,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":8,"column":22},"end":{"line":8,"column":23}},"loc":{"start":{"line":8,"column":79},"end":{"line":20,"column":1}},"line":8}},"branchMap":{"0":{"loc":{"start":{"line":9,"column":15},"end":{"line":9,"column":84}},"type":"cond-expr","locations":[{"start":{"line":9,"column":25},"end":{"line":9,"column":52}},{"start":{"line":9,"column":55},"end":{"line":9,"column":84}}],"line":9},"1":{"loc":{"start":{"line":14,"column":13},"end":{"line":14,"column":51}},"type":"binary-expr","locations":[{"start":{"line":14,"column":13},"end":{"line":14,"column":28}},{"start":{"line":14,"column":32},"end":{"line":14,"column":51}}],"line":14}},"s":{"0":0,"1":0,"2":0,"3":0,"4":0},"f":{"0":0},"b":{"0":[0,0],"1":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/stories/Button.stories.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/stories/Button.stories.js","statementMap":{"0":{"start":{"line":23,"column":23},"end":{"line":28,"column":1}},"1":{"start":{"line":30,"column":25},"end":{"line":34,"column":1}},"2":{"start":{"line":36,"column":21},"end":{"line":41,"column":1}},"3":{"start":{"line":43,"column":21},"end":{"line":48,"column":1}}},"fnMap":{},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0},"f":{},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/stories/Header.jsx": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/stories/Header.jsx","statementMap":{"0":{"start":{"line":7,"column":22},"end":{"line":46,"column":1}},"1":{"start":{"line":8,"column":2},"end":{"line":45,"column":11}},"2":{"start":{"line":48,"column":0},"end":{"line":55,"column":2}},"3":{"start":{"line":57,"column":0},"end":{"line":59,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":22},"end":{"line":7,"column":23}},"loc":{"start":{"line":8,"column":2},"end":{"line":45,"column":11}},"line":8}},"branchMap":{"0":{"loc":{"start":{"line":30,"column":9},"end":{"line":42,"column":9}},"type":"cond-expr","locations":[{"start":{"line":31,"column":10},"end":{"line":36,"column":13}},{"start":{"line":38,"column":10},"end":{"line":41,"column":13}}],"line":30}},"s":{"0":0,"1":0,"2":0,"3":0},"f":{"0":0},"b":{"0":[0,0]}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/stories/Header.stories.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/stories/Header.stories.js","statementMap":{"0":{"start":{"line":20,"column":24},"end":{"line":26,"column":1}},"1":{"start":{"line":28,"column":25},"end":{"line":28,"column":27}}},"fnMap":{},"branchMap":{},"s":{"0":0,"1":0},"f":{},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/stories/Page.jsx": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/stories/Page.jsx","statementMap":{"0":{"start":{"line":6,"column":20},"end":{"line":69,"column":1}},"1":{"start":{"line":7,"column":26},"end":{"line":7,"column":42}},"2":{"start":{"line":9,"column":2},"end":{"line":68,"column":4}},"3":{"start":{"line":13,"column":23},"end":{"line":13,"column":52}},"4":{"start":{"line":14,"column":24},"end":{"line":14,"column":42}},"5":{"start":{"line":15,"column":31},"end":{"line":15,"column":60}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":20},"end":{"line":6,"column":21}},"loc":{"start":{"line":6,"column":26},"end":{"line":69,"column":1}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":13,"column":17},"end":{"line":13,"column":18}},"loc":{"start":{"line":13,"column":23},"end":{"line":13,"column":52}},"line":13},"2":{"name":"(anonymous_2)","decl":{"start":{"line":14,"column":18},"end":{"line":14,"column":19}},"loc":{"start":{"line":14,"column":24},"end":{"line":14,"column":42}},"line":14},"3":{"name":"(anonymous_3)","decl":{"start":{"line":15,"column":25},"end":{"line":15,"column":26}},"loc":{"start":{"line":15,"column":31},"end":{"line":15,"column":60}},"line":15}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0},"f":{"0":0,"1":0,"2":0,"3":0},"b":{}} +,"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/stories/Page.stories.js": {"path":"/Users/gaheeyoon/Dropbox/YOONGAHEE/위키북스/99_리액트 입문/07_예제/samples_ko/data/my-react/src/stories/Page.stories.js","statementMap":{"0":{"start":{"line":14,"column":25},"end":{"line":14,"column":27}},"1":{"start":{"line":17,"column":24},"end":{"line":28,"column":1}},"2":{"start":{"line":19,"column":19},"end":{"line":19,"column":40}},"3":{"start":{"line":20,"column":24},"end":{"line":20,"column":71}},"4":{"start":{"line":21,"column":4},"end":{"line":21,"column":50}},"5":{"start":{"line":22,"column":4},"end":{"line":22,"column":39}},"6":{"start":{"line":23,"column":4},"end":{"line":23,"column":54}},"7":{"start":{"line":25,"column":25},"end":{"line":25,"column":73}},"8":{"start":{"line":26,"column":4},"end":{"line":26,"column":51}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":18,"column":8},"end":{"line":18,"column":9}},"loc":{"start":{"line":18,"column":37},"end":{"line":27,"column":3}},"line":18}},"branchMap":{},"s":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0},"f":{"0":0},"b":{}} +} diff --git a/modern-react/my-react/coverage/lcov-report/base.css b/modern-react/my-react/coverage/lcov-report/base.css new file mode 100644 index 0000000..f418035 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/base.css @@ -0,0 +1,224 @@ +body, html { + margin:0; padding: 0; + height: 100%; +} +body { + font-family: Helvetica Neue, Helvetica, Arial; + font-size: 14px; + color:#333; +} +.small { font-size: 12px; } +*, *:after, *:before { + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; + } +h1 { font-size: 20px; margin: 0;} +h2 { font-size: 14px; } +pre { + font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; + margin: 0; + padding: 0; + -moz-tab-size: 2; + -o-tab-size: 2; + tab-size: 2; +} +a { color:#0074D9; text-decoration:none; } +a:hover { text-decoration:underline; } +.strong { font-weight: bold; } +.space-top1 { padding: 10px 0 0 0; } +.pad2y { padding: 20px 0; } +.pad1y { padding: 10px 0; } +.pad2x { padding: 0 20px; } +.pad2 { padding: 20px; } +.pad1 { padding: 10px; } +.space-left2 { padding-left:55px; } +.space-right2 { padding-right:20px; } +.center { text-align:center; } +.clearfix { display:block; } +.clearfix:after { + content:''; + display:block; + height:0; + clear:both; + visibility:hidden; + } +.fl { float: left; } +@media only screen and (max-width:640px) { + .col3 { width:100%; max-width:100%; } + .hide-mobile { display:none!important; } +} + +.quiet { + color: #7f7f7f; + color: rgba(0,0,0,0.5); +} +.quiet a { opacity: 0.7; } + +.fraction { + font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; + font-size: 10px; + color: #555; + background: #E8E8E8; + padding: 4px 5px; + border-radius: 3px; + vertical-align: middle; +} + +div.path a:link, div.path a:visited { color: #333; } +table.coverage { + border-collapse: collapse; + margin: 10px 0 0 0; + padding: 0; +} + +table.coverage td { + margin: 0; + padding: 0; + vertical-align: top; +} +table.coverage td.line-count { + text-align: right; + padding: 0 5px 0 20px; +} +table.coverage td.line-coverage { + text-align: right; + padding-right: 10px; + min-width:20px; +} + +table.coverage td span.cline-any { + display: inline-block; + padding: 0 5px; + width: 100%; +} +.missing-if-branch { + display: inline-block; + margin-right: 5px; + border-radius: 3px; + position: relative; + padding: 0 4px; + background: #333; + color: yellow; +} + +.skip-if-branch { + display: none; + margin-right: 10px; + position: relative; + padding: 0 4px; + background: #ccc; + color: white; +} +.missing-if-branch .typ, .skip-if-branch .typ { + color: inherit !important; +} +.coverage-summary { + border-collapse: collapse; + width: 100%; +} +.coverage-summary tr { border-bottom: 1px solid #bbb; } +.keyline-all { border: 1px solid #ddd; } +.coverage-summary td, .coverage-summary th { padding: 10px; } +.coverage-summary tbody { border: 1px solid #bbb; } +.coverage-summary td { border-right: 1px solid #bbb; } +.coverage-summary td:last-child { border-right: none; } +.coverage-summary th { + text-align: left; + font-weight: normal; + white-space: nowrap; +} +.coverage-summary th.file { border-right: none !important; } +.coverage-summary th.pct { } +.coverage-summary th.pic, +.coverage-summary th.abs, +.coverage-summary td.pct, +.coverage-summary td.abs { text-align: right; } +.coverage-summary td.file { white-space: nowrap; } +.coverage-summary td.pic { min-width: 120px !important; } +.coverage-summary tfoot td { } + +.coverage-summary .sorter { + height: 10px; + width: 7px; + display: inline-block; + margin-left: 0.5em; + background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; +} +.coverage-summary .sorted .sorter { + background-position: 0 -20px; +} +.coverage-summary .sorted-desc .sorter { + background-position: 0 -10px; +} +.status-line { height: 10px; } +/* yellow */ +.cbranch-no { background: yellow !important; color: #111; } +/* dark red */ +.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } +.low .chart { border:1px solid #C21F39 } +.highlighted, +.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ + background: #C21F39 !important; +} +/* medium red */ +.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } +/* light red */ +.low, .cline-no { background:#FCE1E5 } +/* light green */ +.high, .cline-yes { background:rgb(230,245,208) } +/* medium green */ +.cstat-yes { background:rgb(161,215,106) } +/* dark green */ +.status-line.high, .high .cover-fill { background:rgb(77,146,33) } +.high .chart { border:1px solid rgb(77,146,33) } +/* dark yellow (gold) */ +.status-line.medium, .medium .cover-fill { background: #f9cd0b; } +.medium .chart { border:1px solid #f9cd0b; } +/* light yellow */ +.medium { background: #fff4c2; } + +.cstat-skip { background: #ddd; color: #111; } +.fstat-skip { background: #ddd; color: #111 !important; } +.cbranch-skip { background: #ddd !important; color: #111; } + +span.cline-neutral { background: #eaeaea; } + +.coverage-summary td.empty { + opacity: .5; + padding-top: 4px; + padding-bottom: 4px; + line-height: 1; + color: #888; +} + +.cover-fill, .cover-empty { + display:inline-block; + height: 12px; +} +.chart { + line-height: 0; +} +.cover-empty { + background: white; +} +.cover-full { + border-right: none !important; +} +pre.prettyprint { + border: none !important; + padding: 0 !important; + margin: 0 !important; +} +.com { color: #999 !important; } +.ignore-none { color: #999; font-weight: normal; } + +.wrapper { + min-height: 100%; + height: auto !important; + height: 100%; + margin: 0 auto -48px; +} +.footer, .push { + height: 48px; +} diff --git a/modern-react/my-react/coverage/lcov-report/block-navigation.js b/modern-react/my-react/coverage/lcov-report/block-navigation.js new file mode 100644 index 0000000..cc12130 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/block-navigation.js @@ -0,0 +1,87 @@ +/* eslint-disable */ +var jumpToCode = (function init() { + // Classes of code we would like to highlight in the file view + var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; + + // Elements to highlight in the file listing view + var fileListingElements = ['td.pct.low']; + + // We don't want to select elements that are direct descendants of another match + var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` + + // Selecter that finds elements on the page to which we can jump + var selector = + fileListingElements.join(', ') + + ', ' + + notSelector + + missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` + + // The NodeList of matching elements + var missingCoverageElements = document.querySelectorAll(selector); + + var currentIndex; + + function toggleClass(index) { + missingCoverageElements + .item(currentIndex) + .classList.remove('highlighted'); + missingCoverageElements.item(index).classList.add('highlighted'); + } + + function makeCurrent(index) { + toggleClass(index); + currentIndex = index; + missingCoverageElements.item(index).scrollIntoView({ + behavior: 'smooth', + block: 'center', + inline: 'center' + }); + } + + function goToPrevious() { + var nextIndex = 0; + if (typeof currentIndex !== 'number' || currentIndex === 0) { + nextIndex = missingCoverageElements.length - 1; + } else if (missingCoverageElements.length > 1) { + nextIndex = currentIndex - 1; + } + + makeCurrent(nextIndex); + } + + function goToNext() { + var nextIndex = 0; + + if ( + typeof currentIndex === 'number' && + currentIndex < missingCoverageElements.length - 1 + ) { + nextIndex = currentIndex + 1; + } + + makeCurrent(nextIndex); + } + + return function jump(event) { + if ( + document.getElementById('fileSearch') === document.activeElement && + document.activeElement != null + ) { + // if we're currently focused on the search input, we don't want to navigate + return; + } + + switch (event.which) { + case 78: // n + case 74: // j + goToNext(); + break; + case 66: // b + case 75: // k + case 80: // p + goToPrevious(); + break; + } + }; +})(); +window.addEventListener('keydown', jumpToCode); diff --git a/modern-react/my-react/coverage/lcov-report/favicon.png b/modern-react/my-react/coverage/lcov-report/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..c1525b811a167671e9de1fa78aab9f5c0b61cef7 GIT binary patch literal 445 zcmV;u0Yd(XP))rP{nL}Ln%S7`m{0DjX9TLF* zFCb$4Oi7vyLOydb!7n&^ItCzb-%BoB`=x@N2jll2Nj`kauio%aw_@fe&*}LqlFT43 z8doAAe))z_%=P%v^@JHp3Hjhj^6*Kr_h|g_Gr?ZAa&y>wxHE99Gk>A)2MplWz2xdG zy8VD2J|Uf#EAw*bo5O*PO_}X2Tob{%bUoO2G~T`@%S6qPyc}VkhV}UifBuRk>%5v( z)x7B{I~z*k<7dv#5tC+m{km(D087J4O%+<<;K|qwefb6@GSX45wCK}Sn*> + + + + Code coverage report for All files + + + + + + + + + +
+
+

All files

+
+ +
+ 3.12% + Statements + 27/865 +
+ + +
+ 1.31% + Branches + 2/152 +
+ + +
+ 3.61% + Functions + 14/387 +
+ + +
+ 3.1% + Lines + 24/772 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
src +
+
5.88%1/170%0/425%1/45.88%1/17
src/chap03 +
+
2.23%3/1340%0/173.12%2/642.63%3/114
src/chap04 +
+
0%0/1480%0/100%0/720%0/142
src/chap05 +
+
0%0/1000%0/120%0/570%0/83
src/chap06 +
+
17.5%14/803.84%1/2616.12%5/3117.91%12/67
src/chap07 +
+
3.58%8/2232.63%1/384.95%5/1013.55%7/197
src/chap08 +
+
0%0/1010%0/330%0/380%0/96
src/chap09 +
+
100%1/1100%0/0100%1/1100%1/1
src/column +
+
0%0/6100%0/00%0/40%0/5
src/store +
+
0%0/250%0/60%0/80%0/20
src/stories +
+
0%0/300%0/60%0/70%0/30
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/prettify.css b/modern-react/my-react/coverage/lcov-report/prettify.css new file mode 100644 index 0000000..b317a7c --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/modern-react/my-react/coverage/lcov-report/prettify.js b/modern-react/my-react/coverage/lcov-report/prettify.js new file mode 100644 index 0000000..b322523 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/prettify.js @@ -0,0 +1,2 @@ +/* eslint-disable */ +window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/modern-react/my-react/coverage/lcov-report/sort-arrow-sprite.png b/modern-react/my-react/coverage/lcov-report/sort-arrow-sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..6ed68316eb3f65dec9063332d2f69bf3093bbfab GIT binary patch literal 138 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qh}Z>jv*C{$p!i!8j}?a+@3A= zIAGwzjijN=FBi!|L1t?LM;Q;gkwn>2cAy-KV{dn nf0J1DIvEHQu*n~6U}x}qyky7vi4|9XhBJ7&`njxgN@xNA8m%nc literal 0 HcmV?d00001 diff --git a/modern-react/my-react/coverage/lcov-report/sorter.js b/modern-react/my-react/coverage/lcov-report/sorter.js new file mode 100644 index 0000000..2bb296a --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/sorter.js @@ -0,0 +1,196 @@ +/* eslint-disable */ +var addSorting = (function() { + 'use strict'; + var cols, + currentSort = { + index: 0, + desc: false + }; + + // returns the summary table element + function getTable() { + return document.querySelector('.coverage-summary'); + } + // returns the thead element of the summary table + function getTableHeader() { + return getTable().querySelector('thead tr'); + } + // returns the tbody element of the summary table + function getTableBody() { + return getTable().querySelector('tbody'); + } + // returns the th element for nth column + function getNthColumn(n) { + return getTableHeader().querySelectorAll('th')[n]; + } + + function onFilterInput() { + const searchValue = document.getElementById('fileSearch').value; + const rows = document.getElementsByTagName('tbody')[0].children; + for (let i = 0; i < rows.length; i++) { + const row = rows[i]; + if ( + row.textContent + .toLowerCase() + .includes(searchValue.toLowerCase()) + ) { + row.style.display = ''; + } else { + row.style.display = 'none'; + } + } + } + + // loads the search box + function addSearchBox() { + var template = document.getElementById('filterTemplate'); + var templateClone = template.content.cloneNode(true); + templateClone.getElementById('fileSearch').oninput = onFilterInput; + template.parentElement.appendChild(templateClone); + } + + // loads all columns + function loadColumns() { + var colNodes = getTableHeader().querySelectorAll('th'), + colNode, + cols = [], + col, + i; + + for (i = 0; i < colNodes.length; i += 1) { + colNode = colNodes[i]; + col = { + key: colNode.getAttribute('data-col'), + sortable: !colNode.getAttribute('data-nosort'), + type: colNode.getAttribute('data-type') || 'string' + }; + cols.push(col); + if (col.sortable) { + col.defaultDescSort = col.type === 'number'; + colNode.innerHTML = + colNode.innerHTML + ''; + } + } + return cols; + } + // attaches a data attribute to every tr element with an object + // of data values keyed by column name + function loadRowData(tableRow) { + var tableCols = tableRow.querySelectorAll('td'), + colNode, + col, + data = {}, + i, + val; + for (i = 0; i < tableCols.length; i += 1) { + colNode = tableCols[i]; + col = cols[i]; + val = colNode.getAttribute('data-value'); + if (col.type === 'number') { + val = Number(val); + } + data[col.key] = val; + } + return data; + } + // loads all row data + function loadData() { + var rows = getTableBody().querySelectorAll('tr'), + i; + + for (i = 0; i < rows.length; i += 1) { + rows[i].data = loadRowData(rows[i]); + } + } + // sorts the table using the data for the ith column + function sortByIndex(index, desc) { + var key = cols[index].key, + sorter = function(a, b) { + a = a.data[key]; + b = b.data[key]; + return a < b ? -1 : a > b ? 1 : 0; + }, + finalSorter = sorter, + tableBody = document.querySelector('.coverage-summary tbody'), + rowNodes = tableBody.querySelectorAll('tr'), + rows = [], + i; + + if (desc) { + finalSorter = function(a, b) { + return -1 * sorter(a, b); + }; + } + + for (i = 0; i < rowNodes.length; i += 1) { + rows.push(rowNodes[i]); + tableBody.removeChild(rowNodes[i]); + } + + rows.sort(finalSorter); + + for (i = 0; i < rows.length; i += 1) { + tableBody.appendChild(rows[i]); + } + } + // removes sort indicators for current column being sorted + function removeSortIndicators() { + var col = getNthColumn(currentSort.index), + cls = col.className; + + cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); + col.className = cls; + } + // adds sort indicators for current column being sorted + function addSortIndicators() { + getNthColumn(currentSort.index).className += currentSort.desc + ? ' sorted-desc' + : ' sorted'; + } + // adds event listeners for all sorter widgets + function enableUI() { + var i, + el, + ithSorter = function ithSorter(i) { + var col = cols[i]; + + return function() { + var desc = col.defaultDescSort; + + if (currentSort.index === i) { + desc = !currentSort.desc; + } + sortByIndex(i, desc); + removeSortIndicators(); + currentSort.index = i; + currentSort.desc = desc; + addSortIndicators(); + }; + }; + for (i = 0; i < cols.length; i += 1) { + if (cols[i].sortable) { + // add the click event handler on the th so users + // dont have to click on those tiny arrows + el = getNthColumn(i).querySelector('.sorter').parentElement; + if (el.addEventListener) { + el.addEventListener('click', ithSorter(i)); + } else { + el.attachEvent('onclick', ithSorter(i)); + } + } + } + } + // adds sorting functionality to the UI + return function() { + if (!getTable()) { + return; + } + cols = loadColumns(); + loadData(); + addSearchBox(); + addSortIndicators(); + enableUI(); + }; +})(); + +window.addEventListener('load', addSorting); diff --git a/modern-react/my-react/coverage/lcov-report/src/App.js.html b/modern-react/my-react/coverage/lcov-report/src/App.js.html new file mode 100644 index 0000000..0ee081b --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/App.js.html @@ -0,0 +1,169 @@ + + + + + + Code coverage report for src/App.js + + + + + + + + + +
+
+

All files / src App.js

+
+ +
+ 100% + Statements + 1/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 1/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
// 로고/스타일시트 가져오기
+import logo from './logo.svg';
+import './App.css';
+ 
+// 앱 컴포넌트 정의
+function App() {
+  // 렌더링할 내용 생성
+  return (
+    <div className="App">
+      <header className="App-header">
+        <img src={logo} className="App-logo" alt="logo" />
+        <p>
+          Edit <code>src/App.js</code> and save to reload.
+        </p>
+        <a
+          className="App-link"
+          href="https://reactjs.org"
+          target="_blank"
+          rel="noopener noreferrer"
+        >
+          안녕, 리액트!!
+        </a>
+      </header>
+    </div>
+  );
+}
+ 
+// 앱 컴포넌트 내보내기
+export default App;
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/AppClass.js.html b/modern-react/my-react/coverage/lcov-report/src/AppClass.js.html new file mode 100644 index 0000000..bde3a5e --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/AppClass.js.html @@ -0,0 +1,175 @@ + + + + + + Code coverage report for src/AppClass.js + + + + + + + + + +
+
+

All files / src AppClass.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from 'react';
+import logo from './logo.svg';
+import './App.css';
+ 
+// AppClass 컴포넌트 정의
+class AppClass extends React.Component {
+  // 렌더링할 내용 정의하기
+  render() {
+    return (
+      <div className="App">
+      <header className="App-header">
+        <img src={logo} className="App-logo" alt="logo" />
+        <p>
+          Edit <code>src/App.js</code> and save to reload.
+        </p>
+        <a
+          className="App-link"
+          href="https://reactjs.org"
+          target="_blank"
+          rel="noopener noreferrer"
+        >
+          Learn React
+        </a>
+      </header>
+    </div>
+    );
+  }
+}
+ 
+// AppClass 컴포넌트 내보내기
+export default AppClass;
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/Download.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/Download.js.html new file mode 100644 index 0000000..5e8c810 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/Download.js.html @@ -0,0 +1,109 @@ + + + + + + Code coverage report for src/chap03/Download.js + + + + + + + + + +
+
+

All files / src/chap03 Download.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9  +  +  +  +  +  +  +  + 
import dl_icon from '../image/dl.png';
+ 
+export default function Download({ slug }) {
+  return (
+    <a href={`https://github.com/wikibook/${slug}/`}>
+      <img src={dl_icon} alt="Sample Download" />
+    </a>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/EventArgs.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/EventArgs.js.html new file mode 100644 index 0000000..caac766 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/EventArgs.js.html @@ -0,0 +1,157 @@ + + + + + + Code coverage report for src/chap03/EventArgs.js + + + + + + + + + +
+
+

All files / src/chap03 EventArgs.js

+
+ +
+ 0% + Statements + 0/13 +
+ + +
+ 0% + Branches + 0/3 +
+ + +
+ 0% + Functions + 0/5 +
+ + +
+ 0% + Lines + 0/13 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
export default function EventArgs() {
+  // 자체 인수를 추가한 이벤트 핸들러
+  const current = (e, type) => {
+    const d = new Date();
+    switch(type) {
+      case 'date':
+        console.log(`${e.target.id}: ${d.toLocaleDateString()}`);
+        break;
+      case 'time':
+        console.log(`${e.target.id}: ${d.toLocaleTimeString()}`);
+        break;
+      default:
+        console.log(`${e.target.id}: ${d.toLocaleString()}`);
+        break;
+    }
+  };
+  return (
+    <div>
+      {/* 화살표 함수를 통해 핸들러를 호출 */}
+      <button id="dt" onClick={e => current(e, 'datetime')}>현재 날짜 및 시각</button>
+      <button id="date" onClick={e => current(e, 'date')}>현재 날짜</button>
+      <button id="time" onClick={e => current(e, 'time')}>현재 시각</button>
+    </div>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/EventArgs2.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/EventArgs2.js.html new file mode 100644 index 0000000..70dd9ab --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/EventArgs2.js.html @@ -0,0 +1,157 @@ + + + + + + Code coverage report for src/chap03/EventArgs2.js + + + + + + + + + +
+
+

All files / src/chap03 EventArgs2.js

+
+ +
+ 0% + Statements + 0/11 +
+ + +
+ 0% + Branches + 0/3 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/11 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
export default function EventArgs2() {
+  const current = e => {
+    const type = e.target.dataset.type;
+    const d = new Date();
+    switch(type) {
+      case 'date':
+        console.log(`${e.target.id}: ${d.toLocaleDateString()}`);
+        break;
+      case 'time':
+        console.log(`${e.target.id}: ${d.toLocaleTimeString()}`);
+        break;
+      default:
+        console.log(`${e.target.id}: ${d.toLocaleString()}`);
+        break;
+    }
+  };
+  return (
+    <div>
+      {/* 출력할 날짜 및 시각 유형을 고유 데이터 속성으로 지정 */}
+      <button id="dt" data-type="datetime" onClick={current}>현재 날짜 및 시각</button>
+      <button id="date" data-type="date" onClick={current}>현재 날짜</button>
+      <button id="time" data-type="time" onClick={current}>현재 시각</button>
+    </div>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/EventBasic.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/EventBasic.js.html new file mode 100644 index 0000000..fa8ad8e --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/EventBasic.js.html @@ -0,0 +1,157 @@ + + + + + + Code coverage report for src/chap03/EventBasic.js + + + + + + + + + +
+
+

All files / src/chap03 EventBasic.js

+
+ +
+ 0% + Statements + 0/10 +
+ + +
+ 0% + Branches + 0/3 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/10 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
export default function EventBasic({ type }) {
+  // click 이벤트 핸들러
+  const current = () => {
+    const d = new Date();
+    // type 속성 값에 따라 현재 날짜 및 시각을 로그에 출력한다.
+    switch(type) {
+      case 'date':
+        console.log(d.toLocaleDateString());
+        break;
+      case 'time':
+        console.log(d.toLocaleTimeString());
+        break;
+      default:
+        console.log(d.toLocaleString());
+        break;
+    }
+  };
+ 
+  return (
+    <div>
+      {/* 버튼 클릭 시 current 함수 호출 */}
+      <button onClick={current}>현재 시각 가져오기</button>
+    </div>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/EventCompare.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/EventCompare.js.html new file mode 100644 index 0000000..6262135 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/EventCompare.js.html @@ -0,0 +1,151 @@ + + + + + + Code coverage report for src/chap03/EventCompare.js + + + + + + + + + +
+
+

All files / src/chap03 EventCompare.js

+
+ +
+ 0% + Statements + 0/8 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/5 +
+ + +
+ 0% + Lines + 0/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useState } from 'react';
+import './EventCompare.css';
+ 
+export default function EventCompare() {
+  const [result, setResult] = useState('');
+  // mouseenter/mouseleave 이벤트의 정보를 result에 반영
+  const handleIn = e => setResult(r => `${r}Enter:${e.target.id}<br />`);
+  const handleOut= e => setResult(r => `${r}Leave:${e.target.id}<br />`);
+  return (
+    <>
+      <div id="outer"
+        onMouseEnter={handleIn} onMouseLeave={handleOut}
+        // onMouseOver={handleIn} onMouseOut={handleOut}
+        >
+        외부(outer)
+        <p id="inner">
+        내부(inner)
+        </p>
+      </div>
+      <div dangerouslySetInnerHTML={{__html: result}}></div>
+    </>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/EventError.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/EventError.js.html new file mode 100644 index 0000000..e2256b5 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/EventError.js.html @@ -0,0 +1,112 @@ + + + + + + Code coverage report for src/chap03/EventError.js + + + + + + + + + +
+
+

All files / src/chap03 EventError.js

+
+ +
+ 0% + Statements + 0/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10  +  +  +  +  +  +  +  +  + 
import { useState } from 'react';
+ 
+export default function EventError({ src, alt }) {
+  const [path, setPath] = useState(src);
+  // 이미지를 불러올 수 없는 경우 오류 이미지 표시
+  const handleError = () => setPath('./image/noimage.jpg');
+  return (
+    <img src={path} alt={alt} onError={handleError} />
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/EventKey.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/EventKey.js.html new file mode 100644 index 0000000..366eeab --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/EventKey.js.html @@ -0,0 +1,133 @@ + + + + + + Code coverage report for src/chap03/EventKey.js + + + + + + + + + +
+
+

All files / src/chap03 EventKey.js

+
+ +
+ 0% + Statements + 0/4 +
+ + +
+ 0% + Branches + 0/4 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
export default function EventKey() {
+  // Ctrl + q로 도움말 메시지 표시
+  const handleKey = e => {
+    if (e.ctrlKey && e.key === 'q') {
+      alert('이름은 20자 이내로 입력해 주세요.');
+    }
+  };
+ 
+  return (
+    <form>
+      <label>
+        이름:
+        <input type="text" size="20" onKeyDown={handleKey} />
+      </label>
+    </form>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/EventMouse.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/EventMouse.js.html new file mode 100644 index 0000000..c939072 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/EventMouse.js.html @@ -0,0 +1,121 @@ + + + + + + Code coverage report for src/chap03/EventMouse.js + + + + + + + + + +
+
+

All files / src/chap03 EventMouse.js

+
+ +
+ 0% + Statements + 0/6 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13  +  +  +  +  +  +  +  +  +  +  +  + 
import { useState } from 'react';
+ 
+export default function EventMouse({ beforeSrc, afterSrc, alt }) {
+  // 현재 표시 중인 이미지
+  const [current, setCurrent] = useState(beforeSrc);
+  // mouseover/mouseleave 이벤트 핸들러를 준비한다.
+  const handleEnter = () => setCurrent(afterSrc);
+  const handleLeave = () => setCurrent(beforeSrc);
+  return (
+    <img src={current} alt={alt}
+      onMouseEnter={handleEnter} onMouseLeave={handleLeave} />
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/EventObj.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/EventObj.js.html new file mode 100644 index 0000000..3e92d78 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/EventObj.js.html @@ -0,0 +1,103 @@ + + + + + + Code coverage report for src/chap03/EventObj.js + + + + + + + + + +
+
+

All files / src/chap03 EventObj.js

+
+ +
+ 0% + Statements + 0/3 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7  +  +  +  +  +  + 
export default function EventObj() {
+  // 클릭 시 이벤트 오브젝트를 로그에 출력
+  const handleClick = e => console.log(e);
+  return (
+    <button onClick={handleClick}>클릭</button>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/EventOnce.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/EventOnce.js.html new file mode 100644 index 0000000..ac7fef7 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/EventOnce.js.html @@ -0,0 +1,151 @@ + + + + + + Code coverage report for src/chap03/EventOnce.js + + + + + + + + + +
+
+

All files / src/chap03 EventOnce.js

+
+ +
+ 0% + Statements + 0/7 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/7 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useState } from 'react';
+ 
+export default function EventOnce() {
+  // 클릭 여부를 관리하기 위한 플래그
+  const [clicked, setClicked] = useState(false);
+  // 오늘의 운세(점수)
+  const [result, setResult] = useState('-');
+  const handleClick = e => {
+    // 클릭하지 않은 경우에만 운세를 계산한다.
+    if (!clicked) {
+      setResult(Math.floor(Math.random() * 100 + 1));
+      // 플래그 반전
+      setClicked(true);
+    }
+  };
+  
+  return (
+    <>
+      <button onClick={handleClick}>결과 보기</button>
+      <p>오늘의 운세는 {result}점입니다.</p>
+    </>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/EventPassive.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/EventPassive.js.html new file mode 100644 index 0000000..de19040 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/EventPassive.js.html @@ -0,0 +1,220 @@ + + + + + + Code coverage report for src/chap03/EventPassive.js + + + + + + + + + +
+
+

All files / src/chap03 EventPassive.js

+
+ +
+ 0% + Statements + 0/9 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/8 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useRef, useEffect } from 'react';
+import './EventPassive.css';
+ 
+export default function EventPassive() {
+  const handleWheel = e => e.preventDefault();
+  const divRef = useRef(null);
+  useEffect(() => {
+    const div = divRef.current;
+    div.addEventListener('wheel', handleWheel, { passive: false });
+    return (() => {
+      div.removeEventListener('wheel', handleWheel);
+    });
+  });
+ 
+  return (
+    <div className="box"
+      onWheel={handleWheel}>예를 들어 Wheel 이벤트를 핸들러에서...
+    </div>
+  );
+}
+ 
+ 
+ 
+// export default function EventPassive() {
+//   const handleWheel = e => e.preventDefault();
+//   // <div> 요소에 대한 참조 가져오기
+//   const divRef = useRef(null);
+//   useEffect(() => {
+//     // 컴포넌트 시작 시 리스너 설정
+//     const div = divRef.current;
+//     div.addEventListener('wheel', handleWheel, { passive: false });
+//     return (() => {
+//       // 컴포넌트 폐기 시 리스너도 함께 폐기
+//       div.removeEventListener('wheel', handleWheel);
+//     });
+//   });
+ 
+//   return (
+//     <div ref={divRef} className="box"
+//       onWheel={handleWheel}
+//     >
+//       예를 들어 Wheel 이벤트를 핸들러에서...
+//     </div>
+//   );
+// }
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/EventPoint.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/EventPoint.js.html new file mode 100644 index 0000000..89c1002 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/EventPoint.js.html @@ -0,0 +1,160 @@ + + + + + + Code coverage report for src/chap03/EventPoint.js + + + + + + + + + +
+
+

All files / src/chap03 EventPoint.js

+
+ +
+ 0% + Statements + 0/10 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/10 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useState } from 'react';
+import './EventPoint.css';
+ 
+export default function EventPoint() {
+  const [screen, setScreen] = useState({ x: 0, y: 0 });
+  const [page, setPage]     = useState({ x: 0, y: 0 });
+  const [client, setClient] = useState({ x: 0, y: 0 });
+  const [offset, setOffset] = useState({ x: 0, y: 0 });
+ 
+  // 포인터 위치를 각각의 기준에 따라 표시
+  const handleMousemove = e => {
+    setScreen({ x: e.screenX, y: e.screenY });
+    setPage({ x: e.pageX, y: e.pageY });
+    setClient({ x: e.clientX, y: e.clientY });
+    setOffset({ x: e.nativeEvent.offsetX, y: e.nativeEvent.offsetY });
+  };
+ 
+  return (
+    <div id="main" onMouseMove={handleMousemove}>
+    screen: {screen.x}/{screen.y}<br />
+    page: {page.x}/{page.y}<br />
+    client: {client.x}/{client.y}<br />
+    offset: {offset.x}/{offset.y}
+    </div>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/EventPropagation.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/EventPropagation.js.html new file mode 100644 index 0000000..ced11d5 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/EventPropagation.js.html @@ -0,0 +1,349 @@ + + + + + + Code coverage report for src/chap03/EventPropagation.js + + + + + + + + + +
+
+

All files / src/chap03 EventPropagation.js

+
+ +
+ 0% + Statements + 0/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import './EventPropagation.css';
+ 
+export default function EventPropagation() {
+  const handleParent = () => alert('#parent run...');
+  const handleMy = () => alert('#my run...');
+  const handleChild = () => alert('#child run...');
+ 
+  return (
+  <div id="parent" onClick={handleParent}>
+    부모 요소
+    <div id="my" onClick={handleMy}>
+      현재 요소
+      <a id="child" href="https://wikibook.co.kr/" onClick={handleChild}>
+        자식 요소
+      </a>
+    </div>
+  </div>
+  );
+}
+ 
+ 
+ 
+// export default function EventPropagation() {
+//   const handleParent = () => alert('#parent run...');
+//   const handleMy = () => alert('#my run...');
+//   const handleChild = () => alert('#child run...');
+ 
+//   return (
+//   <div id="parent" onClickCapture={handleParent}>
+//     부모 요소
+//     <div id="my" onClickCapture={handleMy}>
+//       현재 요소
+//       <a id="child" href="https://wikibook.co.kr/" onClickCapture={handleChild}>
+//       자식 요소
+//       </a>
+//     </div>
+//   </div>
+//   );
+// }
+ 
+ 
+ 
+// export default function EventPropagation() {
+//   const handleParent = () => alert('#parent run...');
+//   const handleMy = () => alert('#my run...');
+//   const handleChild = e => {
+//     e.stopPropagation();
+//     alert('#child run...');
+//   };
+ 
+ 
+ 
+//   return (
+//   <div id="parent" onClickCapture={handleParent}>
+//     부모 요소
+//     <div id="my" onClickCapture={handleMy}>
+//       현재 요소
+//       <a id="child" href="https://wikibook.co.kr/" onClickCapture={handleChild}>
+//       자식 요소
+//       </a>
+//     </div>
+//   </div>
+//   );
+// }
+ 
+ 
+ 
+// export default function EventPropagation() {
+//   const handleParent = () => alert('#parent run...');
+//   const handleMy = () => alert('#my run...');
+//   const handleChild = e => {
+//     e.preventDefault();
+//     alert('#child run...');
+//   };
+ 
+ 
+//   return (
+//   <div id="parent" onClickCapture={handleParent}>
+//     부모 요소
+//     <div id="my" onClickCapture={handleMy}>
+//       현재 요소
+//       <a id="child" href="https://wikibook.co.kr/" onClickCapture={handleChild}>
+//       자식 요소
+//       </a>
+//     </div>
+//   </div>
+//   );
+// }
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/ForFilter.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/ForFilter.js.html new file mode 100644 index 0000000..2407f69 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/ForFilter.js.html @@ -0,0 +1,139 @@ + + + + + + Code coverage report for src/chap03/ForFilter.js + + + + + + + + + +
+
+

All files / src/chap03 ForFilter.js

+
+ +
+ 0% + Statements + 0/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from 'react';
+ 
+export default function ForFilter({ src }) {
+  const lowPrice = src.filter(book => book.price < 25000);
+  return (
+  <dl>
+    {lowPrice.map(elem => (
+      <React.Fragment key={elem.isbn}>
+        <dt>
+          <a href={`https://wikibook.co.kr/images/cover/s/${elem.isbn}.jpg`}>
+              {elem.title}({elem.price}원)
+          </a>
+        </dt>
+        <dd>{elem.summary}</dd>
+      </React.Fragment>
+    ))}
+  </dl>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/ForItem.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/ForItem.js.html new file mode 100644 index 0000000..35e35da --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/ForItem.js.html @@ -0,0 +1,334 @@ + + + + + + Code coverage report for src/chap03/ForItem.js + + + + + + + + + +
+
+

All files / src/chap03 ForItem.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import Download from './Download';
+ 
+export default function ForItem({ book }) {
+  return (
+    <>
+      <dt>
+        <a href={`https://wikibook.co.kr/images/cover/s/${book.isbn}.jpg`}>
+            {book.title}({book.price}원)
+        </a>
+      </dt>
+      <dd>{book.summary}</dd>
+    </>
+  );
+}
+ 
+ 
+ 
+// Code 3-2-13
+// if 문
+// export default function ForItem({ book }) {
+//   let dd;
+//   // download 속성의 유무에 따라 태그를 분기한다.
+//   if (book.download) {
+//     dd = <dd>{book.summary}<Download slug={book.slug} /></dd>;
+//   } else {
+//     dd = <dd>{book.summary}</dd>;
+//   }
+//   return (
+//   <>
+//     <dt>
+//     <a href={`https://wikibook.co.kr/images/cover/s/${book.isbn}.jpg`}>
+//       {book.title}({book.price}원)
+//     </a>
+//     </dt>
+//     {/* 생성해둔 태그 삽입 */}
+//     {dd}
+//   </>
+//   );
+// }
+ 
+ 
+ 
+// Code 3-2-14
+// 즉시 함수
+// export default function ForItem({ book }) {
+//   return (
+//   <>
+//     <dt>
+//     <a href={`https://wikibook.co.kr/images/cover/s/${book.isbn}.jpg`}>
+//       {book.title}({book.price}원)
+//     </a>
+//     </dt>
+//     {(() => {
+//       if (book.download) {
+//         return <dd>{book.summary}<Download slug={book.slug} /></dd>
+//       } else {
+//         return <dd>{book.summary}</dd>
+//       }
+//     })()}
+//   </>
+//   );
+// }
+ 
+ 
+ 
+// Code 3-2-15
+// ?:, && 연산자
+// export default function ForItem({ book }) {
+//   return (
+//   <>
+//     <dt>
+//     <a href={`https://wikibook.co.kr/images/cover/s/${book.isbn}.jpg`}>
+//       {book.title}({book.price}원)
+//     </a>
+//     </dt>
+//     <dd>
+//       {book.summary}
+//       {book.download ? <Download isbn={book.isbn} /> : null}
+//       {/* {book.download && <Download isbn={book.isbn} />} */}
+//       {/* {book.download || '×' } */}
+//     </dd>
+//   </>
+//   );
+// }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/ForList.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/ForList.js.html new file mode 100644 index 0000000..c9f04e6 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/ForList.js.html @@ -0,0 +1,208 @@ + + + + + + Code coverage report for src/chap03/ForList.js + + + + + + + + + +
+
+

All files / src/chap03 ForList.js

+
+ +
+ 0% + Statements + 0/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from 'react';
+ 
+// 도서 정보는 Props(src)를 통해 수신
+export default function ForList({ src }) {
+  return (
+  // 도서 정보(src 속성)를 <dt>/<dd> 목록으로 정형화
+  <dl>
+    {src.map(elem => (
+      <>
+        <dt>
+          <a href={`https://wikibook.co.kr/images/cover/s/${elem.isbn}.jpg`}>
+              {elem.title}({elem.price}원)
+          </a>
+        </dt>
+        <dd>{elem.summary}</dd>
+      </>
+    ))}
+ 
+    {/* {src.map(elem => (
+      <React.Fragment key={elem.isbn}>
+        <dt>
+          <a href={`https://wikibook.co.kr/images/cover/s/${elem.isbn}.jpg`}>
+              {elem.title}({elem.price}원)
+          </a>
+        </dt>
+        <dd>{elem.summary}</dd>
+      </React.Fragment>
+    ))} */}
+ 
+    {/* {src.map((elem, index) => (
+      <React.Fragment key={index}>
+        <dt>
+          <a href={`https://wikibook.co.kr/images/cover/s/${elem.isbn}.jpg`}>
+              {elem.title}({elem.price}원)
+          </a>
+        </dt>
+        <dd>{elem.summary}</dd>
+      </React.Fragment>
+    ))} */}
+  </dl>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/ForNest.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/ForNest.js.html new file mode 100644 index 0000000..89b95b7 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/ForNest.js.html @@ -0,0 +1,115 @@ + + + + + + Code coverage report for src/chap03/ForNest.js + + + + + + + + + +
+
+

All files / src/chap03 ForNest.js

+
+ +
+ 100% + Statements + 2/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 100% + Lines + 2/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11  +  +  +1x +  +  +5x +  +  +  + 
import ForItem from './ForItem';
+ 
+export default function ForNest({ src }) {
+  return (
+    <dl>
+      {src.map(elem =>
+        <ForItem book={elem} key={elem.isbn} />
+      )}
+    </dl>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/ForSort.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/ForSort.js.html new file mode 100644 index 0000000..43d042b --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/ForSort.js.html @@ -0,0 +1,139 @@ + + + + + + Code coverage report for src/chap03/ForSort.js + + + + + + + + + +
+
+

All files / src/chap03 ForSort.js

+
+ +
+ 0% + Statements + 0/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from 'react';
+ 
+export default function ForSort({ src }) {
+  src.sort((m, n) => m.price - n.price);
+  return (
+  <dl>
+    {src.map(elem => (
+      <React.Fragment key={elem.isbn}>
+        <dt>
+          <a href={`https://wikibook.co.kr/images/cover/s/${elem.isbn}.jpg`}>
+              {elem.title}({elem.price}원)
+          </a>
+        </dt>
+        <dd>{elem.summary}</dd>
+      </React.Fragment>
+    ))}
+  </dl>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/ListTemplate.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/ListTemplate.js.html new file mode 100644 index 0000000..527e92c --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/ListTemplate.js.html @@ -0,0 +1,169 @@ + + + + + + Code coverage report for src/chap03/ListTemplate.js + + + + + + + + + +
+
+

All files / src/chap03 ListTemplate.js

+
+ +
+ 0% + Statements + 0/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from 'react';
+ 
+export default function ListTemplate({ src, children }) {
+  return (
+    <dl>
+      {src.map(elem => (
+        <React.Fragment key={elem.isbn}>
+          {/* {children} */}
+          {children(elem)}
+        </React.Fragment>
+      ))}
+    </dl>
+  );
+}
+ 
+ 
+ 
+// 렌더 프롭(Render Props)
+// export default function ListTemplate({ src, render }) {
+//   return (
+//     <dl>
+//       {src.map(elem => (
+//         <React.Fragment key={elem.isbn}>
+//           {render(elem)}
+//         </React.Fragment>
+//       ))}
+//     </dl>
+//   );
+// }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/MyHello.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/MyHello.js.html new file mode 100644 index 0000000..7e4d50f --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/MyHello.js.html @@ -0,0 +1,202 @@ + + + + + + Code coverage report for src/chap03/MyHello.js + + + + + + + + + +
+
+

All files / src/chap03 MyHello.js

+
+ +
+ 0% + Statements + 0/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from 'prop-types';
+ 
+// Code 3-1-1
+// export default function MyHello(props) {
+//   return (
+//     <div>안녕하세요, {props.myName}님!</div>
+//   );
+// }
+ 
+ 
+ 
+// Code 3-1-3
+// export default function MyHello({ myName }) {
+//   return (
+//     <div>안녕하세요, {myName}님!</div>
+//   );
+// }
+ 
+// export default function MyHello({ myName = '김철수' }) {
+//   return (
+//     <div>안녕하세요, {myName}님!</div>
+//   );
+// }
+ 
+ 
+ 
+// Code 3-3-14
+// PropTypes 가져오기
+function MyHello(props) {
+  return (
+    <div>안녕하세요, {props.myName}님!</div>
+  );
+}
+ 
+// 타입 정보 선언
+MyHello.propTypes = {
+  myName: PropTypes.string.isRequired
+};
+ 
+export default MyHello;
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/SelectStyle.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/SelectStyle.js.html new file mode 100644 index 0000000..15cc72f --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/SelectStyle.js.html @@ -0,0 +1,220 @@ + + + + + + Code coverage report for src/chap03/SelectStyle.js + + + + + + + + + +
+
+

All files / src/chap03 SelectStyle.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import './SelectStyle.css';
+import cn from 'classnames';
+ 
+export default function SelectStyle({ mode }) {
+  return (
+    // mode 속성에 따라 스타일 클래스 전환
+    <div className={`box ${mode === 'light' ? 'light' : 'dark'}`}>
+      Hello World!
+    </div>
+ 
+    // <div className={mode === 'light' ? 'light' : 'dark'}>
+    //   Hello World!
+    // </div>
+ 
+    // <div className={(mode !== 'light') && 'dark'}>
+    //   Hello World!
+    // </div>
+ 
+    // <div className={cn('box', mode === 'light' ? 'light' : 'dark')}>
+    //   Hello World!
+    // </div>
+ 
+    // <div className={cn(
+    //   'box',
+    //   {
+    //     light: mode === 'light',
+    //     dark: mode === 'dark'
+    //   }
+    // )}>
+    //   Hello World!
+    // </div>
+ 
+    // <div className={cn(
+    //   'box',
+    //   [
+    //     'panel',
+    //     {
+    //       light: mode === 'light',
+    //       dark: mode === 'dark'
+    //     }
+    //   ]
+    // )}>
+    //   Hello World!
+    // </div>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/StateBasic.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/StateBasic.js.html new file mode 100644 index 0000000..f986b5d --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/StateBasic.js.html @@ -0,0 +1,235 @@ + + + + + + Code coverage report for src/chap03/StateBasic.js + + + + + + + + + +
+
+

All files / src/chap03 StateBasic.js

+
+ +
+ 0% + Statements + 0/5 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useState } from 'react';
+ 
+export default function StateBasic({ init }) {
+  // Props(init)로 State(count) 초기화하기
+  const [count, setCount] = useState(init);
+  // [카운트] 버튼 클릭 시 카운트 값을 증가시킨다.
+  console.log(`count is ${count}.`);
+  const handleClick = () => setCount(count + 1);
+ 
+  return (
+    <>
+      <button onClick={handleClick}>카운트</button>
+      <p>{count}번 클릭했습니다.</p>
+    </>
+  );
+}
+ 
+ 
+ 
+// Code 3-3-28
+// export default function StateBasic({ init }) {
+//   const [count, setCount] = useState(init);
+//   // [카운트] 버튼 클릭 시 카운트 값을 증가시킨다.
+//   const handleClick = () => {
+//     setCount(count + 1);
+//     setCount(count + 1);
+//   };
+ 
+//   return (
+//     <>
+//       <button onClick={handleClick}>카운트</button>
+//       <p>{count}번 클릭했습니다.</p>
+//     </>
+//   );
+// }
+ 
+// export default function StateBasic({ init }) {
+//   const [count, setCount] = useState(init);
+//   // [카운트] 버튼 클릭 시 카운트 값을 증가시킨다.
+//   const handleClick = () => {
+//     setCount(c => c + 1);
+//     setCount(c => c + 1);
+//   };
+ 
+//   return (
+//     <>
+//       <button onClick={handleClick}>카운트</button>
+//       <p>{count}번 클릭했습니다.</p>
+//     </>
+//   );
+// }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/StateCounter.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/StateCounter.js.html new file mode 100644 index 0000000..6e3d464 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/StateCounter.js.html @@ -0,0 +1,115 @@ + + + + + + Code coverage report for src/chap03/StateCounter.js + + + + + + + + + +
+
+

All files / src/chap03 StateCounter.js

+
+ +
+ 0% + Statements + 0/3 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11  +  +  +  +  +  +  +  +  +  + 
import './StateCounter.css';
+ 
+export default function StateCounter({ step, onUpdate }) {
+  // 버튼 클릭으로 상위 State(count)에 step 값만큼 추가
+  const handleClick = () => onUpdate(step); 
+  return (
+    <button className="cnt" onClick={handleClick}>
+      <span>{step}</span>
+    </button>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/StateParent.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/StateParent.js.html new file mode 100644 index 0000000..d4dc6e0 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/StateParent.js.html @@ -0,0 +1,136 @@ + + + + + + Code coverage report for src/chap03/StateParent.js + + + + + + + + + +
+
+

All files / src/chap03 StateParent.js

+
+ +
+ 0% + Statements + 0/5 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useState } from 'react';
+import StateCounter from './StateCounter';
+ 
+export default function StateParent() {
+  // 카운트 합계를 나타내는 count를 초기화한다.
+  const [count, setCount] = useState(0);
+  // State 값(count)을 갱신하기 위한 update 함수를 준비한다.
+  const update = step => setCount(c => c + step);
+  return (
+  <>
+    {/* StateCounter 컴포넌트에 update 함수를 전달 */}
+    <p>총 개수: {count}</p>
+    <StateCounter step={1} onUpdate={update} />
+    <StateCounter step={5} onUpdate={update} />
+    <StateCounter step={-1} onUpdate={update} />
+  </>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/StyledPanel.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/StyledPanel.js.html new file mode 100644 index 0000000..3b66825 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/StyledPanel.js.html @@ -0,0 +1,124 @@ + + + + + + Code coverage report for src/chap03/StyledPanel.js + + + + + + + + + +
+
+

All files / src/chap03 StyledPanel.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14  +  +  +  +  +  +  +  +  +  +  +  +  + 
export default function StyledPanel({ children }) {
+  return (
+    <div style={{
+      margin: 50,
+      padding: 20,
+      border: '1px solid #000',
+      width: 'fit-content',
+      boxShadow: '10px 5px 5px #999',
+      backgroundColor: '#fff'
+    }}>
+      {children}
+    </div>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/TitledPanel.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/TitledPanel.js.html new file mode 100644 index 0000000..ce1e311 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/TitledPanel.js.html @@ -0,0 +1,193 @@ + + + + + + Code coverage report for src/chap03/TitledPanel.js + + + + + + + + + +
+
+

All files / src/chap03 TitledPanel.js

+
+ +
+ 0% + Statements + 0/5 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
// export default function TitledPanel({ title, body }) {
+//   return (
+//     <div style={{
+//       margin: 50,
+//       padding: 5,
+//       border: '1px solid #000',
+//       width: 'fit-content',
+//       boxShadow: '10px 5px 5px #999',
+//       backgroundColor: '#fff'
+//     }}>
+//       {title}
+//       <hr />
+//       {body}
+//     </div>
+//   );
+// }
+ 
+// key 속성이 title/body인 요소를 가져온다.
+export default function TitledPanel({ children }) {
+  const title = children.find(elem => elem.key === 'title');
+  const body = children.find(elem => elem.key === 'body')
+ 
+  return (
+    <div style={{
+      margin: 50,
+      padding: 5,
+      border: '1px solid #000',
+      width: 'fit-content',
+      boxShadow: '10px 5px 5px #999',
+      backgroundColor: '#fff'
+    }}>
+      {title}
+      <hr />
+      {body}
+    </div>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/TypeProp.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/TypeProp.js.html new file mode 100644 index 0000000..4db31ad --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/TypeProp.js.html @@ -0,0 +1,196 @@ + + + + + + Code coverage report for src/chap03/TypeProp.js + + + + + + + + + +
+
+

All files / src/chap03 TypeProp.js

+
+ +
+ 0% + Statements + 0/3 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import PropTypes from 'prop-types';
+ 
+export function Member() {}
+function TypeProp(props) {
+  console.log(props);
+  return <p>결과는 콘솔에서 확인하기 바란다.</p>;
+}
+ 
+TypeProp.propTypes = {
+  // Member형 속성
+  prop1: PropTypes.instanceOf(Member),
+  // 남성, 여성, 기타 중 하나
+  prop2: PropTypes.oneOf(['남성', '여성', '기타']),
+  // 문자열, 숫자, 부울 값 중 선택 가능
+  prop3: PropTypes.oneOfType([
+    PropTypes.string,
+    PropTypes.number,
+    PropTypes.bool,
+  ]),
+  // 숫자형 배열
+  prop4: PropTypes.arrayOf(PropTypes.number),
+  // 숫자형 객체
+  prop5: PropTypes.objectOf(PropTypes.number),
+  // name, age, sex 프로퍼티를 가진 오브젝트
+  prop6: PropTypes.shape({
+    name: PropTypes.string.isRequired,
+    age: PropTypes.number,
+    sex: PropTypes.oneOf(['남성', '여성', '기타']),
+  }),
+  prop7: PropTypes.exact({
+    name: PropTypes.string.isRequired,
+    age: PropTypes.number,
+    sex: PropTypes.oneOf(['남성', '여성', '기타']),
+  }),
+};
+ 
+export default TypeProp;
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/books.js.html b/modern-react/my-react/coverage/lcov-report/src/chap03/books.js.html new file mode 100644 index 0000000..9d1eeac --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/books.js.html @@ -0,0 +1,211 @@ + + + + + + Code coverage report for src/chap03/books.js + + + + + + + + + +
+
+

All files / src/chap03 books.js

+
+ +
+ 100% + Statements + 1/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 1/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +431x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
const books = [
+  {
+    isbn: '9791158395124',
+    title: '게임 개발을 위한 미드저니, 스테이블 디퓨전 완벽 활용법',
+    slug: 'genai-game',
+    price: 28000,
+    summary: '생성형 AI를 활용한 게임 캐릭터, 배경, 아이템 제작부터 유니티 실전 프로젝트까지',
+    download: true,
+  },
+  {
+    isbn: '9791158395117',
+    title: '디자인을 위한 미드저니 완벽 활용법',
+    slug: 'midjourney-design',
+    price: 24000,
+    summary: '광고부터 캐릭터, 로고, 일러스트레이션, 표지, 포스터, 타이포까지 독창적인 디자인 만들기',
+    download: false,
+  },
+  {
+    isbn: '9791158395032',
+    title: '만들면서 배우는 블렌더 3D 입문',
+    slug: 'blender-basic',
+    price: 28000,
+    summary: '블렌더 기초, 모델링, 머티리얼, 애니메이션, 렌더링까지',
+    download: true,
+  },
+  {
+    isbn: '9791158395018',
+    title: '모던 그로스 마케팅',
+    slug: 'mgm',
+    price: 24000,
+    summary: '비용은 최소화하고 매출은 극대화하는 생존 마케팅 전략',
+    download: false,
+  },
+  {
+    isbn: '9791158395025',
+    title: '도메인 스토리텔링',
+    slug: 'domain-storytelling',
+    price: 28000,
+    summary: '도메인 주도 소프트웨어 구축을 위한 스토리텔링과 스토리 시각화 기법',
+    download: true,
+  },
+];
+export default books;
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap03/index.html b/modern-react/my-react/coverage/lcov-report/src/chap03/index.html new file mode 100644 index 0000000..cdf4689 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap03/index.html @@ -0,0 +1,521 @@ + + + + + + Code coverage report for src/chap03 + + + + + + + + + +
+
+

All files src/chap03

+
+ +
+ 2.23% + Statements + 3/134 +
+ + +
+ 0% + Branches + 0/17 +
+ + +
+ 3.12% + Functions + 2/64 +
+ + +
+ 2.63% + Lines + 3/114 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
Download.js +
+
0%0/1100%0/00%0/10%0/1
EventArgs.js +
+
0%0/130%0/30%0/50%0/13
EventArgs2.js +
+
0%0/110%0/30%0/20%0/11
EventBasic.js +
+
0%0/100%0/30%0/20%0/10
EventCompare.js +
+
0%0/8100%0/00%0/50%0/4
EventError.js +
+
0%0/4100%0/00%0/20%0/3
EventKey.js +
+
0%0/40%0/40%0/20%0/4
EventMouse.js +
+
0%0/6100%0/00%0/30%0/4
EventObj.js +
+
0%0/3100%0/00%0/20%0/2
EventOnce.js +
+
0%0/70%0/20%0/20%0/7
EventPassive.js +
+
0%0/9100%0/00%0/40%0/8
EventPoint.js +
+
0%0/10100%0/00%0/20%0/10
EventPropagation.js +
+
0%0/7100%0/00%0/40%0/4
ForFilter.js +
+
0%0/4100%0/00%0/30%0/3
ForItem.js +
+
0%0/1100%0/00%0/10%0/1
ForList.js +
+
0%0/2100%0/00%0/20%0/2
ForNest.js +
+
100%2/2100%0/0100%2/2100%2/2
ForSort.js +
+
0%0/4100%0/00%0/30%0/3
ListTemplate.js +
+
0%0/2100%0/00%0/20%0/2
MyHello.js +
+
0%0/2100%0/00%0/10%0/2
SelectStyle.js +
+
0%0/10%0/20%0/10%0/1
StateBasic.js +
+
0%0/5100%0/00%0/20%0/4
StateCounter.js +
+
0%0/3100%0/00%0/20%0/2
StateParent.js +
+
0%0/5100%0/00%0/30%0/3
StyledPanel.js +
+
0%0/1100%0/00%0/10%0/1
TitledPanel.js +
+
0%0/5100%0/00%0/30%0/3
TypeProp.js +
+
0%0/3100%0/00%0/20%0/3
books.js +
+
100%1/1100%0/0100%0/0100%1/1
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap04/FormBasic.js.html b/modern-react/my-react/coverage/lcov-report/src/chap04/FormBasic.js.html new file mode 100644 index 0000000..528d5d9 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap04/FormBasic.js.html @@ -0,0 +1,1261 @@ + + + + + + Code coverage report for src/chap04/FormBasic.js + + + + + + + + + +
+
+

All files / src/chap04 FormBasic.js

+
+ +
+ 0% + Statements + 0/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useForm } from 'react-hook-form';
+ 
+export default function FormBasic() {
+  // 기본값 준비
+  const defaultValues = {
+    name: '홍길동',
+    email: 'admin@example.com',
+    gender: 'male',
+    memo: ''
+  };
+ 
+  // 폼 초기화
+  const { register, handleSubmit,
+    formState: { errors} } = useForm({
+    defaultValues
+  });
+ 
+  // 제출 시 처리
+  const onsubmit = data => console.log(data);
+  const onerror = err => console.log(err);
+ 
+  return (
+  <form onSubmit={handleSubmit(onsubmit, onerror)} noValidate>
+    {/* 검증 규칙 등을 폼에 연결 */}
+    <div>
+      <label htmlFor="name">이름::</label><br/>
+      <input id="name" type="text"
+        {...register('name', {
+          required: '이름은 필수 입력 항목입니다.',
+          maxLength: {
+            value: 20,
+            message: '이름은 20자 이내로 작성해주세요.'
+          }
+        })}
+      />
+      <div>{errors.name?.message}</div>
+    </div>
+    <div>
+      <label htmlFor="gender">성별:</label><br/>
+      <label>
+      <input type="radio" value="male"
+        {...register('gender', {
+          required: '성별은 필수입니다.',
+        })} />남성
+      </label>
+      <label>
+      <input type="radio" value="female"
+        {...register('gender', {
+          required: '성펼은 필수입니다.',
+        })} />여성
+      </label>
+      <div>{errors.gender?.message}</div>
+    </div>
+    <div>
+      <label htmlFor="email">이메일 주소:</label><br/>
+      <input id="email" type="email"
+        {...register('email', {
+          required: '이메일 주소는 필수 입력사항입니다.',
+          pattern: {
+            value: /([a-z\d+\-.]+)@([a-z\d-]+(?:\.[a-z]+)*)/i,
+            message: '이메일 주소 형식이 잘못되었습니다.'
+          }
+        })} />
+      <div>{errors.email?.message}</div>
+    </div>
+    <div>
+      <label htmlFor="memo">비고:</label><br/>
+      <textarea id="memo"
+        {...register('memo', {
+          required: '비고는 필수 입력 항목입니다.',
+          minLength: {
+            value: 10,
+            message: '비고는 10자 이상으로 작성해주세요.'
+          }
+        })} />
+      <div>{errors.memo?.message}</div>
+    </div>
+    <div>
+      <button type="submit">제출하기</button>
+    </div>
+  </form>
+  );
+}
+ 
+ 
+ 
+// Code 4-3-3
+// import { useForm } from 'react-hook-form';
+ 
+// export default function FormBasic() {
+//   // 기본값 준비
+//   const defaultValues = {
+//     name: '홍길동',
+//     email: 'admin@example.com',
+//     gender: 'male',
+//     memo: ''
+//   };
+ 
+//   // 폼 초기화
+//   const { register, handleSubmit,
+//     formState: { errors} } = useForm({
+//     defaultValues
+//   });
+ 
+//   // 제출 시 처리
+//   const onsubmit = data => console.log(data);
+//   const onerror = err => console.log(err);
+ 
+//   return (
+//   <form onSubmit={handleSubmit(onsubmit, onerror)} noValidate>
+//     {/* 검증 규칙 등을 폼에 연결 */}
+//     <div>
+//       <label htmlFor="name">이름:</label><br/>
+//       <input id="name" type="text"
+//         {...register('name', {
+//           required: '이름은 필수 입력 항목입니다.',
+//           maxLength: {
+//             value: 20,
+//             message: '이름은 20자 이내로 작성해주세요.'
+//           }
+//         })}
+//       />
+//       <div>{errors.name?.message}</div>
+//     </div>
+//     <div>
+//       <label htmlFor="gender">성별:</label><br/>
+//       <label>
+//       <input type="radio" value="male"
+//         {...register('gender', {
+//           required: '성별은 필수입니다.',
+//         })} />남성
+//       </label>
+//       <label>
+//       <input type="radio" value="female"
+//         {...register('gender', {
+//           required: '성펼은 필수입니다.',
+//         })} />여성
+//       </label>
+//       <div>{errors.gender?.message}</div>
+//     </div>
+//     <div>
+//       <label htmlFor="email">이메일 주소:</label><br/>
+//       <input id="email" type="email"
+//         {...register('email', {
+//           required: '이메일 주소는 필수 입력사항입니다.',
+//           pattern: {
+//             value: /([a-z\d+\-.]+)@([a-z\d-]+(?:\.[a-z]+)*)/i,
+//             message: '이메일 주소 형식이 잘못되었습니다.'
+//           }
+//         })} />
+//       <div>{errors.email?.message}</div>
+//     </div>
+//     <div>
+//       <label htmlFor="memo">비고:</label><br/>
+//       <textarea id="memo"
+//         {...register('memo', {
+//           required: '비고는 필수 입력 항목입니다.',
+//           minLength: {
+//             value: 10,
+//             message: '비고는 10자 이상으로 작성해주세요.'
+//           },
+//           validate: {
+//             ng: (value, formValues) => {
+//               // 부적절한 단어 준비
+//               const ngs = ['폭력', '죽음', '그로테스크'];
+//               // 입력 문자열에 부적절한 단어가 포함되어 있는지 판단
+//               for (const ng of ngs) {
+//                 if (value.includes(ng)) {
+//                   return '비고에 적절하지 않은 단어가 포함되어 있습니다.';
+//                 }
+//               }
+//               return  true;
+//             }
+//           },
+//         })} />
+//       <div>{errors.memo?.message}</div>
+//     </div>
+//     <div>
+//       <button type="submit">제출하기</button>
+//     </div>
+//   </form>
+//   );
+// }
+ 
+ 
+ 
+// Code 4-3-4
+// import { useForm } from 'react-hook-form';
+ 
+// export default function FormBasic() {
+//   // 기본값 준비
+//   const defaultValues = {
+//     name: '홍길동',
+//     email: 'admin@example.com',
+//     gender: 'male',
+//     memo: ''
+//   };
+ 
+//   // 폼 초기화
+//   const { register, handleSubmit,
+//     formState: { errors, isDirty, isValid } } = useForm({
+//     defaultValues
+//   });
+ 
+//   // 제출 시 처리
+//   const onsubmit = data => console.log(data);
+//   const onerror = err => console.log(err);
+ 
+//   return (
+//   <form onSubmit={handleSubmit(onsubmit, onerror)} noValidate>
+//     {/* 검증 규칙 등을 폼에 연결 */}
+//     <div>
+//       <label htmlFor="name">이름:</label><br/>
+//       <input id="name" type="text"
+//         {...register('name', {
+//           required: '이름은 필수 입력 항목입니다.',
+//           maxLength: {
+//             value: 20,
+//             message: '이름은 20자 이내로 작성해주세요.'
+//           }
+//         })}
+//       />
+//       <div>{errors.name?.message}</div>
+//     </div>
+//     <div>
+//       <label htmlFor="gender">성별:</label><br/>
+//       <label>
+//       <input type="radio" value="male"
+//         {...register('gender', {
+//           required: '성별은 필수입니다.',
+//         })} />남성
+//       </label>
+//       <label>
+//       <input type="radio" value="female"
+//         {...register('gender', {
+//           required: '성펼은 필수입니다.',
+//         })} />여성
+//       </label>
+//       <div>{errors.gender?.message}</div>
+//     </div>
+//     <div>
+//       <label htmlFor="email">이메일 주소:</label><br/>
+//       <input id="email" type="email"
+//         {...register('email', {
+//           required: '이메일 주소는 필수 입력사항입니다.',
+//           pattern: {
+//             value: /([a-z\d+\-.]+)@([a-z\d-]+(?:\.[a-z]+)*)/i,
+//             message: '이메일 주소 형식이 잘못되었습니다.'
+//           }
+//         })} />
+//       <div>{errors.email?.message}</div>
+//     </div>
+//     <div>
+//       <label htmlFor="memo">비고:</label><br/>
+//       <textarea id="memo"
+//         {...register('memo', {
+//           required: '비고는 필수 입력 항목입니다.',
+//           minLength: {
+//             value: 10,
+//             message: '비고는 10자 이상으로 작성해주세요.'
+//           },
+//           validate: {
+//             ng: (value, formValues) => {
+//               // 부적절한 단어 준비
+//               const ngs = ['폭력', '죽음', '그로테스크'];
+//               // 입력 문자열에 부적절한 단어가 포함되어 있는지 판단
+//               for (const ng of ngs) {
+//                 if (value.includes(ng)) {
+//                   return '비고에 적절하지 않은 단어가 포함되어 있습니다.';
+//                 }
+//               }
+//               return  true;
+//             }
+//           },
+//         })} />
+//       <div>{errors.memo?.message}</div>
+//     </div>
+//     <div>
+//       <button type="submit"
+//          disabled={!isDirty || !isValid}>제출하기</button>
+//     </div>
+//   </form>
+//   );
+// }
+ 
+ 
+ 
+// Code 4-3-5
+// import { useForm } from 'react-hook-form';
+ 
+// export default function FormBasic() {
+//   // 기본값 준비
+//   const defaultValues = {
+//     name: '홍길동',
+//     email: 'admin@example.com',
+//     gender: 'male',
+//     memo: ''
+//   };
+ 
+//   // 폼 초기화
+//   const { register, handleSubmit,
+//     formState: { errors, isDirty, isValid, isSubmitting } } = useForm({ 
+//     defaultValues
+//   });
+ 
+//   // 제출 시 4000밀리초로 처리(더미 지연 처리)
+//   const onsubmit = data => {
+//     return new Promise(resolve => {
+//       setTimeout(() => {
+//         resolve();
+//         console.log(data);
+//       }, 4000);
+//     });
+//   };
+//   const onerror = err => console.log(err);
+ 
+//   return (
+//   <form onSubmit={handleSubmit(onsubmit, onerror)} noValidate>
+//     {/* 검증 규칙 등을 폼에 연결 */}
+//     <div>
+//       <label htmlFor="name">이름:</label><br/>
+//       <input id="name" type="text"
+//         {...register('name', {
+//           required: '이름은 필수 입력 항목입니다.',
+//           maxLength: {
+//             value: 20,
+//             message: '이름은 20자 이내로 작성해주세요.'
+//           }
+//         })}
+//       />
+//       <div>{errors.name?.message}</div>
+//     </div>
+//     <div>
+//       <label htmlFor="gender">성별:</label><br/>
+//       <label>
+//       <input type="radio" value="male"
+//         {...register('gender', {
+//           required: '성별은 필수입니다.',
+//         })} />남성
+//       </label>
+//       <label>
+//       <input type="radio" value="female"
+//         {...register('gender', {
+//           required: '성펼은 필수입니다.',
+//         })} />여성
+//       </label>
+//       <div>{errors.gender?.message}</div>
+//     </div>
+//     <div>
+//       <label htmlFor="email">이메일 주소:</label><br/>
+//       <input id="email" type="email"
+//         {...register('email', {
+//           required: '이메일 주소는 필수 입력사항입니다.',
+//           pattern: {
+//             value: /([a-z\d+\-.]+)@([a-z\d-]+(?:\.[a-z]+)*)/i,
+//             message: '이메일 주소 형식이 잘못되었습니다.'
+//           }
+//         })} />
+//       <div>{errors.email?.message}</div>
+//     </div>
+//     <div>
+//       <label htmlFor="memo">비고:</label><br/>
+//       <textarea id="memo"
+//         {...register('memo', {
+//           required: '비고는 필수 입력 항목입니다.',
+//           minLength: {
+//             value: 10,
+//             message: '비고는 10자 이상으로 작성해주세요.'
+//           },
+//           validate: {
+//             ng: (value, formValues) => {
+//               // 부적절한 단어 준비
+//               const ngs = ['폭력', '죽음', '그로테스크'];
+//               // 입력 문자열에 부적절한 단어가 포함되어 있는지 판단
+//               for (const ng of ngs) {
+//                 if (value.includes(ng)) {
+//                   return '비고에 적절하지 않은 단어가 포함되어 있습니다.';
+//                 }
+//               }
+//               return  true;
+//             }
+//           },
+//         })} />
+//       <div>{errors.memo?.message}</div>
+//     </div>
+//     <div>
+//       <button type="submit"
+//          disabled={!isDirty || !isValid || isSubmitting}>제출하기</button>
+//          {isSubmitting && <div>...제출 중...</div>}
+//     </div>
+//   </form>
+//   );
+// }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap04/FormCheck.js.html b/modern-react/my-react/coverage/lcov-report/src/chap04/FormCheck.js.html new file mode 100644 index 0000000..5b226c1 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap04/FormCheck.js.html @@ -0,0 +1,178 @@ + + + + + + Code coverage report for src/chap04/FormCheck.js + + + + + + + + + +
+
+

All files / src/chap04 FormCheck.js

+
+ +
+ 0% + Statements + 0/6 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useState } from 'react';
+ 
+export default function FormCheck() {
+  // State 초기화
+  const [form, setForm] = useState({
+    agreement: true
+  });
+ 
+  // 체크박스 변경 시 입력값 State에 반영
+  const handleFormCheck = e => {
+    setForm({
+      ...form,
+      [e.target.name]: e.target.checked
+    });
+  };
+ 
+  // [보내기] 버튼 클릭 시 입력값 로그 출력
+  const show = () => {
+    console.log(`동의 확인: ${form.agreement ? '동의': '동의하지 않음'}`);
+  };
+ 
+  return (
+    <form>
+      <label htmlFor="agreement">동의합니다:</label>
+      <input id="agreement" name="agreement" type="checkbox"
+        checked={form.agreement}
+        onChange={handleFormCheck} /><br />
+      <button type="button" onClick={show}>보내기</button>
+    </form>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap04/FormCheckMulti.js.html b/modern-react/my-react/coverage/lcov-report/src/chap04/FormCheckMulti.js.html new file mode 100644 index 0000000..73fe855 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap04/FormCheckMulti.js.html @@ -0,0 +1,262 @@ + + + + + + Code coverage report for src/chap04/FormCheckMulti.js + + + + + + + + + +
+
+

All files / src/chap04 FormCheckMulti.js

+
+ +
+ 0% + Statements + 0/10 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/10 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useState } from 'react';
+ 
+export default function FormCheckMulti() {
+  // State 초기화
+  const [form, setForm] = useState({
+    animal: ['dog', 'hamster']
+  });
+ 
+  // 체크박스 변경 시 입력값 State에 반영
+  const handleFormMulti = e => {
+    const fa = form.animal;
+    // 체크 시 배열에 값 추가, 체크 해제 시 삭제
+    if (e.target.checked) {
+      fa.push(e.target.value);
+    } else {
+      fa.splice(fa.indexOf(e.target.value), 1);
+    }
+    // 편집된 배열을 State에 반영
+    setForm({
+      ...form,
+      [e.target.name]: fa
+    });
+  };
+ 
+  // [보내기] 버튼 클릭 시 입력값 로그 출력
+  const show = () => {
+    console.log(`좋아하는 동물:${form.animal}`);
+  };
+ 
+  // 개별 체크박스에 체크 여부 반영
+  return (
+    <form>
+      <fieldset>
+      <legend>좋아하는 동물:</legend>
+      <label htmlFor="animal_dog">개</label>
+      <input id="animal_dog" name="animal"
+        type="checkbox" value="dog"
+        checked={form.animal.includes('dog')}
+        onChange={handleFormMulti} /><br />
+      <label htmlFor="animal_cat">고양이</label>
+      <input id="animal_cat" name="animal"
+        type="checkbox" value="cat"
+        checked={form.animal.includes('cat')}
+        onChange={handleFormMulti} /><br />
+      <label htmlFor="animal_hamster">햄스터</label>
+      <input id="animal_hamster" name="animal"
+        type="checkbox" value="hamster"
+        checked={form.animal.includes('hamster')}
+        onChange={handleFormMulti} /><br />
+      <label htmlFor="animal_rabbit">토끼</label>
+      <input id="animal_rabbit" name="animal"
+        type="checkbox" value="rabbit"
+        checked={form.animal.includes('rabbit')}
+        onChange={handleFormMulti} /><br />
+      </fieldset>
+      <button type="button" onClick={show}>보내기</button>
+    </form>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap04/FormFile.js.html b/modern-react/my-react/coverage/lcov-report/src/chap04/FormFile.js.html new file mode 100644 index 0000000..a3d3a7a --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap04/FormFile.js.html @@ -0,0 +1,160 @@ + + + + + + Code coverage report for src/chap04/FormFile.js + + + + + + + + + +
+
+

All files / src/chap04 FormFile.js

+
+ +
+ 0% + Statements + 0/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/7 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useRef } from 'react';
+ 
+export default function FormFile() {
+  // 파일 입력창에 대한 참조
+  const file = useRef(null);
+ 
+  // [보내기] 버튼 클릭 후 파일 정보 로그 출력
+  function show() {
+    const fs = file.current.files;
+    // 획득한 파일군을 순서대로 스캔
+    for(const f of fs){
+      console.log(`파일명:${f.name}`);
+      console.log(`종류:${f.type}`);
+      console.log(`크기:${Math.trunc(f.size / 1024)}KB`);
+    }
+  }
+ 
+  return (
+    <form>
+      <input type="file" ref={file} multiple />
+      <button type="button" onClick={show}>
+        보내기</button>
+    </form>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap04/FormList.js.html b/modern-react/my-react/coverage/lcov-report/src/chap04/FormList.js.html new file mode 100644 index 0000000..babe1ac --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap04/FormList.js.html @@ -0,0 +1,226 @@ + + + + + + Code coverage report for src/chap04/FormList.js + + + + + + + + + +
+
+

All files / src/chap04 FormList.js

+
+ +
+ 0% + Statements + 0/11 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/11 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useState } from 'react';
+ 
+export default function FormList() {
+  // State 초기화
+  const [form, setForm] = useState({
+    animal: ['dog', 'hamster']
+  });
+ 
+  // 셀렉트 박스 변경 시 입력값을 State에 반영
+  const handleFormList = e => {
+    // 선택값을 저장하기 위한 배열
+    const data = [];
+    // <option> 요소를 순차적으로 스캔하여 선택 상태의 값을 배열에 추가한다.
+    const opts = e.target.options;
+    for (const opt of opts) {
+      if (opt.selected) {
+        data.push(opt.value);
+      }
+    }
+    // 최종 결과를 State에 반영
+    setForm({
+      ...form,
+      [e.target.name]: data
+    });
+  };
+ 
+  // [보내기] 버튼 클릭 시 입력값 로그 출력
+  const show = () => {
+    console.log(`좋아하는 동물:${form.animal}`);
+  };
+ 
+  return (
+    <form>
+      <label htmlFor="animal">좋아하는 동물:</label><br />
+      <select id="animal" name="animal"
+        value={form.animal}
+        size="4" multiple={true}
+        onChange={handleFormList}>
+        <option value="dog">개</option>
+        <option value="cat">고양이</option>
+        <option value="hamster">햄스터</option>
+        <option value="rabbit">토끼</option>
+      </select>
+      <button type="button" onClick={show}>보내기</button>
+    </form>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap04/FormRadio.js.html b/modern-react/my-react/coverage/lcov-report/src/chap04/FormRadio.js.html new file mode 100644 index 0000000..b1570c5 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap04/FormRadio.js.html @@ -0,0 +1,223 @@ + + + + + + Code coverage report for src/chap04/FormRadio.js + + + + + + + + + +
+
+

All files / src/chap04 FormRadio.js

+
+ +
+ 0% + Statements + 0/6 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useState } from 'react';
+ 
+export default function FormRadio() {
+  // State 초기화
+  const [form, setForm] = useState({
+    os: 'windows'
+  });
+ 
+  // 라디오 버튼 변경 시 입력 값을 State에 반영
+  const handleForm = e => {
+    setForm({
+      ...form,
+      [e.target.name]: e.target.value
+    });
+  };
+ 
+  // [보내기] 버튼 클릭 시 입력값 로그 출력
+  const show = () => {
+    console.log(`사용OS:${form.os}`);
+  };
+ 
+  // State의 현재 값에 따라 checked 속성 값을 결정한다.
+  return (
+    <form>
+    <fieldset>
+    <legend>사용OS:</legend>
+    <label htmlFor="os_win">Windows</label>
+    <input id="os_win" name="os"
+      type="radio" value="windows"
+      checked={form.os === 'windows'}
+      onChange={handleForm} /><br />
+    <label htmlFor="os_mac">macOS</label>
+    <input id="os_mac" name="os"
+      type="radio" value="mac"
+      checked={form.os === 'mac'}
+      onChange={handleForm} /><br />
+    <label htmlFor="os_lin">Linux</label>
+    <input id="os_lin" name="os"
+      type="radio" value="linux"
+      checked={form.os === 'linux'}
+      onChange={handleForm} />
+    </fieldset>
+    <button type="button" onClick={show}>보내기</button>
+    </form>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap04/FormSelect.js.html b/modern-react/my-react/coverage/lcov-report/src/chap04/FormSelect.js.html new file mode 100644 index 0000000..515ea44 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap04/FormSelect.js.html @@ -0,0 +1,190 @@ + + + + + + Code coverage report for src/chap04/FormSelect.js + + + + + + + + + +
+
+

All files / src/chap04 FormSelect.js

+
+ +
+ 0% + Statements + 0/6 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useState } from 'react';
+ 
+export default function FormSelect() {
+  // State 초기화
+  const [form, setForm] = useState({
+    animal: 'dog'
+  });
+ 
+  // 선택 상자 변경 시 입력값을 State에 반영
+  const handleForm = e => {
+    setForm({
+      ...form,
+      [e.target.name]: e.target.value
+    });
+  };
+ 
+  // [보내기] 버튼 클릭 시 입력값 로그 출력
+  const show = () => {
+    console.log(`좋아하는 동물:${form.animal}`);
+  };
+ 
+  return (
+    <form>
+      <label htmlFor="animal">좋아하는 동물:</label>
+      <select id="animal" name="animal"
+        value={form.animal}
+        onChange={handleForm}>
+        <option value="dog">개</option>
+        <option value="cat">고양이</option>
+        <option value="hamster">햄스터</option>
+        <option value="rabbit">토끼</option>
+      </select>
+      <button type="button" onClick={show}>보내기</button>
+    </form>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap04/FormTextarea.js.html b/modern-react/my-react/coverage/lcov-report/src/chap04/FormTextarea.js.html new file mode 100644 index 0000000..5f63a5d --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap04/FormTextarea.js.html @@ -0,0 +1,181 @@ + + + + + + Code coverage report for src/chap04/FormTextarea.js + + + + + + + + + +
+
+

All files / src/chap04 FormTextarea.js

+
+ +
+ 0% + Statements + 0/6 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useState } from 'react';
+ 
+export default function FormTextarea() {
+  // State 초기화
+  const [form, setForm] = useState({
+    comment: `다양한 폼 요소를 리액트로 구현하는 방법에 대해서 알아보겠습니다. \n참고로 <input> 요소에서는 type 속성을 변경하여 숫자 스피너, 날짜 입력 박스 등 다양한 입력 박스를 표현할 수 있습니다.`
+  });
+ 
+  // 텍스트 영역 변경 시 입력 값을 State에 반영
+  const handleForm = e => {
+    setForm({
+      ...form,
+      [e.target.name]: e.target.value
+    });
+  };
+ 
+  // [보내기] 버튼 클릭 시 입력값 로그 출력
+  const show = () => {
+    console.log(`댓글: ${form.comment}`);
+  };
+ 
+  return (
+    <form>
+      <label htmlFor="comment">댓글: </label><br />
+      <textarea id="comment" name="comment"
+        cols="30" rows="7"
+        value={form.comment}
+        onChange={handleForm}></textarea><br />
+      <button type="button" onClick={show}>
+        보내기</button>
+    </form>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap04/FormYup.js.html b/modern-react/my-react/coverage/lcov-report/src/chap04/FormYup.js.html new file mode 100644 index 0000000..4ea94d6 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap04/FormYup.js.html @@ -0,0 +1,1306 @@ + + + + + + Code coverage report for src/chap04/FormYup.js + + + + + + + + + +
+
+

All files / src/chap04 FormYup.js

+
+ +
+ 0% + Statements + 0/15 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/6 +
+ + +
+ 0% + Lines + 0/13 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
// import { useForm } from 'react-hook-form';
+// import { yupResolver } from '@hookform/resolvers/yup';
+// import * as yup from 'yup';
+ 
+// /* eslint-disable no-template-curly-in-string */
+// // 검증 규칙 준비
+// const schema = yup.object({
+//   name: yup
+//     .string()
+//     .label('이름')
+//     .required('${label}은 필수 입력입니다.')
+//     .max(20, '${label}은 ${max}자 이내로 입력하세요.'),
+//   gender: yup
+//     .string()
+//     .label('성별')
+//     .required('${label}은 필수 입력입니다.'),
+//   email: yup
+//     .string()
+//     .label('이메일 주소')
+//     .required('${label}은 필수 입력입니다.')
+//     .email('${label}의 형식이 잘못되었습니다.'),
+//   memo: yup
+//     .string()
+//     .label('비고')
+//     .required('${label}은 필수 입력입니다.')
+//     .min(10, '${label}은 ${min}자 이상으로 입력하세요.')
+//     // .test('ng',
+//     //   ({ label }) => `${label}にNGワードが含まれています`,
+//     //   value => {
+//     //     const ngs = ['暴力', '死', 'グロ'];
+//     //     for (const ng of ngs) {
+//     //       if (value.includes(ng)) {
+//     //         return false;
+//     //       }
+//     //     }
+//     //     return  true;
+//     //   })
+//     // .ng()
+// });
+// /* eslint-enable no-template-curly-in-string */
+ 
+// export default function FormYup() {
+//   const { register, handleSubmit, formState: { errors } } = useForm({
+//     defaultValues: {
+//       name: '홍길동',
+//       email: 'admin@example.com',
+//       gender: 'male',
+//       memo: ''
+//     },
+//     // Yup에게 검증을 맡기다
+//     resolver: yupResolver(schema),
+//   });
+ 
+//   // 제출 시 처리 준비
+//   const onsubmit = data => console.log(data);
+//   const onerror = err => console.log(err);
+ 
+//   return (
+//   <form onSubmit={handleSubmit(onsubmit, onerror)} noValidate>
+//       <div>
+//           <label htmlFor="name">이름:</label><br/>
+//           <input id="name" type="text"
+//             {...register('name')} />
+//           <div>{errors.name?.message}</div>
+//       </div>
+//       <div>
+//           <label htmlFor="gender">성별:</label><br/>
+//           <label>
+//           <input type="radio" value="male"
+//             {...register('gender')} />남성
+//           </label>
+//           <label>
+//           <input type="radio" value="female"
+//             {...register('gender')} />여성
+//           </label>
+//           <div>{errors.gender?.message}</div>
+//       </div>
+//       <div>
+//           <label htmlFor="email">이메일 주소:</label><br/>
+//           <input id="email" type="email"
+//             {...register('email')} />
+//           <div>{errors.email?.message}</div>
+//       </div>
+//       <div>
+//           <label htmlFor="memo">비고:</label><br/>
+//           <textarea id="memo"
+//             {...register('memo')} />
+//           <div>{errors.memo?.message}</div>
+//       </div>
+//       <div>
+//           <button type="submit">제출하기</button>
+//       </div>
+//   </form>
+//   );
+// }
+ 
+ 
+ 
+ 
+// Code 4-3-8
+// import { useForm } from 'react-hook-form';
+// import { yupResolver } from '@hookform/resolvers/yup';
+// import * as yup from 'yup';
+ 
+// /* eslint-disable no-template-curly-in-string */
+// // 검증 규칙 준비
+// const schema = yup.object({
+//   name: yup
+//     .string()
+//     .label('이름')
+//     .required('${label}은 필수 입력입니다.')
+//     .max(20, '${label}은 ${max}자 이내로 입력하세요.'),
+//   gender: yup
+//     .string()
+//     .label('성별')
+//     .required('${label}은 필수 입력입니다.'),
+//   email: yup
+//     .string()
+//     .label('이메일 주소')
+//     .required('${label}은 필수 입력입니다.')
+//     .email('${label}의 형식이 잘못되었습니다.'),
+//   memo: yup
+//     .string()
+//     .label('비고')
+//     .required('${label}은 필수 입력입니다.')
+//     .min(10, '${label}은 ${min}자 이상으로 입력하세요.')
+//     .test('ng',
+//       ({ label }) => `${label}에 적절하지 않은 단어가 포함되어 있습니다.`,
+//       value => {
+//         // 부적절한 단어 준비
+//         const ngs = ['폭력', '죽음', '그로테스크'];
+//         // 입력 문자열에 부적절한 단어가 포함되었는지 판단
+//         for (const ng of ngs) {
+//           if (value.includes(ng)) {
+//             return false;
+//           }
+//         }
+//         return  true;
+//       })
+// });
+// /* eslint-enable no-template-curly-in-string */
+ 
+// export default function FormYup() {
+//   const { register, handleSubmit, formState: { errors } } = useForm({
+//     defaultValues: {
+//       name: '홍길동',
+//       email: 'admin@example.com',
+//       gender: 'male',
+//       memo: ''
+//     },
+//     // Yup에게 검증을 맡기다
+//     resolver: yupResolver(schema),
+//   });
+ 
+//   // 제출 시 처리 준비
+//   const onsubmit = data => console.log(data);
+//   const onerror = err => console.log(err);
+ 
+//   return (
+//   <form onSubmit={handleSubmit(onsubmit, onerror)} noValidate>
+//       <div>
+//           <label htmlFor="name">이름:</label><br/>
+//           <input id="name" type="text"
+//             {...register('name')} />
+//           <div>{errors.name?.message}</div>
+//       </div>
+//       <div>
+//           <label htmlFor="gender">성별:</label><br/>
+//           <label>
+//           <input type="radio" value="male"
+//             {...register('gender')} />남성
+//           </label>
+//           <label>
+//           <input type="radio" value="female"
+//             {...register('gender')} />여성
+//           </label>
+//           <div>{errors.gender?.message}</div>
+//       </div>
+//       <div>
+//           <label htmlFor="email">이메일 주소:</label><br/>
+//           <input id="email" type="email"
+//             {...register('email')} />
+//           <div>{errors.email?.message}</div>
+//       </div>
+//       <div>
+//           <label htmlFor="memo">비고:</label><br/>
+//           <textarea id="memo"
+//             {...register('memo')} />
+//           <div>{errors.memo?.message}</div>
+//       </div>
+//       <div>
+//           <button type="submit">제출하기</button>
+//       </div>
+//   </form>
+//   );
+// }
+ 
+ 
+ 
+// Code 4-3-9
+// import { useForm } from 'react-hook-form';
+// import { yupResolver } from '@hookform/resolvers/yup';
+// import * as yup from 'yup';
+ 
+// // ng 규칙 추가
+// yup.addMethod(yup.string, 'ng', function() {
+//   return this.test('ng',
+//     ({ label }) => `${label}에 적절하지 않은 단어가 포함되어 있습니다.`,
+//     value => {
+//       const ngs = ['폭력', '죽음', '그로테스크'];
+//       for (const ng of ngs) {
+//         if (value.includes(ng)) {
+//           return false;
+//         }
+//       }
+//       return  true;
+//     }
+//   );
+// });
+ 
+// /* eslint-disable no-template-curly-in-string */
+// // 검증 규칙 준비
+// const schema = yup.object({
+//   name: yup
+//     .string()
+//     .label('이름')
+//     .required('${label}은 필수 입력입니다.')
+//     .max(20, '${label}은 ${max}자 이내로 입력하세요.'),
+//   gender: yup
+//     .string()
+//     .label('성별')
+//     .required('${label}은 필수 입력입니다.'),
+//   email: yup
+//     .string()
+//     .label('이메일 주소')
+//     .required('${label}은 필수 입력입니다.')
+//     .email('${label}의 형식이 잘못되었습니다.'),
+//   // memo 필드에 ng 규칙 적용
+//   memo: yup
+//     .string()
+//     .label('비고')
+//     .required('${label}은 필수 입력입니다.')
+//     .min(10, '${label}은 ${min}자 이상으로 입력하세요.')
+//     .ng()
+// });
+// /* eslint-enable no-template-curly-in-string */
+ 
+// export default function FormYup() {
+//   const { register, handleSubmit, formState: { errors } } = useForm({
+//     defaultValues: {
+//       name: '홍길동',
+//       email: 'admin@example.com',
+//       gender: 'male',
+//       memo: ''
+//     },
+//     // Yup에게 검증을 맡기다
+//     resolver: yupResolver(schema),
+//   });
+ 
+//   // 제출 시 처리 준비
+//   const onsubmit = data => console.log(data);
+//   const onerror = err => console.log(err);
+ 
+//   return (
+//   <form onSubmit={handleSubmit(onsubmit, onerror)} noValidate>
+//       <div>
+//           <label htmlFor="name">이름:</label><br/>
+//           <input id="name" type="text"
+//             {...register('name')} />
+//           <div>{errors.name?.message}</div>
+//       </div>
+//       <div>
+//           <label htmlFor="gender">성별:</label><br/>
+//           <label>
+//           <input type="radio" value="male"
+//             {...register('gender')} />남성
+//           </label>
+//           <label>
+//           <input type="radio" value="female"
+//             {...register('gender')} />여성
+//           </label>
+//           <div>{errors.gender?.message}</div>
+//       </div>
+//       <div>
+//           <label htmlFor="email">이메일 주소:</label><br/>
+//           <input id="email" type="email"
+//             {...register('email')} />
+//           <div>{errors.email?.message}</div>
+//       </div>
+//       <div>
+//           <label htmlFor="memo">비고:</label><br/>
+//           <textarea id="memo"
+//             {...register('memo')} />
+//           <div>{errors.memo?.message}</div>
+//       </div>
+//       <div>
+//           <button type="submit">제출하기</button>
+//       </div>
+//   </form>
+//   );
+// }
+ 
+ 
+ 
+// Code 4-3-10
+import { useForm } from 'react-hook-form';
+import { yupResolver } from '@hookform/resolvers/yup';
+import * as yup from 'yup';
+ 
+// ng 규칙 추가
+yup.addMethod(yup.string, 'ng', function() {
+  return this.test('ng',
+    ({ label }) => `${label}에 적절하지 않은 단어가 포함되어 있습니다.`,
+    value => {
+      const ngs = ['폭력', '죽음', '그로테스크'];
+      for (const ng of ngs) {
+        if (value.includes(ng)) {
+          return false;
+        }
+      }
+      return  true;
+    }
+  );
+});
+ 
+/* eslint-disable no-template-curly-in-string */
+// 검증 규칙 준비
+const schema = yup.object({
+  name: yup
+    .string()
+    .label('이름')
+    .trim().lowercase()
+    // .transform((value, orgValue) => value.normalize('NFKC'))
+    .required('${label}은 필수 입력입니다.')
+    .max(20, '${label}은 ${max}자 이내로 입력하세요.'),
+  gender: yup
+    .string()
+    .label('성별')
+    .required('${label}은 필수 입력입니다.'),
+  email: yup
+    .string()
+    .label('이메일 주소')
+    .required('${label}은 필수 입력입니다.')
+    .email('${label}의 형식이 잘못되었습니다.'),
+  // memo 필드에 ng 규칙 적용
+  memo: yup
+    .string()
+    .label('비고')
+    .required('${label}은 필수 입력입니다.')
+    .min(10, '${label}은 ${min}자 이상으로 입력하세요.')
+    .ng()
+});
+/* eslint-enable no-template-curly-in-string */
+ 
+export default function FormYup() {
+  const { register, handleSubmit, formState: { errors } } = useForm({
+    defaultValues: {
+      name: '홍길동',
+      email: 'admin@example.com',
+      gender: 'male',
+      memo: ''
+    },
+    // Yup에게 검증을 맡기다
+    resolver: yupResolver(schema),
+  });
+ 
+  // 제출 시 처리 준비
+  const onsubmit = data => console.log(data);
+  const onerror = err => console.log(err);
+ 
+  return (
+  <form onSubmit={handleSubmit(onsubmit, onerror)} noValidate>
+      <div>
+          <label htmlFor="name">이름:</label><br/>
+          <input id="name" type="text"
+            {...register('name')} />
+          <div>{errors.name?.message}</div>
+      </div>
+      <div>
+          <label htmlFor="gender">성별:</label><br/>
+          <label>
+          <input type="radio" value="male"
+            {...register('gender')} />남성
+          </label>
+          <label>
+          <input type="radio" value="female"
+            {...register('gender')} />여성
+          </label>
+          <div>{errors.gender?.message}</div>
+      </div>
+      <div>
+          <label htmlFor="email">이메일 주소:</label><br/>
+          <input id="email" type="email"
+            {...register('email')} />
+          <div>{errors.email?.message}</div>
+      </div>
+      <div>
+          <label htmlFor="memo">비고:</label><br/>
+          <textarea id="memo"
+            {...register('memo')} />
+          <div>{errors.memo?.message}</div>
+      </div>
+      <div>
+          <button type="submit">제출하기</button>
+      </div>
+  </form>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap04/FromKorean.js.html b/modern-react/my-react/coverage/lcov-report/src/chap04/FromKorean.js.html new file mode 100644 index 0000000..87589e6 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap04/FromKorean.js.html @@ -0,0 +1,313 @@ + + + + + + Code coverage report for src/chap04/FromKorean.js + + + + + + + + + +
+
+

All files / src/chap04 FromKorean.js

+
+ +
+ 0% + Statements + 0/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useForm } from 'react-hook-form';
+import { yupResolver } from '@hookform/resolvers/yup';
+import yup from './yup.kr.js';
+ 
+const schema = yup.object({
+  name: yup
+    .string()
+    .label('이름')
+    .required()
+    .max(20),
+  gender: yup
+    .string()
+    .label('성별')
+    .required(),
+  email: yup
+    .string()
+    .label('이메일 주소')
+    .required()
+    .email(),
+  memo: yup
+    .string()
+    .label('비고')
+    .required()
+    .min(10)
+});
+ 
+export default function FormYup() {
+  const { register, handleSubmit, formState: { errors } } = useForm({
+    defaultValues: {
+      name: '홍길동',
+      email: 'admin@example.com',
+      gender: 'male',
+      memo: ''
+    },
+    resolver: yupResolver(schema),
+  });
+  const onsubmit = data => console.log(data);
+  const onerror = err => console.log(err);
+ 
+  return (
+  <form onSubmit={handleSubmit(onsubmit, onerror)} noValidate>
+      <div>
+          <label htmlFor="name">이름:</label><br/>
+          <input id="name" type="text"
+              {...register('name')} />
+          <div>{errors.name?.message}</div>
+      </div>
+      <div>
+          <label htmlFor="gender">성별:</label><br/>
+          <label>
+          <input type="radio" value="male"
+            {...register('gender')} />남성
+          </label>
+          <label>
+          <input type="radio" value="female"
+            {...register('gender')} />여성
+          </label>
+          <div>{errors.gender?.message}</div>
+      </div>
+      <div>
+          <label htmlFor="email">이메일 주소:</label><br/>
+          <input id="email" type="email"
+              {...register('email')} />
+          <div>{errors.email?.message}</div>
+      </div>
+      <div>
+          <label htmlFor="memo">비고:</label><br/>
+          <textarea id="memo"
+              {...register('memo')} />
+          <div>{errors.memo?.message}</div>
+      </div>
+      <div>
+          <button type="submit">비고</button>
+      </div>
+  </form>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap04/StateForm.js.html b/modern-react/my-react/coverage/lcov-report/src/chap04/StateForm.js.html new file mode 100644 index 0000000..351689c --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap04/StateForm.js.html @@ -0,0 +1,211 @@ + + + + + + Code coverage report for src/chap04/StateForm.js + + + + + + + + + +
+
+

All files / src/chap04 StateForm.js

+
+ +
+ 0% + Statements + 0/6 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useState } from 'react';
+ 
+export default function StateForm() {
+  // 폼으로 취급하는 값을 State로 선언
+  const [form, setForm] = useState({
+    name: '홍길동',
+    age: 18
+  });
+ 
+  // 폼 요소의 변경 사항을 State에 반영
+  const handleForm = e => {
+    setForm({
+      ...form,
+      [e.target.name]: e.target.value
+    });
+  };
+  
+  // [보내기] 버튼으로 로그에 메시지 출력하기
+  const show = () => {
+    console.log(`안녕하세요, ${form.name}(${form.age}세) 님!`);
+  };
+ 
+  return (
+    <form>
+      {/* 개별 폼 요소에 State 값 할당 */}
+      <div>
+        <label htmlFor="name">이름: </label>
+        <input id="name" name="name" type="text"
+          onChange={handleForm} value={form.name} />
+      </div>
+      <div>
+        <label htmlFor="age">나이:</label>
+        <input id="age" name="age" type="number"
+          onChange={handleForm} value={form.age} />
+      </div>
+      <div>
+        <button type="button" onClick={show}>
+          보내기</button>
+      </div>
+      <p>안녕하세요, {form.name}({form.age}세) 님!</p>
+    </form>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap04/StateFormUC.js.html b/modern-react/my-react/coverage/lcov-report/src/chap04/StateFormUC.js.html new file mode 100644 index 0000000..5f6ff80 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap04/StateFormUC.js.html @@ -0,0 +1,181 @@ + + + + + + Code coverage report for src/chap04/StateFormUC.js + + + + + + + + + +
+
+

All files / src/chap04 StateFormUC.js

+
+ +
+ 0% + Statements + 0/5 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useRef } from 'react';
+ 
+export default function StateFormUC() {
+  // 리액트 요소에 대한 참조 준비
+  const name = useRef(null);
+  const age = useRef(null);
+ 
+  // 요소(참조)를 통해 입력값 준비하기
+  const show = () => {
+    console.log(`안녕하세요, ${name.current.value}(${age.current.value}세) 님!`);
+  };
+ 
+  // 폼 그리기
+  return (
+    <form>
+      {/* 준비된 레퍼런스를 각 요소에 연결 */}
+      <div>
+        <label htmlFor="name">이름: </label>
+        <input id="name" name="name" type="text"
+          ref={name} defaultValue="홍길동" />
+      </div>
+      <div>
+        <label htmlFor="age">나이: </label>
+        <input id="age" name="age" type="number"
+          ref={age} defaultValue="18" />
+      </div>
+      <div>
+        <button type="button" onClick={show}>
+          보내기</button>
+      </div>
+    </form>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap04/StateNest.js.html b/modern-react/my-react/coverage/lcov-report/src/chap04/StateNest.js.html new file mode 100644 index 0000000..3d5c7ff --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap04/StateNest.js.html @@ -0,0 +1,262 @@ + + + + + + Code coverage report for src/chap04/StateNest.js + + + + + + + + + +
+
+

All files / src/chap04 StateNest.js

+
+ +
+ 0% + Statements + 0/8 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/8 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useState } from 'react';
+ 
+export default function StateNest() {
+  // 인자 배열을 State로 선언
+  const [form, setForm] = useState({
+    name: '홍길동',
+    address: {
+      city: '태안',
+      do: '충청남도'
+    }
+  });
+ 
+  // 1단계 요소를 업데이트하는 핸들러
+  const handleForm = e => {
+    setForm({
+      ...form,
+      [e.target.name]: e.target.value
+    });
+  };
+ 
+  // 2단계 요소를 업데이트하는 핸들러
+  const handleFormNest = e => {
+    setForm({
+      ...form,
+      address: {
+        ...form.address,
+        [e.target.name]: e.target.value
+      }
+    });
+  };
+ 
+  // [보내기] 버튼 클릭으로 폼 정보 로그 출력
+  const show = () => {
+    console.log(`${form.name}(${form.address.do}・${form.address.city})`);
+  };
+ 
+  return (
+    <form>
+      <div>
+        <label htmlFor="name">이름:</label>
+        <input id="name" name="name" type="text"
+          onChange={handleForm} value={form.name} />
+      </div>
+      <div>
+        <label htmlFor="do">주소(도):</label>
+        <input id="do" name="do" type="text"
+          onChange={handleFormNest} value={form.address.do} />
+      </div>
+      <div>
+        <label htmlFor="city">주소(시/군/구):</label>
+        <input id="city" name="city" type="text"
+          onChange={handleFormNest} value={form.address.city} />
+      </div>
+      <div>
+        <button type="button" onClick={show}>
+          보내기</button>
+      </div>
+    </form>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap04/StateNestImmer.js.html b/modern-react/my-react/coverage/lcov-report/src/chap04/StateNestImmer.js.html new file mode 100644 index 0000000..c24f9b2 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap04/StateNestImmer.js.html @@ -0,0 +1,244 @@ + + + + + + Code coverage report for src/chap04/StateNestImmer.js + + + + + + + + + +
+
+

All files / src/chap04 StateNestImmer.js

+
+ +
+ 0% + Statements + 0/10 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/6 +
+ + +
+ 0% + Lines + 0/10 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useImmer } from 'use-immer';
+ 
+export default function StateNestImmer() {
+  // 폼으로 취급하는 값을 State로 선언
+  const [form, setForm] = useImmer({
+    name: '홍길동',
+    address: {
+      city: '태안',
+      do: '충청남도'
+    }
+  });
+ 
+  // 1단계 요소를 업데이트하는 핸들러
+  const handleForm = e => {
+    setForm(form => {
+      form[e.target.name] = e.target.value;
+    });
+  };
+ 
+  // 2단계 요소를 업데이트하는 핸들러
+  const handleFormNest = e => {
+    setForm(form => {
+      form.address[e.target.name] = e.target.value;
+    });
+  };
+ 
+  const show = () => {
+    console.log(`${form.name}(${form.address.do}・${form.address.city})`);
+  };
+ 
+  return (
+    <form>
+      <div>
+        <label htmlFor="name">이름:</label>
+        <input id="name" name="name" type="text"
+          onChange={handleForm} value={form.name} />
+      </div>
+      <div>
+        <label htmlFor="do">주소(도):</label>
+        <input id="do" name="do" type="text"
+          onChange={handleFormNest} value={form.address.do} />
+      </div>
+      <div>
+        <label htmlFor="city">주소(시/군/구):</label>
+        <input id="city" name="city" type="text"
+          onChange={handleFormNest} value={form.address.city} />
+      </div>
+      <div>
+        <button type="button" onClick={show}>
+          보내기</button>
+      </div>
+    </form>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap04/StateNestImmer2.js.html b/modern-react/my-react/coverage/lcov-report/src/chap04/StateNestImmer2.js.html new file mode 100644 index 0000000..10dac23 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap04/StateNestImmer2.js.html @@ -0,0 +1,238 @@ + + + + + + Code coverage report for src/chap04/StateNestImmer2.js + + + + + + + + + +
+
+

All files / src/chap04 StateNestImmer2.js

+
+ +
+ 0% + Statements + 0/10 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/10 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useImmer } from 'use-immer';
+ 
+export default function StateNestImmer2() {
+  const [form, setForm] = useImmer({
+    name: '홍길동',
+    address: {
+      city: '태안',
+      do: '충청남도'
+    }
+  });
+ 
+  const handleNest = e => {
+    // 요소명을 ".으로 분해(요소 이름이 'xxxxxx.xxxxxx'라는 가정 하에)
+    const ns = e.target.name.split('.');
+    setForm(form => {
+      // 계층에 따라 대위임처를 변경한다.
+      if (ns.length === 1) {
+        form[ns[0]] = e.target.value;
+      } else {
+        form[ns[0]][ns[1]] = e.target.value;
+      }
+    });
+  };
+ 
+  const show = () => {
+    console.log(`${form.name}(${form.address.prefecture}・${form.address.city})`);
+  };
+ 
+  return (
+    <form>
+      <div>
+        <label htmlFor="name">이름:</label>
+        <input id="name" name="name" type="text"
+          onChange={handleNest} value={form.name} />
+      </div>
+      <div>
+        <label htmlFor="do">주소(도):</label>
+        <input id="do" name="address.do" type="text"
+          onChange={handleNest} value={form.address.do} />
+      </div>
+      <div>
+        <label htmlFor="city">주소(시/군/구):</label>
+        <input id="city" name="address.city" type="text"
+          onChange={handleNest} value={form.address.city} />
+      </div>
+      <div>
+        <button type="button" onClick={show}>
+          보내기</button>
+      </div>
+    </form>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap04/StateTodo.js.html b/modern-react/my-react/coverage/lcov-report/src/chap04/StateTodo.js.html new file mode 100644 index 0000000..ad866e4 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap04/StateTodo.js.html @@ -0,0 +1,997 @@ + + + + + + Code coverage report for src/chap04/StateTodo.js + + + + + + + + + +
+
+

All files / src/chap04 StateTodo.js

+
+ +
+ 0% + Statements + 0/9 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/9 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
// Code 4-2-7
+import { useState } from 'react';
+ 
+// Todo 항목 id의 최대값(등록할 때마다 증가)
+let maxId = 0;
+export default function StateTodo() {
+  // 입력값(title), 할 일 목록(todo)을 State로 관리
+  const [title, setTitle] = useState('');
+  const [todo, setTodo] = useState([]);
+ 
+  // 텍스트 상자에 입력한 내용을 State에 반영
+  const handleChangeTitle = e => {
+    setTitle(e.target.value);
+  };
+ 
+  const handleClick = () => {
+    // 새 할 일 추가하기
+    setTodo([
+      ...todo,
+      {
+        id: ++maxId, // id 값
+        title, // Todo 본체
+        created: new Date(), // 생성 날짜 및 시각
+        isDone: false // 실행 완료?
+      }
+    ]);
+  };
+ 
+  return (
+    <div>
+      <label>
+        해야 할 일:
+        <input type="text" name="title"
+          value={title} onChange={handleChangeTitle} />
+      </label>
+      <button type="button"
+        onClick={handleClick}>추가하기</button>
+      <hr />
+      {/* 할 일을 목록으로 정리하기 */}
+      <ul>
+        {todo.map(item => (
+          <li key={item.id}>{item.title}</li>
+          ))}
+      </ul>
+    </div>
+  );
+}
+ 
+ 
+ 
+// Code 4-2-9
+// import { useState } from 'react';
+// import './StateTodo.css';
+ 
+// let maxId = 0;
+// export default function StateTodo() {
+//   // 입력값(title), 할 일 목록(todo)을 State로 관리
+//   const [title, setTitle] = useState('');
+//   const [todo, setTodo] = useState([]);
+ 
+//   // 텍스트 상자에 입력한 내용을 State에 반영
+//   const handleChangeTitle = e => {
+//     setTitle(e.target.value);
+//   };
+ 
+//   const handleClick = () => {
+//     // 새 할 일 추가하기
+//     setTodo([
+//       ...todo,
+//       {
+//         id: ++maxId, // id 값
+//         title, // Todo 본체
+//         created: new Date(), // 생성 날짜 및 시각
+//         isDone: false // 실행 완료?
+//       }
+//     ]);
+//   };
+ 
+//   // [완료] 버튼으로 Todo 항목을 완료 상태로 변경
+//   const handleDone = e => {
+//     // todo 배열을 스캔하여 id 값이 같은 것을 검색한다.
+//     setTodo(todo.map(item => {
+//       if (item.id === Number(e.target.dataset.id)) {
+//         return {
+//           ...item,
+//           isDone: true
+//         };
+//       } else {
+//         return item;
+//       }
+//     }));
+//   };
+ 
+//   return (
+//     <div>
+//       <label>
+//         해야 할 일:
+//         <input type="text" name="title"
+//           value={title} onChange={handleChangeTitle} />
+//       </label>
+//       <button type="button"
+//         onClick={handleClick}>추가하기</button>
+//       {/* 할 일을 목록으로 정리하기 */}
+      
+//       <ul>
+//         {todo.map(item => (
+//           <li key={item.id}
+//             className={item.isDone ? 'done' : ''}>
+//             {item.title}
+//             <button type="button"
+//               onClick={handleDone} data-id={item.id}>완료
+//             </button>
+//           </li>
+//         ))}
+//       </ul>
+//     </div>
+//   );
+// }
+ 
+ 
+ 
+// Code 4-2-11
+// import { useState } from 'react';
+// import './StateTodo.css';
+ 
+// let maxId = 0;
+// export default function StateTodo() {
+//   // 입력값(title), 할 일 목록(todo)을 State로 관리
+//   const [title, setTitle] = useState('');
+//   const [todo, setTodo] = useState([]);
+ 
+//   // 텍스트 상자에 입력한 내용을 State에 반영
+//   const handleChangeTitle = e => {
+//     setTitle(e.target.value);
+//   };
+ 
+//   const handleClick = () => {
+//     // 새 할 일 추가하기
+//     setTodo([
+//       ...todo,
+//       {
+//         id: ++maxId, // id 값
+//         title, // Todo 본체
+//         created: new Date(), // 생성 날짜 및 시각
+//         isDone: false // 실행 완료?
+//       }
+//     ]);
+//   };
+ 
+//   // [완료] 버튼으로 Todo 항목을 완료 상태로 변경
+//   const handleDone = e => {
+//     // todo 배열을 스캔하여 id 값이 같은 것을 검색한다.
+//     setTodo(todo.map(item => {
+//       if (item.id === Number(e.target.dataset.id)) {
+//         return {
+//           ...item,
+//           isDone: true
+//         };
+//       } else {
+//         return item;
+//       }
+//     }));
+//   };
+ 
+//   // [삭제] 버튼으로 해당 Todo 항목을 삭제한다.
+//   const handleRemove = e => {
+//     setTodo(todo.filter(item =>
+//       item.id !== Number(e.target.dataset.id)
+//     ));
+//   };
+ 
+//   return (
+//     <div>
+//       <label>
+//         해야 할 일:
+//         <input type="text" name="title"
+//           value={title} onChange={handleChangeTitle} />
+//       </label>
+//       <button type="button"
+//         onClick={handleClick}>추가하기</button>
+//       <hr />
+//       {/* 할 일을 목록으로 정리하기 */}
+      
+//       <ul>
+//         {todo.map(item => (
+//           <li key={item.id}
+//             className={item.isDone ? 'done' : ''}>
+//             {item.title}
+//             <button type="button"
+//               onClick={handleDone} data-id={item.id}>완료
+//             </button>
+//             <button type="button"
+//               onClick={handleRemove} data-id={item.id}>삭제
+//             </button>
+//           </li>
+//         ))}
+//       </ul>
+//     </div>
+//   );
+// }
+ 
+ 
+ 
+// Code 4-2-12
+// import { useState } from 'react';
+// import './StateTodo.css';
+ 
+// let maxId = 0;
+// export default function StateTodo() {
+//   // 다음 정렬 방향 (내림차순인 경우 true)
+//   const [desc, setDesc] = useState(true);
+//   // 입력값(title), 할 일 목록(todo)을 State로 관리
+//   const [title, setTitle] = useState('');
+//   const [todo, setTodo] = useState([]);
+ 
+//   // 텍스트 상자에 입력한 내용을 State에 반영
+//   const handleChangeTitle = e => {
+//     setTitle(e.target.value);
+//   };
+ 
+//   const handleClick = () => {
+//     // 새 할 일 추가하기
+//     setTodo([
+//       ...todo,
+//       {
+//         id: ++maxId, // id 값
+//         title, // Todo 본체
+//         created: new Date(), // 생성 날짜 및 시각
+//         isDone: false // 실행 완료?
+//       }
+//     ]);
+//   };
+ 
+//   // [완료] 버튼으로 Todo 항목을 완료 상태로 변경
+//   const handleDone = e => {
+//     // todo 배열을 스캔하여 id 값이 같은 것을 검색한다.
+//     setTodo(todo.map(item => {
+//       if (item.id === Number(e.target.dataset.id)) {
+//         return {
+//           ...item,
+//           isDone: true
+//         };
+//       } else {
+//         return item;
+//       }
+//     }));
+//   };
+ 
+//   // [삭제] 버튼으로 해당 Todo 항목을 삭제한다.
+//   const handleRemove = e => {
+//     setTodo(todo.filter(item =>
+//       item.id !== Number(e.target.dataset.id)
+//     ));
+//   };
+ 
+//   const handleSort = e => {
+//     // 기존 Todo 목록을 복제하여 정렬하기
+//     const sorted = [...todo];
+//     sorted.sort((m, n) => {
+//       // desc 값에 따라 오름차순/내림차순 결정
+//       if (desc) {
+//         return n.created.getTime() - m.created.getTime();
+//       } else {
+//         return m.created.getTime() - n.created.getTime();
+//       }
+//     });
+//     // desc 값 반전
+//     setDesc(d => !d);
+//     // 정렬된 목록 재설정
+//     setTodo(sorted);
+//   };
+ 
+//   return (
+//     <div>
+//       <label>
+//         해야 할 일:
+//         <input type="text" name="title"
+//           value={title} onChange={handleChangeTitle} />
+//       </label>
+//       <button type="button"
+//         onClick={handleClick}>추가하기</button>
+//       {/* desc 값에 따라 캡션 변경 */}
+//       <button type="button"
+//         onClick={handleSort}>
+//          정렬({desc ? '↑' : '↓'})</button>
+//       <hr />
+ 
+//       {/* 할 일을 목록으로 정리하기 */}
+//       <ul>
+//         {todo.map(item => (
+//           <li key={item.id}
+//             className={item.isDone ? 'done' : ''}>
+//             {item.title}
+//             <button type="button"
+//               onClick={handleDone} data-id={item.id}>완료
+//             </button>
+//             <button type="button"
+//               onClick={handleRemove} data-id={item.id}>삭제
+//             </button>
+//           </li>
+//         ))}
+//       </ul>
+//     </div>
+//   );
+// }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap04/index.html b/modern-react/my-react/coverage/lcov-report/src/chap04/index.html new file mode 100644 index 0000000..bbc45be --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap04/index.html @@ -0,0 +1,356 @@ + + + + + + Code coverage report for src/chap04 + + + + + + + + + +
+
+

All files src/chap04

+
+ +
+ 0% + Statements + 0/148 +
+ + +
+ 0% + Branches + 0/10 +
+ + +
+ 0% + Functions + 0/72 +
+ + +
+ 0% + Lines + 0/142 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
FormBasic.js +
+
0%0/7100%0/00%0/30%0/5
FormCheck.js +
+
0%0/60%0/20%0/30%0/6
FormCheckMulti.js +
+
0%0/100%0/20%0/30%0/10
FormFile.js +
+
0%0/7100%0/00%0/20%0/7
FormList.js +
+
0%0/110%0/20%0/30%0/11
FormRadio.js +
+
0%0/6100%0/00%0/30%0/6
FormSelect.js +
+
0%0/6100%0/00%0/30%0/6
FormTextarea.js +
+
0%0/6100%0/00%0/30%0/6
FormYup.js +
+
0%0/150%0/20%0/60%0/13
FromKorean.js +
+
0%0/7100%0/00%0/30%0/5
StateForm.js +
+
0%0/6100%0/00%0/30%0/6
StateFormUC.js +
+
0%0/5100%0/00%0/20%0/5
StateNest.js +
+
0%0/8100%0/00%0/40%0/8
StateNestImmer.js +
+
0%0/10100%0/00%0/60%0/10
StateNestImmer2.js +
+
0%0/100%0/20%0/40%0/10
StateTodo.js +
+
0%0/9100%0/00%0/40%0/9
yup.kr.js +
+
0%0/19100%0/00%0/170%0/19
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap04/yup.kr.js.html b/modern-react/my-react/coverage/lcov-report/src/chap04/yup.kr.js.html new file mode 100644 index 0000000..d90e055 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap04/yup.kr.js.html @@ -0,0 +1,187 @@ + + + + + + Code coverage report for src/chap04/yup.kr.js + + + + + + + + + +
+
+

All files / src/chap04 yup.kr.js

+
+ +
+ 0% + Statements + 0/19 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/17 +
+ + +
+ 0% + Lines + 0/19 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import * as yup from 'yup';
+ 
+// 오류 메시지 정보 선언
+const krLocale = {
+  mixed: {
+    required: param => `${param.label}은/는 필수입니다.`,
+    oneOf: param => `${param.label}은/는 ${param.values} 중 하나여야 합니다.`,
+  },
+  string: {
+    length: param => `${param.label}은/는 ${param.length}글자여야 합니다.`,
+    min: param => `${param.label}은/는 ${param.min}글자 이상이어야 합니다.`,
+    max: param => `${param.label}은/는 ${param.max}글자 이하여야 합니다.`,
+    matches: param => `${param.label}은/는 ${param.regex} 형식과 일치해야 합니다.`,
+    email: param => `${param.label}은/는 이메일 주소 형식이어야 합니다.`,
+    url: param => `${param.label}은/는 URL 형식이어야 합니다.`,
+  },
+  number: {
+    min: param => `${param.label}은/는 ${param.min} 이상이어야 합니다.`,
+    max: param => `${param.label}은/는 ${param.max} 이하여야 합니다.`,
+    lessThan: param => `${param.label}은/는 ${param.less}보다 작아야 합니다.`,
+    moreThan: param => `${param.label}은/는 ${param.more}보다 커야 합니다.`,
+    positive: param => `${param.label}은/는 양수여야 합니다.`,
+    negative: param => `${param.label}은/는 음수여야 합니다.`,
+    integer: param => `${param.label}은/는 정수여야 합니다.`,
+  },
+  date: {
+    min: param => `${param.label}은/는 ${param.min}보다 미래여야 합니다.`,
+    max: param => `${param.label}은/는 ${param.max}보다 이전이어야 합니다.`,
+  },
+};
+ 
+// 메시지 정보 설정
+yup.setLocale(krLocale);
+// 설정된 Yup 내보내기
+export default yup;
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/EmotionComp.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/EmotionComp.js.html new file mode 100644 index 0000000..76899cc --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/EmotionComp.js.html @@ -0,0 +1,139 @@ + + + + + + Code coverage report for src/chap05/EmotionComp.js + + + + + + + + + +
+
+

All files / src/chap05 EmotionComp.js

+
+ +
+ 0% + Statements + 0/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
/** @jsxImportSource @emotion/react */
+import styled from '@emotion/styled';
+ 
+// 스타일링된 컴포넌트 준비
+const MyPanel = styled.div`
+  width: 300px;
+  padding: 10px;
+  border: 1px solid #000;
+  border-radius: 5px;
+  background-color: royalblue;
+  color: white;
+`;
+ 
+export default function EmotionComp() {
+  return (
+    // 준비된 구성 요소 배치
+    <MyPanel><b>Styled JSX</b>는 JSX 표현식에 스타일 정의를 삽입하는 형식의 라이브러리입니다.</MyPanel>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/EmotionJsx.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/EmotionJsx.js.html new file mode 100644 index 0000000..ac05327 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/EmotionJsx.js.html @@ -0,0 +1,283 @@ + + + + + + Code coverage report for src/chap05/EmotionJsx.js + + + + + + + + + +
+
+

All files / src/chap05 EmotionJsx.js

+
+ +
+ 0% + Statements + 0/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
/** @jsxImportSource @emotion/react */
+import { css } from '@emotion/react';
+ 
+export default function EmotionJsx() {
+  const styles = css`
+    width: 300px;
+    padding: 10px;
+    border: 1px solid #000;
+    border-radius: 5px;
+    background-color: royalblue;
+    color: white;
+  `;
+ 
+  return (
+    <div css={styles}><b>Styled JSX</b>는 JSX 표현식에 스타일 정의를 삽입하는 형식의 라이브러리입니다.</div>
+  );
+}
+ 
+ 
+ 
+ 
+// /** @jsxImportSource @emotion/react */
+// import { css } from '@emotion/react';
+ 
+// export default function EmotionJsx() {
+//   const styles = css({
+//     width: 300,
+//     padding: 10,
+//     border: '1px solid #000',
+//     borderRadius: 5,
+//     backgroundColor: 'royalblue',
+//     color: 'white',
+//   });
+ 
+//   const others = css({
+//     height: 150
+//   });
+ 
+//   return (
+//     <div css={[styles, others]}><b>Styled JSX</b>는 JSX 표현식에 스타일 정의를 삽입하는 형식의 라이브러리입니다.</div>
+//   );
+// }
+ 
+ 
+ 
+// /** @jsxImportSource @emotion/react */
+// import { css } from '@emotion/react';
+ 
+// export default function EmotionJsx() {
+//   const styles = css({
+//     width: 300,
+//     padding: 10,
+//     border: '1px solid #000',
+//     borderRadius: 5,
+//     backgroundColor: 'royalblue',
+//     color: 'white',
+//   });
+ 
+//   const plus = css`
+//     ${styles}
+//     margin: 20px;
+//   `;
+ 
+//   return (
+//     <div css={plus}><b>Styled JSX</b>는 JSX 표현식에 스타일 정의를 삽입하는 형식의 라이브러리입니다.</div>
+//   );
+// }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/ErrorEvent.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/ErrorEvent.js.html new file mode 100644 index 0000000..f7d9d47 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/ErrorEvent.js.html @@ -0,0 +1,172 @@ + + + + + + Code coverage report for src/chap05/ErrorEvent.js + + + + + + + + + +
+
+

All files / src/chap05 ErrorEvent.js

+
+ +
+ 0% + Statements + 0/3 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
export default function ErrorEvent() {
+  const handleClick = () => {
+    throw new Error('Error is occured in MyApp.');
+  };
+  return (
+    <button type="button" onClick={handleClick}>
+      오류 발사
+    </button>
+  );
+}
+ 
+ 
+// import { useErrorBoundary } from 'react-error-boundary';
+ 
+// export default function ErrorEvent() {
+//   const { showBoundary } = useErrorBoundary();
+//   const handleClick = () => {
+//     try {
+//       throw new Error('Error is occured in MyApp.');
+//     } catch(e) {
+//       // 핸들러 내에서 발생한 예외를 Error Boundary로 넘긴다.
+//       showBoundary(e);
+//     }
+//   };
+//   return (
+//     <button type="button" onClick={handleClick}>
+//       오류 발사
+//     </button>
+//   );
+// }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/ErrorEventRoot.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/ErrorEventRoot.js.html new file mode 100644 index 0000000..26f0f4f --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/ErrorEventRoot.js.html @@ -0,0 +1,166 @@ + + + + + + Code coverage report for src/chap05/ErrorEventRoot.js + + + + + + + + + +
+
+

All files / src/chap05 ErrorEventRoot.js

+
+ +
+ 0% + Statements + 0/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { ErrorBoundary } from 'react-error-boundary';
+import ErrorEvent from './ErrorEvent';
+ 
+export default function ErrorEventRoot() {
+  const handleFallback = ({ error, resetErrorBoundary }) => {
+    const handleClick = () => resetErrorBoundary();
+    return (
+      <div>
+        <h4>다음 오류가 발생했다.</h4>
+        <p>{error.message}</p>
+        <button type="button" onClick={handleClick}>
+          Retry
+        </button>
+      </div>
+    );
+  };
+  const handleReset = () => console.log('Retry!!');
+  return (
+    <>
+      <h3>Error Boundary의 기본</h3>
+      <ErrorBoundary
+        onReset={handleReset}
+        fallbackRender={handleFallback}>
+        <ErrorEvent />
+      </ErrorBoundary>
+    </>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/ErrorFallback.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/ErrorFallback.js.html new file mode 100644 index 0000000..80a2371 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/ErrorFallback.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for src/chap05/ErrorFallback.js + + + + + + + + + +
+
+

All files / src/chap05 ErrorFallback.js

+
+ +
+ 0% + Statements + 0/3 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12  +  +  +  +  +  +  +  +  +  +  + 
export default function ErrorFallback({ error, resetErrorBoundary }) {
+  const handleClick = () => resetErrorBoundary();
+  return (
+    <div>
+      <h4>다음 오류가 발생했습니다.</h4>
+      <p>{error.message}</p>
+      <button type="button" onClick={handleClick}>
+        Retry
+      </button>
+    </div>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/ErrorRetryRoot.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/ErrorRetryRoot.js.html new file mode 100644 index 0000000..0bd3505 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/ErrorRetryRoot.js.html @@ -0,0 +1,295 @@ + + + + + + Code coverage report for src/chap05/ErrorRetryRoot.js + + + + + + + + + +
+
+

All files / src/chap05 ErrorRetryRoot.js

+
+ +
+ 0% + Statements + 0/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { ErrorBoundary } from 'react-error-boundary';
+import ErrorRetryThrow from './ErrorRetryThrow';
+ 
+export default function ErrorRetryRoot() {
+  // 오류 발생 시 실행되는 처리
+  const handleFallback = ({ error, resetErrorBoundary }) => {
+    const handleClick = () => resetErrorBoundary();
+    return (
+      <div>
+        <h4>다음 오류가 발생했다.</h4>
+        <p>{error.message}</p>
+        <button type="button" onClick={handleClick}>
+          Retry
+        </button>
+      </div>
+    );
+  };
+  // 리셋 시 실행되는 처리
+  const handleReset = () => console.log('Retry!!');
+ 
+  return (
+    <>
+      <h3>Error Boundary의 기본</h3>
+      <ErrorBoundary
+        onReset={handleReset}
+        fallbackRender={handleFallback}
+      >
+        <ErrorRetryThrow />
+      </ErrorBoundary>
+    </>
+  );
+}
+ 
+ 
+ 
+// Code 5-3-10
+// import { ErrorBoundary } from 'react-error-boundary';
+// import ErrorRetryThrow from './ErrorRetryThrow';
+// import ErrorFallback from './ErrorFallback';
+ 
+// export default function ErrorRetryRoot() {
+//   // 오류 발생 시 실행되는 처리
+//   const handleFallback = ({ error, resetErrorBoundary }) => {
+//     const handleClick = () => resetErrorBoundary();
+//     return (
+//       <div>
+//         <h4>다음 오류가 발생했다.</h4>
+//         <p>{error.message}</p>
+//         <button type="button" onClick={handleClick}>
+//           Retry
+//         </button>
+//       </div>
+//     );
+//   };
+//   // 리셋 시 실행되는 처리
+//   const handleReset = () => console.log('Retry!!');
+ 
+//   return (
+//     <>
+//       <h3>Error Boundary의 기본</h3>
+//       {/* 오류 발생 시 렌더링 콘텐츠를 컴포넌트로 지정 */}
+//       <ErrorBoundary
+//         onReset={handleReset}
+//         fallbackRender={handleFallback}
+//         FallbackComponent={ErrorFallback}
+//       >
+//         <ErrorRetryThrow />
+//       </ErrorBoundary>
+//     </>
+//   );
+// }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/ErrorRetryThrow.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/ErrorRetryThrow.js.html new file mode 100644 index 0000000..9206e17 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/ErrorRetryThrow.js.html @@ -0,0 +1,109 @@ + + + + + + Code coverage report for src/chap05/ErrorRetryThrow.js + + + + + + + + + +
+
+

All files / src/chap05 ErrorRetryThrow.js

+
+ +
+ 0% + Statements + 0/3 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9  +  +  +  +  +  +  +  + 
export default function ErrorRetryThrow() {
+  // 60%의 확률로 오류 발생
+  if (Math.random() < 0.6) {
+    throw new Error('Error is occured in MyApp.');
+  }
+  return (
+    <p>잘 실행되었다.</p>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/ErrorRoot.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/ErrorRoot.js.html new file mode 100644 index 0000000..067aca3 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/ErrorRoot.js.html @@ -0,0 +1,178 @@ + + + + + + Code coverage report for src/chap05/ErrorRoot.js + + + + + + + + + +
+
+

All files / src/chap05 ErrorRoot.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { ErrorBoundary } from 'react-error-boundary';
+import ErrorThrow from './ErrorThrow';
+ 
+export default function ErrorRoot() {
+  return (
+    <>
+      <h3>Error Boundary의 기본</h3>
+      <ErrorBoundary fallback={<div>오류가 발생했다.</div>}>
+        <ErrorThrow />
+      </ErrorBoundary>
+    </>
+  );
+}
+ 
+ 
+ 
+// import { ErrorBoundary } from 'react-error-boundary';
+// import ErrorThrow from './ErrorThrow';
+ 
+// export default function ErrorRoot() {
+//   return (
+//     <>
+//       <h3>Error Boundary의 기본</h3>
+//       <ErrorBoundary
+//         onError={err => alert(err.message)}
+//         fallback={<div>오류가 발생했다.</div>}
+//       >
+//         <ErrorThrow />
+//       </ErrorBoundary>
+//     </>
+//   );
+// }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/ErrorThrow.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/ErrorThrow.js.html new file mode 100644 index 0000000..dc1cb49 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/ErrorThrow.js.html @@ -0,0 +1,106 @@ + + + + + + Code coverage report for src/chap05/ErrorThrow.js + + + + + + + + + +
+
+

All files / src/chap05 ErrorThrow.js

+
+ +
+ 0% + Statements + 0/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8  +  +  +  +  +  +  + 
export default function ErrorThrow() {
+  // 무조건 예외 발생
+  throw new Error('Error is occured in MyApp.');
+  return (
+    <p>잘 실행되었다.</p>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/HeavyUI.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/HeavyUI.js.html new file mode 100644 index 0000000..a16bcfb --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/HeavyUI.js.html @@ -0,0 +1,112 @@ + + + + + + Code coverage report for src/chap05/HeavyUI.js + + + + + + + + + +
+
+

All files / src/chap05 HeavyUI.js

+
+ +
+ 0% + Statements + 0/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10  +  +  +  +  +  +  +  +  + 
function sleep(delay) {
+  let start = Date.now();
+  while (Date.now() - start < delay);
+}
+ 
+// delay 밀리초 지연 발생
+export default function HeavyUI({ delay }) {
+  sleep(delay);
+  return <p>지연 시간은 {delay}밀리초</p>;
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/LazyBasic.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/LazyBasic.js.html new file mode 100644 index 0000000..131ce74 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/LazyBasic.js.html @@ -0,0 +1,184 @@ + + + + + + Code coverage report for src/chap05/LazyBasic.js + + + + + + + + + +
+
+

All files / src/chap05 LazyBasic.js

+
+ +
+ 0% + Statements + 0/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/5 +
+ + +
+ 0% + Lines + 0/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { Suspense, lazy } from 'react';
+ 
+// ms 밀리초의 지연을 발생시키는 sleep 함수
+const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
+// LazyButton 지연 로드
+const LazyButton = lazy(() => sleep(2000).then(() => import('./LazyButton')));
+ 
+export default function LazyBasic() {
+  // LazyButton이 로딩될 때까지 메시지를 표시한다.
+  return (
+    <Suspense fallback={<p>Now Loading...</p>}>
+      <LazyButton />
+    </Suspense>
+  );
+}
+ 
+ 
+// import { Suspense, lazy } from 'react';
+// import MyLoading from './MyLoading';
+ 
+// // ms 밀리초의 지연을 발생시키는 sleep 함수
+// const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
+// // LazyButton 지연 로드
+// const LazyButton = lazy(() => import('./LazyButton'));	
+ 
+// export default function LazyBasic() {
+//   // LazyButton이 로딩될 때까지 메시지를 표시한다.
+//   return (
+//     // 대기 상태에서는 MyLoading 컴포넌트를 표시한다.
+//     <Suspense fallback= {<MyLoading />}>
+//       <LazyButton />
+//     </Suspense>
+//   );
+// }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/LazyButton.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/LazyButton.js.html new file mode 100644 index 0000000..0bf7872 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/LazyButton.js.html @@ -0,0 +1,103 @@ + + + + + + Code coverage report for src/chap05/LazyButton.js + + + + + + + + + +
+
+

All files / src/chap05 LazyButton.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7  +  +  +  +  +  + 
export default function LazyButton() {
+  return (
+    <div>
+      <button id="btn">버튼1</button>
+    </div>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/LazyButton2.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/LazyButton2.js.html new file mode 100644 index 0000000..f40c9e6 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/LazyButton2.js.html @@ -0,0 +1,103 @@ + + + + + + Code coverage report for src/chap05/LazyButton2.js + + + + + + + + + +
+
+

All files / src/chap05 LazyButton2.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7  +  +  +  +  +  + 
export default function LazyButton2() {
+  return (
+    <div>
+      <button id="btn">버튼2</button>
+    </div>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/LazyMulti.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/LazyMulti.js.html new file mode 100644 index 0000000..ecb3a1d --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/LazyMulti.js.html @@ -0,0 +1,130 @@ + + + + + + Code coverage report for src/chap05/LazyMulti.js + + + + + + + + + +
+
+

All files / src/chap05 LazyMulti.js

+
+ +
+ 0% + Statements + 0/10 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/7 +
+ + +
+ 0% + Lines + 0/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { Suspense, lazy } from 'react';
+ 
+const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
+ 
+// 여러 컴포넌트 지연 로드
+const LazyButton = lazy(() => sleep(2000).then(() => import('./LazyButton')));
+const LazyButton2 = lazy(() => sleep(1000).then(() => import('./LazyButton2')));
+ 
+export default function LazyMulti() {
+  return (
+    <Suspense fallback={<p>Now Loading...</p>}>
+      <LazyButton />
+      <LazyButton2 />
+    </Suspense>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/MyLoading.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/MyLoading.js.html new file mode 100644 index 0000000..e182983 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/MyLoading.js.html @@ -0,0 +1,97 @@ + + + + + + Code coverage report for src/chap05/MyLoading.js + + + + + + + + + +
+
+

All files / src/chap05 MyLoading.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5  +  +  +  + 
export default function MyLoading() {
+    return (
+      <p>Now Loading...</p>
+    );
+  }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/PortalBasic.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/PortalBasic.js.html new file mode 100644 index 0000000..475d4fa --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/PortalBasic.js.html @@ -0,0 +1,169 @@ + + + + + + Code coverage report for src/chap05/PortalBasic.js + + + + + + + + + +
+
+

All files / src/chap05 PortalBasic.js

+
+ +
+ 0% + Statements + 0/5 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useState } from 'react';
+import { createPortal } from 'react-dom';
+import './PortalBasic.css';
+ 
+export default function PortalBasic() {
+  // 다이얼로그 창의 개폐 상태를 나타내는 State(false로 닫힌 상태)
+  const [show, setShow] = useState(false);
+  // 버튼 클릭 시 핸들러(State 켜기/끄기)
+  const handleDialog = () => setShow(s => !s);
+ 
+  return (
+    <form>
+      <button type="button" onClick={handleDialog}
+        disabled={show}>
+        다이얼로그 표시
+      </button>
+      {show && createPortal(
+        <div className="dialog">
+          <p>Portal에서 생성된 대화상자</p>
+          <button type="button" onClick={handleDialog}>
+            닫기
+          </button>
+        </div>,
+        document.getElementById('dialog')
+      )}
+    </form>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/ProfilerBasic.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/ProfilerBasic.js.html new file mode 100644 index 0000000..a4a5b4b --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/ProfilerBasic.js.html @@ -0,0 +1,151 @@ + + + + + + Code coverage report for src/chap05/ProfilerBasic.js + + + + + + + + + +
+
+

All files / src/chap05 ProfilerBasic.js

+
+ +
+ 0% + Statements + 0/8 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/8 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { Profiler } from 'react';
+import HeavyUI from './HeavyUI';
+ 
+export default function ProfilerBasic() {
+  // 성능 측정을 위한 함수(onRender 함수)
+  const handleMeasure = (id, phase, actualDuration,
+    baseDuration, startTime, endTime) => {
+    console.log('id: ', id);
+    console.log('phase: ', phase);
+    console.log('actualDuration: ', actualDuration);
+    console.log('baseDuration: ', baseDuration);
+    console.log('startTime: ', startTime);
+    console.log('endTime', endTime);
+  };
+ 
+  return (
+  <Profiler id="heavy" onRender={handleMeasure}>
+    <HeavyUI delay={1500} />
+    <HeavyUI delay={500} />
+    <HeavyUI delay={2000} />
+  </Profiler>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/StyledCommon.css.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/StyledCommon.css.js.html new file mode 100644 index 0000000..bafa335 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/StyledCommon.css.js.html @@ -0,0 +1,97 @@ + + + + + + Code coverage report for src/chap05/StyledCommon.css.js + + + + + + + + + +
+
+

All files / src/chap05 StyledCommon.css.js

+
+ +
+ 0% + Statements + 0/0 +
+ + +
+ 0% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/0 +
+ + +
+ 0% + Lines + 0/0 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5  +  +  +  + 
import { css } from 'styled-components';
+ 
+export default css`
+  margin: 20px;
+`;
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/StyledCommon.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/StyledCommon.js.html new file mode 100644 index 0000000..9a804fc --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/StyledCommon.js.html @@ -0,0 +1,136 @@ + + + + + + Code coverage report for src/chap05/StyledCommon.js + + + + + + + + + +
+
+

All files / src/chap05 StyledCommon.js

+
+ +
+ 0% + Statements + 0/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import styled from 'styled-components';
+import PanelBase from './StyledCommon.css';
+ 
+const MyPanel = styled.div`
+  ${PanelBase}
+  width: 300px;
+  padding: 10px;
+  border: 1px solid #000;
+  border-radius: 5px;
+  background-color: royalblue;
+  color: white;
+`;
+ 
+export default function StyledCommon() {
+  return (
+    <MyPanel><b>Styled JSX</b>는 JSX 표현식에 스타일 정의를 삽입하는 형식의 라이브러리입니다.</MyPanel>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/StyledComp.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/StyledComp.js.html new file mode 100644 index 0000000..f43e96d --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/StyledComp.js.html @@ -0,0 +1,133 @@ + + + + + + Code coverage report for src/chap05/StyledComp.js + + + + + + + + + +
+
+

All files / src/chap05 StyledComp.js

+
+ +
+ 0% + Statements + 0/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import styled from 'styled-components';
+ 
+// 표준 <div> 요소를 확장한 MyPanel 컴포넌트를 정의한다.
+const MyPanel = styled.div`
+  width: 300px;
+  padding: 10px;
+  border: 1px solid #000;
+  border-radius: 5px;
+  background-color: royalblue;
+  color: white;
+`;
+ 
+export default function StyledComp() {
+  return (
+    <MyPanel><b>Styled JSX</b>는 JSX 표현식에 스타일 정의를 삽입하는 형식의 라이브러리입니다.</MyPanel>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/StyledComp2.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/StyledComp2.js.html new file mode 100644 index 0000000..6e1305a --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/StyledComp2.js.html @@ -0,0 +1,142 @@ + + + + + + Code coverage report for src/chap05/StyledComp2.js + + + + + + + + + +
+
+

All files / src/chap05 StyledComp2.js

+
+ +
+ 0% + Statements + 0/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import styled from 'styled-components';
+ 
+// <button> 요소를 생성하는 MyButton 컴포넌트
+export function MyButton({ className, children }) {
+  return (
+    <button type="button" className={className}>
+      {children}
+    </button>
+  );
+}
+ 
+// MyButton에 스타일을 부여한 MyStyledButton을 정의한다.
+export const MyStyledButton = styled(MyButton)`
+  display: block;
+  background-color: royalblue;
+  color: white;
+  font-weight: bold;
+  width: 80px;
+  height: 50px;
+`;
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/StyledGlobal.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/StyledGlobal.js.html new file mode 100644 index 0000000..246879b --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/StyledGlobal.js.html @@ -0,0 +1,109 @@ + + + + + + Code coverage report for src/chap05/StyledGlobal.js + + + + + + + + + +
+
+

All files / src/chap05 StyledGlobal.js

+
+ +
+ 0% + Statements + 0/0 +
+ + +
+ 0% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/0 +
+ + +
+ 0% + Lines + 0/0 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9  +  +  +  +  +  +  +  + 
import { createGlobalStyle } from 'styled-components';
+ 
+export default createGlobalStyle`
+body {
+  margin: 0;
+  padding: 0;
+  background-color: Yellow;
+}
+`;
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/StyledProps.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/StyledProps.js.html new file mode 100644 index 0000000..69f7461 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/StyledProps.js.html @@ -0,0 +1,139 @@ + + + + + + Code coverage report for src/chap05/StyledProps.js + + + + + + + + + +
+
+

All files / src/chap05 StyledProps.js

+
+ +
+ 0% + Statements + 0/4 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import styled from 'styled-components';
+ 
+const MyPanel = styled.div`
+  width: 300px;
+  padding: 10px;
+  border: 1px solid #000;
+  color: white;
+  border-radius: ${ props => (props.theme.radius ? '10px' : '0px') };
+  background-color: ${ props => props.theme.color };
+`;
+ 
+export default function StyledProps({ theme }) {
+  return (
+    <MyPanel theme={{
+      radius: true,
+      color: 'royalblue'
+    }}><b>Styled JSX</b>는 JSX 표현식에 스타일 정의를 삽입하는 형식의 라이브러리입니다.</MyPanel>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/SuspenseResult.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/SuspenseResult.js.html new file mode 100644 index 0000000..602535d --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/SuspenseResult.js.html @@ -0,0 +1,112 @@ + + + + + + Code coverage report for src/chap05/SuspenseResult.js + + + + + + + + + +
+
+

All files / src/chap05 SuspenseResult.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10  +  +  +  +  +  +  +  +  + 
import { Suspense } from 'react';
+import ThrowResult from './ThrowResult';
+ 
+export default function SuspenseResult() {
+  return (
+    <Suspense fallback={<p>Now Loading...</p>}>
+      <ThrowResult />
+    </Suspense>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/SuspenseSimple.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/SuspenseSimple.js.html new file mode 100644 index 0000000..c8069cd --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/SuspenseSimple.js.html @@ -0,0 +1,112 @@ + + + + + + Code coverage report for src/chap05/SuspenseSimple.js + + + + + + + + + +
+
+

All files / src/chap05 SuspenseSimple.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10  +  +  +  +  +  +  +  +  + 
import { Suspense } from 'react';
+import ThrowPromise from './ThrowPromise';
+ 
+export default function SuspenseSimple() {
+  return (
+    <Suspense fallback={<p>Now Loading...</p>}>
+      <ThrowPromise />
+    </Suspense>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/ThrowPromise.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/ThrowPromise.js.html new file mode 100644 index 0000000..50ae25e --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/ThrowPromise.js.html @@ -0,0 +1,157 @@ + + + + + + Code coverage report for src/chap05/ThrowPromise.js + + + + + + + + + +
+
+

All files / src/chap05 ThrowPromise.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
export default function ThrowPromise() {
+  throw new Promise((resolve, reject) => { });
+}
+ 
+ 
+ 
+// Code 5-1-8
+// // Promise가 종료되었는지 여부를 나타내는 플래그 변수
+// let flag =  false;
+ 
+// export default function ThrowPromise() {
+//   // Promise가 완료되면 원래의 결과를 표시한다.
+//   if (flag) {
+//     return <p>올바르게 표시되었다.</p>;
+//   }
+//   // 로딩 중이라면 Promise를 던져라
+//   throw new Promise((resolve, reject) => {
+//     // 3000밀리초 후에 해결(resolve)하는 처리
+//     setTimeout(() => {
+//       flag = true;
+//       resolve('Susccess!!');
+//       // reject(new Error('Error is occurred!!'));
+//     }, 3000);
+//   });
+// }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/ThrowResult.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/ThrowResult.js.html new file mode 100644 index 0000000..6f2df21 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/ThrowResult.js.html @@ -0,0 +1,151 @@ + + + + + + Code coverage report for src/chap05/ThrowResult.js + + + + + + + + + +
+
+

All files / src/chap05 ThrowResult.js

+
+ +
+ 0% + Statements + 0/8 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/8 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import wrapPromise from "./wrapPromise";
+ 
+// Promise의 상태를 관리하는 오브젝트를 가져온다.
+const info = getInfo();
+// Promise의 상태에 따라 결과를 표시하는 컴포넌트
+export default function ThrowResult() {
+  const result = info.get();
+  return <p>{result}</p>;
+}
+ 
+// 비동기적으로 데이터를 취득하기 위한 함수
+function getInfo() {
+  return wrapPromise(new Promise((resolve, reject) => {
+    // 2000밀리초 후 50% 확률로 성공/실패 메시지를 생성한다.
+    setTimeout(() => {
+      if (Math.random() > 0.5) {
+        resolve('Succeeded!!');
+      } else {
+        reject('Error!!');
+      }
+    }, 2000);
+  }));
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/index.html b/modern-react/my-react/coverage/lcov-report/src/chap05/index.html new file mode 100644 index 0000000..75ea191 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/index.html @@ -0,0 +1,521 @@ + + + + + + Code coverage report for src/chap05 + + + + + + + + + +
+
+

All files src/chap05

+
+ +
+ 0% + Statements + 0/100 +
+ + +
+ 0% + Branches + 0/12 +
+ + +
+ 0% + Functions + 0/57 +
+ + +
+ 0% + Lines + 0/83 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
EmotionComp.js +
+
0%0/2100%0/00%0/10%0/2
EmotionJsx.js +
+
0%0/2100%0/00%0/10%0/2
ErrorEvent.js +
+
0%0/3100%0/00%0/20%0/3
ErrorEventRoot.js +
+
0%0/7100%0/00%0/40%0/5
ErrorFallback.js +
+
0%0/3100%0/00%0/20%0/2
ErrorRetryRoot.js +
+
0%0/7100%0/00%0/40%0/5
ErrorRetryThrow.js +
+
0%0/30%0/20%0/10%0/3
ErrorRoot.js +
+
0%0/1100%0/00%0/10%0/1
ErrorThrow.js +
+
0%0/2100%0/00%0/10%0/2
HeavyUI.js +
+
0%0/4100%0/00%0/20%0/4
LazyBasic.js +
+
0%0/7100%0/00%0/50%0/3
LazyButton.js +
+
0%0/1100%0/00%0/10%0/1
LazyButton2.js +
+
0%0/1100%0/00%0/10%0/1
LazyMulti.js +
+
0%0/10100%0/00%0/70%0/4
MyLoading.js +
+
0%0/1100%0/00%0/10%0/1
PortalBasic.js +
+
0%0/50%0/20%0/30%0/3
ProfilerBasic.js +
+
0%0/8100%0/00%0/20%0/8
StyledCommon.css.js +
+
0%0/00%0/00%0/00%0/0
StyledCommon.js +
+
0%0/2100%0/00%0/10%0/2
StyledComp.js +
+
0%0/2100%0/00%0/10%0/2
StyledComp2.js +
+
0%0/2100%0/00%0/10%0/2
StyledGlobal.js +
+
0%0/00%0/00%0/00%0/0
StyledProps.js +
+
0%0/40%0/20%0/30%0/4
SuspenseResult.js +
+
0%0/1100%0/00%0/10%0/1
SuspenseSimple.js +
+
0%0/1100%0/00%0/10%0/1
ThrowPromise.js +
+
0%0/1100%0/00%0/20%0/1
ThrowResult.js +
+
0%0/80%0/20%0/40%0/8
wrapPromise.js +
+
0%0/120%0/40%0/40%0/12
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap05/wrapPromise.js.html b/modern-react/my-react/coverage/lcov-report/src/chap05/wrapPromise.js.html new file mode 100644 index 0000000..4949b21 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap05/wrapPromise.js.html @@ -0,0 +1,184 @@ + + + + + + Code coverage report for src/chap05/wrapPromise.js + + + + + + + + + +
+
+

All files / src/chap05 wrapPromise.js

+
+ +
+ 0% + Statements + 0/12 +
+ + +
+ 0% + Branches + 0/4 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/12 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
export default function wrapPromise(promise) {
+  // Promise 상태 관리(pending, fullfilled, rejected)
+  let status = 'pending';
+  // Promise에서 받은 데이터
+  let data;
+  // 원래의 Promise에 후처리 부여
+  let wrapper = promise.then(
+    // 성공 시 status를 fulfilled(성공), data에 취득한 데이터를 설정한다.
+    result => {
+      status = 'fulfilled';
+      data = result;
+    },
+    // 실패 시 status를 rejected(실패), data에 에러 오브젝트를 설정한다.
+    e => {
+      status = 'rejected';
+      data = e;
+    }
+  );
+  // 반환값은 Promise의 상태에 따라 값을 반환하는 get 메서드를 가진 객체다.
+  return {
+    get() {
+      switch(status) {
+        case 'fulfilled':
+          return data;    // 성공 시 실제 데이터를 반환한다.
+        case 'rejected':  
+          throw data;     // 실패 시 에러 발생
+        case 'pending':   
+          throw wrapper;  // 완료하기 전에 Promise를 던져라.
+        default:
+          break;
+      }
+    }
+  };
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap06/FormMui.js.html b/modern-react/my-react/coverage/lcov-report/src/chap06/FormMui.js.html new file mode 100644 index 0000000..52bc3b7 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap06/FormMui.js.html @@ -0,0 +1,328 @@ + + + + + + Code coverage report for src/chap06/FormMui.js + + + + + + + + + +
+
+

All files / src/chap06 FormMui.js

+
+ +
+ 0% + Statements + 0/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { Button, FormControl, FormControlLabel, FormHelperText,
+  FormLabel, Radio, RadioGroup, TextField } from '@mui/material';
+import { useForm } from 'react-hook-form';
+ 
+export default function FormMui() {
+  const defaultValues = {
+    name: '홍길동',
+    email: 'admin@example.com',
+    gender: 'male',
+    memo: ''
+  };
+ 
+  const { register, handleSubmit, formState: { errors } } = useForm({
+    defaultValues
+  });
+  const onsubmit = data => console.log(data);
+  const onerror = err => console.log(err);
+ 
+  return (
+    <form onSubmit={handleSubmit(onsubmit, onerror)} noValidate>
+      <div>
+        <TextField label="이름" margin="normal"
+          {...register('name', {
+            required: '이름은 필수 입력 항목입니다.',
+            maxLength: {
+              value: 20,
+              message: '이름은 20자 이내로 작성해 주세요'
+            }
+          })}
+          error={'name' in errors}
+          helperText={errors.name?.message} />
+      </div>
+      <div>
+        <FormControl>
+          <FormLabel component="legend">성별:</FormLabel>
+          <RadioGroup name="gender">
+            <FormControlLabel value="male" control={<Radio />} label="남성"
+              {...register('gender', {
+                required: '성별은 필수입니다.',
+              })}
+            />
+            <FormControlLabel value="female" control={<Radio />} label="여성"
+              {...register('gender', {
+                required: '성별은 필수입니다.',
+              })}
+            />
+          </RadioGroup>
+          <FormHelperText error={'gender' in errors}>
+            {errors.gender?.message}
+          </FormHelperText>
+        </FormControl>
+      </div>
+      <div>
+        <TextField type="email" label="이메일 주소" margin="normal"
+          {...register('email', {
+            required: '이메일 주소는 필수 입력 항목입니다.',
+            pattern: {
+              value: /([a-z\d+\-.]+)@([a-z\d-]+(?:\.[a-z]+)*)/i,
+              message: '이메일 주소 형식이 잘못됐습니다.'
+            }
+          })}
+          error={'email' in errors}
+          helperText={errors.email?.message} />
+      </div>
+      <div>
+        <TextField label="비고" margin="normal" multiline
+          {...register('memo', {
+            required: '비고는 필수 입력 항목입니다.',
+            minLength: {
+              value: 10,
+              message: '비고는 10자 이상으로 작성해 주세요.'
+            },
+          })}
+          error={'memo' in errors}
+          helperText={errors.memo?.message} />
+      </div>
+      <div>
+        <Button variant="contained" type="submit">제출하기</Button>
+      </div>
+    </form>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap06/MaterialBasic.js.html b/modern-react/my-react/coverage/lcov-report/src/chap06/MaterialBasic.js.html new file mode 100644 index 0000000..6c4c8b5 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap06/MaterialBasic.js.html @@ -0,0 +1,217 @@ + + + + + + Code coverage report for src/chap06/MaterialBasic.js + + + + + + + + + +
+
+

All files / src/chap06 MaterialBasic.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { Button } from '@mui/material';
+ 
+export default function MaterialBasic() {
+  return (
+    <>
+    <Button variant="text">Text</Button>
+    <Button variant="contained">Contained</Button>
+    <Button variant="outlined">Outlined</Button>
+    </>
+  );
+}
+ 
+ 
+// import { Button } from '@mui/material';
+ 
+// export default function MaterialBasic() {
+//   return (
+//     <>
+//     <Button variant="text" color="secondary">Text</Button>
+//     <Button variant="contained" color="secondary">Contained</Button>
+//     <Button variant="outlined" color="secondary">Outlined</Button>
+//     </>
+//   );
+// }
+ 
+ 
+ 
+// Code 6-1-3
+// /** @jsxImportSource @emotion/react */
+// import { css } from '@emotion/react';
+// import { Button } from '@mui/material';
+ 
+// export default function MaterialBasic() {
+//   // 텍스트 대/소문자 변환을 비활성화하다.
+//   const font = css`
+//     text-transform: none;
+//   `;
+//   return (
+//     <>
+//     <Button variant="text" css={font}>Text</Button>
+//     <Button variant="contained" css={font}>Contained</Button>
+//     <Button variant="outlined" css={font}>Outlined</Button>
+//     </>
+//   );
+// }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap06/MaterialDrawer.js.html b/modern-react/my-react/coverage/lcov-report/src/chap06/MaterialDrawer.js.html new file mode 100644 index 0000000..6abce6e --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap06/MaterialDrawer.js.html @@ -0,0 +1,211 @@ + + + + + + Code coverage report for src/chap06/MaterialDrawer.js + + + + + + + + + +
+
+

All files / src/chap06 MaterialDrawer.js

+
+ +
+ 0% + Statements + 0/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useState } from 'react';
+import { Home, Mail, Info, AccountTree } from '@mui/icons-material';
+import { Box, Button, Drawer, List, ListItem, ListItemButton,
+  ListItemText, ListItemIcon } from '@mui/material';
+ 
+// 표시용 메뉴 정보 준비
+const menu = [
+  { title: '홈', href: 'home.html', icon: Home },
+  { title: 'Contact Us', href: 'contact.html', icon: Mail },
+  { title: '회사 소개', href: 'company.html', icon: Info  },
+  { title: '사이트맵', href: 'sitemap.html', icon: AccountTree },
+];
+ 
+export default function MaterialDrawer() {
+  // 드로워 개폐를 위한 플래그
+  const [show, setShow] = useState(false);
+  // 버튼 클릭 시 호출되는 핸들러 (show를 반전)
+  const handleDraw = () => setShow(!show);
+ 
+  return (
+    <>
+    <Button onClick={handleDraw}>드로워</Button>
+    <Drawer anchor="left" open={show}>
+      <Box sx={{ height: '100vh' }} onClick={handleDraw}>
+      <List>
+      {/* 미리 준비된 배열을 메뉴로 확장 */}
+      {menu.map(obj => {
+        const Icon = obj.icon;
+        return (
+        <ListItem key={obj.title}>
+          <ListItemButton href={obj.href}>
+            <ListItemIcon><Icon /></ListItemIcon>
+            <ListItemText primary={obj.title} />
+          </ListItemButton>
+        </ListItem>
+        );
+      })}
+      </List>
+      </Box>
+    </Drawer>
+    </>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap06/MaterialGrid.js.html b/modern-react/my-react/coverage/lcov-report/src/chap06/MaterialGrid.js.html new file mode 100644 index 0000000..5349e3b --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap06/MaterialGrid.js.html @@ -0,0 +1,214 @@ + + + + + + Code coverage report for src/chap06/MaterialGrid.js + + + + + + + + + +
+
+

All files / src/chap06 MaterialGrid.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { Button } from '@mui/material';
+import Grid from '@mui/material/Unstable_Grid2';
+ 
+export default function MaterialGrid() {
+  return (
+  <Grid container spacing={2}>
+    <Grid xs={6}>
+       <Button variant="contained" fullWidth>1</Button>
+    </Grid>
+    <Grid xs={2}>
+       <Button variant="contained" fullWidth>2</Button>
+    </Grid>
+    <Grid xs={3}>
+       <Button variant="contained" fullWidth>3</Button>
+    </Grid>
+    <Grid xs={12}>
+       <Button variant="contained" fullWidth>4</Button>
+    </Grid>
+  </Grid>
+  );
+}
+ 
+ 
+// import { Button } from '@mui/material';
+// import Grid from '@mui/material/Unstable_Grid2';
+ 
+// export default function MaterialGrid() {
+//   return (
+//   <Grid container spacing={2}>
+//     <Grid xs={12} sm={9} md={6}>
+//       <Button variant="contained" fullWidth>1</Button>
+//     </Grid>
+//     <Grid xs={12} sm={3} md={2}>
+//       <Button variant="contained" fullWidth>2</Button>
+//     </Grid>
+//     <Grid xs={12} sm={4} md={3}>
+//       <Button variant="contained" fullWidth>3</Button>
+//     </Grid>
+//     <Grid xs={12}>
+//       <Button variant="contained" fullWidth>4</Button>
+//     </Grid>
+//   </Grid>
+//   );
+// }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap06/MaterialMode.js.html b/modern-react/my-react/coverage/lcov-report/src/chap06/MaterialMode.js.html new file mode 100644 index 0000000..14fe863 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap06/MaterialMode.js.html @@ -0,0 +1,361 @@ + + + + + + Code coverage report for src/chap06/MaterialMode.js + + + + + + + + + +
+
+

All files / src/chap06 MaterialMode.js

+
+ +
+ 0% + Statements + 0/6 +
+ + +
+ 0% + Branches + 0/4 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useState } from 'react';
+import { createTheme, ThemeProvider } from '@mui/material/styles';
+import { amber, grey } from '@mui/material/colors';
+import { CssBaseline, Button, useMediaQuery } from '@mui/material';
+ 
+export default function MaterialMode() {
+  // const mode = useMediaQuery('(prefers-color-scheme: dark)') ?
+  //   'dark' : 'light';
+ 
+  // 현재 모드를 관리하는 State
+  const [mode, setMode] = useState('light');
+  // State 값 mode를 light⇔dark으로 반전
+  const toggleMode = () => setMode(prev =>
+    prev === 'light' ? 'dark' : 'light'
+  );
+  // 테마 정의
+  const theme = createTheme({
+    palette: {
+      mode,
+      // mode 값에 따라 테마 전환
+      ...(mode === 'light'
+      // 라이트 모드에서 사용하는 팔레트
+      ? {
+          primary: amber,
+        }
+      // 다크 모드에서 사용하는 팔레트     
+      : {
+        primary: {
+          main: grey[500],
+          contrastText: '#fff'
+        },
+        background: {
+          default: grey[900],
+          paper: grey[900],
+        },
+      }),
+    },
+  });
+ 
+  return (
+    <ThemeProvider theme={theme}>
+      <CssBaseline />
+      <Button variant="contained" onClick={toggleMode}>
+        Mode {mode}
+      </Button>
+    </ThemeProvider>
+  );
+}
+ 
+ 
+ 
+// import { useState } from 'react';
+// import { createTheme, ThemeProvider } from '@mui/material/styles';
+// import { amber, grey } from '@mui/material/colors';
+// import { CssBaseline, Button, useMediaQuery } from '@mui/material';
+ 
+// export default function MaterialMode() {
+//   const mode = useMediaQuery('(prefers-color-scheme: dark)') ?
+//     'dark' : 'light';
+ 
+//   // 테마 정의
+//   const theme = createTheme({
+//     palette: {
+//       mode,
+//       // mode 값에 따라 테마 전환
+//       ...(mode === 'light'
+//       // 라이트 모드에서 사용하는 팔레트
+//       ? {
+//           primary: amber,
+//         }
+//       // 다크 모드에서 사용하는 팔레트     
+//       : {
+//         primary: {
+//           main: grey[500],
+//           contrastText: '#fff'
+//         },
+//         background: {
+//           default: grey[900],
+//           paper: grey[900],
+//         },
+//       }),
+//     },
+//   });
+ 
+//   return (
+//     <ThemeProvider theme={theme}>
+//       <CssBaseline />
+//       <Button variant="contained">
+//         Mode {mode}
+//       </Button>
+//     </ThemeProvider>
+//   );
+// }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap06/MyButton.js.html b/modern-react/my-react/coverage/lcov-report/src/chap06/MyButton.js.html new file mode 100644 index 0000000..f99f185 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap06/MyButton.js.html @@ -0,0 +1,664 @@ + + + + + + Code coverage report for src/chap06/MyButton.js + + + + + + + + + +
+
+

All files / src/chap06 MyButton.js

+
+ +
+ 0% + Statements + 0/3 +
+ + +
+ 0% + Branches + 0/8 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
// import '../stories/button.css';
+ 
+// export default function MyButton ({
+//     primary = false,
+//     backgroundColor = null,
+//     size = 'medium',
+//     label = 'Button',
+//     ...props
+//   }) {
+//   // primary 속성에 따라 스타일 클래스 결정
+//   const mode = primary ?
+//     'storybook-button--primary' : 'storybook-button--secondary';
+//   return (
+//     // Props를 기반으로 button 요소를 조립
+//     <button
+//       type="button"
+//       className={['storybook-button', `storybook-button--${size}`, mode].join(' ')}
+//       style={backgroundColor && { backgroundColor }}
+//       {...props}
+//     >
+//       {label}
+//     </button>
+//   );
+// };
+ 
+ 
+ 
+// Code 6-2-6
+// import PropTypes from 'prop-types';
+// import '../stories/button.css';
+ 
+// /**
+//  * 속성 설정에 따라 다양한 버튼 생성
+//  */
+// export default function MyButton ({
+//     primary = false,
+//     backgroundColor = null,
+//     size = 'medium',
+//     label = 'Button',
+//     ...props
+//   }) {
+//   // primary 속성에 따라 스타일 클래스 결정
+//   const mode = primary ?
+//     'storybook-button--primary' : 'storybook-button--secondary';
+//   return (
+//     // Props를 기반으로 button 요소를 조립
+//     <button
+//       type="button"
+//       className={['storybook-button', `storybook-button--${size}`, mode].join(' ')}
+//       style={backgroundColor && { backgroundColor }}
+//       {...props}
+//     >
+//       {label}
+//     </button>
+//   );
+// };
+ 
+// // Props의 타입 정보 선언
+//   /**
+//    * Primary 색상 활성화 여부
+//    */
+// MyButton.propTypes = {
+//   primary: PropTypes.bool,
+//   /**
+//    * 배경색
+//    */
+//   backgroundColor: PropTypes.string,
+//   /**
+//    * 버튼 크기
+//    */
+//   size: PropTypes.oneOf(['small', 'medium', 'large']),
+//   /**
+//    * 버튼 캡션
+//    */
+//   label: PropTypes.string.isRequired,
+//   /**
+//    * 클릭 핸들러
+//    */
+//   onClick: PropTypes.func,
+// };
+ 
+ 
+ 
+// Code 6-2-10
+import PropTypes from 'prop-types';
+import '../stories/button.css';
+ 
+/**
+ * 속성 설정에 따라 다양한 버튼 생성
+ */
+export default function MyButton ({
+    primary = false,
+    backgroundColor = null,
+    size = 'medium',
+    label = 'Button',
+    handleClick,
+    ...props
+  }) {
+  // primary 속성에 따라 스타일 클래스 결정
+  const mode = primary ?
+    'storybook-button--primary' : 'storybook-button--secondary';
+  return (
+    // Props를 기반으로 button 요소를 조립
+    <button
+      type="button"
+      className={['storybook-button', `storybook-button--${size}`, mode].join(' ')}
+      style={backgroundColor && { backgroundColor }}
+      onClick={handleClick}
+      {...props}
+    >
+      {label}
+    </button>
+  );
+};
+ 
+// Props의 타입 정보 선언
+  /**
+   * Primary 색상 활성화 여부
+   */
+MyButton.propTypes = {
+  primary: PropTypes.bool,
+  /**
+   * 배경색
+   */
+  backgroundColor: PropTypes.string,
+  /**
+   * 버튼 크기
+   */
+  size: PropTypes.oneOf(['small', 'medium', 'large']),
+  /**
+   * 버튼 캡션
+   */
+  label: PropTypes.string.isRequired,
+  /**
+   * 클릭 핸들러
+   */
+  handleClick: PropTypes.func,
+};
+ 
+// import PropTypes from 'prop-types';
+// import '../stories/button.css';
+ 
+// /**
+//  * 属性の設定に応じて種々のボタンを生成
+//  */
+// export default function MyButton ({
+//     primary = false,
+//     backgroundColor = null,
+//     size = 'medium',
+//     label = 'Button',
+//     // handleClick,
+//     ...props
+//   }) {
+//   // primary 속성에 따라 스타일 클래스 결정
+//   const mode = primary ?
+//     'storybook-button--primary' : 'storybook-button--secondary';
+//   return (
+//     // Props를 기반으로 button 요소를 조립
+//     <button
+//       type="button"
+//       className={['storybook-button', `storybook-button--${size}`, mode].join(' ')}
+//       style={backgroundColor && { backgroundColor }}
+//       // onClick={handleClick}
+//       {...props}
+//     >
+//       {label}
+//     </button>
+//   );
+// };
+ 
+// // Propsの型情報を宣言
+//   /**
+//    * Primaryカラーを有効にするか
+//    */
+// MyButton.propTypes = {
+//   primary: PropTypes.bool,
+//   /**
+//    * 背景色
+//    */
+//   backgroundColor: PropTypes.string,
+//   /**
+//    * ボタンの大きさ
+//    */
+//   size: PropTypes.oneOf(['small', 'medium', 'large']),
+//   /**
+//    * ボタンのキャプション
+//    */
+//   label: PropTypes.string.isRequired,
+//   /**
+//    * clickハンドラー
+//    */
+//   onClick: PropTypes.func,
+//   // handleClick: PropTypes.func,
+// };
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap06/MyButton.stories.js.html b/modern-react/my-react/coverage/lcov-report/src/chap06/MyButton.stories.js.html new file mode 100644 index 0000000..e40b3fb --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap06/MyButton.stories.js.html @@ -0,0 +1,3253 @@ + + + + + + Code coverage report for src/chap06/MyButton.stories.js + + + + + + + + + +
+
+

All files / src/chap06 MyButton.stories.js

+
+ +
+ 0% + Statements + 0/5 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +450 +451 +452 +453 +454 +455 +456 +457 +458 +459 +460 +461 +462 +463 +464 +465 +466 +467 +468 +469 +470 +471 +472 +473 +474 +475 +476 +477 +478 +479 +480 +481 +482 +483 +484 +485 +486 +487 +488 +489 +490 +491 +492 +493 +494 +495 +496 +497 +498 +499 +500 +501 +502 +503 +504 +505 +506 +507 +508 +509 +510 +511 +512 +513 +514 +515 +516 +517 +518 +519 +520 +521 +522 +523 +524 +525 +526 +527 +528 +529 +530 +531 +532 +533 +534 +535 +536 +537 +538 +539 +540 +541 +542 +543 +544 +545 +546 +547 +548 +549 +550 +551 +552 +553 +554 +555 +556 +557 +558 +559 +560 +561 +562 +563 +564 +565 +566 +567 +568 +569 +570 +571 +572 +573 +574 +575 +576 +577 +578 +579 +580 +581 +582 +583 +584 +585 +586 +587 +588 +589 +590 +591 +592 +593 +594 +595 +596 +597 +598 +599 +600 +601 +602 +603 +604 +605 +606 +607 +608 +609 +610 +611 +612 +613 +614 +615 +616 +617 +618 +619 +620 +621 +622 +623 +624 +625 +626 +627 +628 +629 +630 +631 +632 +633 +634 +635 +636 +637 +638 +639 +640 +641 +642 +643 +644 +645 +646 +647 +648 +649 +650 +651 +652 +653 +654 +655 +656 +657 +658 +659 +660 +661 +662 +663 +664 +665 +666 +667 +668 +669 +670 +671 +672 +673 +674 +675 +676 +677 +678 +679 +680 +681 +682 +683 +684 +685 +686 +687 +688 +689 +690 +691 +692 +693 +694 +695 +696 +697 +698 +699 +700 +701 +702 +703 +704 +705 +706 +707 +708 +709 +710 +711 +712 +713 +714 +715 +716 +717 +718 +719 +720 +721 +722 +723 +724 +725 +726 +727 +728 +729 +730 +731 +732 +733 +734 +735 +736 +737 +738 +739 +740 +741 +742 +743 +744 +745 +746 +747 +748 +749 +750 +751 +752 +753 +754 +755 +756 +757 +758 +759 +760 +761 +762 +763 +764 +765 +766 +767 +768 +769 +770 +771 +772 +773 +774 +775 +776 +777 +778 +779 +780 +781 +782 +783 +784 +785 +786 +787 +788 +789 +790 +791 +792 +793 +794 +795 +796 +797 +798 +799 +800 +801 +802 +803 +804 +805 +806 +807 +808 +809 +810 +811 +812 +813 +814 +815 +816 +817 +818 +819 +820 +821 +822 +823 +824 +825 +826 +827 +828 +829 +830 +831 +832 +833 +834 +835 +836 +837 +838 +839 +840 +841 +842 +843 +844 +845 +846 +847 +848 +849 +850 +851 +852 +853 +854 +855 +856 +857 +858 +859 +860 +861 +862 +863 +864 +865 +866 +867 +868 +869 +870 +871 +872 +873 +874 +875 +876 +877 +878 +879 +880 +881 +882 +883 +884 +885 +886 +887 +888 +889 +890 +891 +892 +893 +894 +895 +896 +897 +898 +899 +900 +901 +902 +903 +904 +905 +906 +907 +908 +909 +910 +911 +912 +913 +914 +915 +916 +917 +918 +919 +920 +921 +922 +923 +924 +925 +926 +927 +928 +929 +930 +931 +932 +933 +934 +935 +936 +937 +938 +939 +940 +941 +942 +943 +944 +945 +946 +947 +948 +949 +950 +951 +952 +953 +954 +955 +956 +957 +958 +959 +960 +961 +962 +963 +964 +965 +966 +967 +968 +969 +970 +971 +972 +973 +974 +975 +976 +977 +978 +979 +980 +981 +982 +983 +984 +985 +986 +987 +988 +989 +990 +991 +992 +993 +994 +995 +996 +997 +998 +999 +1000 +1001 +1002 +1003 +1004 +1005 +1006 +1007 +1008 +1009 +1010 +1011 +1012 +1013 +1014 +1015 +1016 +1017 +1018 +1019 +1020 +1021 +1022 +1023 +1024 +1025 +1026 +1027 +1028 +1029 +1030 +1031 +1032 +1033 +1034 +1035 +1036 +1037 +1038 +1039 +1040 +1041 +1042 +1043 +1044 +1045 +1046 +1047 +1048 +1049 +1050 +1051 +1052 +1053 +1054 +1055 +1056 +1057  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import MyButton from './MyButton';
+ 
+// 기본 정보 선언
+export default {
+  title: 'MyApp/MyButton',
+  component: MyButton,
+};
+ 
+// Index, White 스토리 추가
+export const Index = {
+  render: () => <MyButton primary size="medium" label="버튼"
+    onClick={() => console.log('Hello, Storybook!!')}/>
+};
+ 
+export const White = {
+  render: () => <MyButton size="small" label="버튼"
+    backgroundColor="#fff" />
+};
+ 
+ 
+ 
+// Code 6-2-4
+// import MyButton from './MyButton';
+ 
+// // 기본 정보 선언
+// export default {
+//   title: 'MyApp/MyButton',
+//   component: MyButton
+// };
+ 
+// // Index, White 스토리 추가
+// export const Index = {
+//   // render: args => <MyButton {...args} />,
+//   args: {
+//     primary: true,
+//     size: 'medium',
+//     label: '버튼',
+//     onClick: () => console.log('Hello, Storybook!!')
+//   }
+// };
+ 
+// export const White = {
+//   args: {
+//     size: 'small',
+//     label: '버튼',
+//     backgroundColor: '#fff'
+//   }
+// };
+ 
+ 
+ 
+// Code 6-2-5
+// import MyButton from './MyButton';
+ 
+// // 기본 정보 선언
+// export default {
+//   title: 'MyApp/MyButton',
+//   component: MyButton
+// };
+ 
+// // Index, White 스토리 추가
+// export const Index = {
+//   // render: args => <MyButton {...args} />,
+//   args: {
+//     primary: true,
+//     size: 'medium',
+//     label: '버튼',
+//     onClick: () => console.log('Hello, Storybook!!')
+//   }
+// };
+ 
+// export const White = {
+//   args: {
+//     size: 'small',
+//     label: '버튼',
+//     backgroundColor: '#fff'
+//   }
+// };
+ 
+// export const Yellow = {
+//   args: {
+//     ...White.args,
+//     backgroundColor: 'lightyellow'
+//   }
+// };
+ 
+ 
+ 
+// Code 6-2-5
+// import MyButton from './MyButton';
+ 
+// // 기본 정보 선언
+// export default {
+//   title: 'MyApp/MyButton',
+//   component: MyButton,
+//   args: {
+//     label: 'Push!!',
+//   },
+// };
+ 
+// // Index, White 스토리 추가
+// export const Index = {
+//   // render: args => <MyButton {...args} />,
+//   args: {
+//     primary: true,
+//     size: 'medium',
+//     label: '버튼',
+//     onClick: () => console.log('Hello, Storybook!!')
+//   }
+// };
+ 
+// export const White = {
+//   args: {
+//     size: 'small',
+//     label: '버튼',
+//     backgroundColor: '#fff'
+//   }
+// };
+ 
+// export const Yellow = {
+//   args: {
+//     ...White.args,
+//     backgroundColor: 'lightyellow'
+//   }
+// };
+ 
+ 
+ 
+// Code 6-2-7
+// import MyButton from './MyButton';
+ 
+// // 기본 정보 선언
+// export default {
+//   title: 'MyApp/MyButton',
+//   component: MyButton,
+//   argTypes: {
+//     size: {
+//       control: { type: 'select' },
+//     },
+//   },
+// };
+ 
+// // Index, White 스토리 추가
+// export const Index = {
+//   // render: args => <MyButton {...args} />,
+//   args: {
+//     primary: true,
+//     size: 'medium',
+//     label: '버튼',
+//     onClick: () => console.log('Hello, Storybook!!')
+//   }
+// };
+ 
+// export const White = {
+//   args: {
+//     size: 'small',
+//     label: '버튼',
+//     backgroundColor: '#fff'
+//   }
+// };
+ 
+// export const Yellow = {
+//   args: {
+//     ...White.args,
+//     backgroundColor: 'lightyellow'
+//   }
+// };
+ 
+ 
+ 
+// import MyButton from './MyButton';
+ 
+// // 기본 정보 선언
+// export default {
+//   title: 'MyApp/MyButton',
+//   component: MyButton,
+//   argTypes: {
+//     primary: {
+//       type: 'boolean',
+//       description: 'Primary 색상 활성화 여부',
+//     },
+//     backgroundColor: {
+//       type: 'string',
+//       description: '배경색'
+//     },
+//     size: {
+//       type: {
+//         name: 'enum',
+//         value: ['small', 'medium', 'large']
+//       },
+//       control: { type: 'select' },
+//       description: '버튼 크기'
+//     },
+//     label: {
+//       type: 'string',
+//       description: '버튼 캡션'
+//     },
+//     onClick: {
+//       type: 'function',
+//       description: 'click handler',
+//     }
+//   },
+// };
+ 
+// // Index, White 스토리 추가
+// export const Index = {
+//   // render: args => <MyButton {...args} />,
+//   args: {
+//     primary: true,
+//     size: 'medium',
+//     label: '버튼',
+//     onClick: () => console.log('Hello, Storybook!!')
+//   }
+// };
+ 
+// export const White = {
+//   args: {
+//     size: 'small',
+//     label: '버튼',
+//     backgroundColor: '#fff'
+//   }
+// };
+ 
+// export const Yellow = {
+//   args: {
+//     ...White.args,
+//     backgroundColor: 'lightyellow'
+//   }
+// };
+ 
+ 
+ 
+// Cod 6-2-12
+// import MyButton from './MyButton';
+ 
+// // 기본 정보 선언
+// export default {
+//   title: 'MyApp/MyButton',
+//   component: MyButton,
+ 
+//   argTypes: {
+//     primary: {
+//       type: 'boolean',
+//       description: 'Primary 색상 활성화 여부',
+//     },
+//     backgroundColor: {
+//       type: 'string',
+//       description: '배경색'
+//     },
+//     size: {
+//       type: {
+//         name: 'enum',
+//         value: ['small', 'medium', 'large']
+//       },
+//       control: { type: 'select' },
+//       description: '버튼 크기'
+//     },
+//     label: {
+//       type: 'string',
+//       description: '버튼 캡션'
+//     },
+//     handleClick: { action: 'clicked' }
+//   },
+// };
+ 
+// // Index, White 스토리 추가
+// export const Index = {
+//   // render: args => <MyButton {...args} />,
+//   args: {
+//     primary: true,
+//     size: 'medium',
+//     label: '버튼',
+//     onClick: () => console.log('Hello, Storybook!!')
+//   }
+// };
+ 
+// export const White = {
+//   args: {
+//     size: 'small',
+//     label: '버튼',
+//     backgroundColor: '#fff'
+//   }
+// };
+ 
+// export const Yellow = {
+//   args: {
+//     ...White.args,
+//     backgroundColor: 'lightyellow'
+//   }
+// };
+ 
+ 
+ 
+ 
+// Cod 6-2-13
+// import { action } from '@storybook/addon-actions';
+// import MyButton from './MyButton';
+ 
+// // 기본 정보 선언
+// export default {
+//   title: 'MyApp/MyButton',
+//   component: MyButton,
+ 
+//   argTypes: {
+//     primary: {
+//       type: 'boolean',
+//       description: 'Primary 색상 활성화 여부',
+//     },
+//     backgroundColor: {
+//       type: 'string',
+//       description: '배경색'
+//     },
+//     size: {
+//       type: {
+//         name: 'enum',
+//         value: ['small', 'medium', 'large']
+//       },
+//       control: { type: 'select' },
+//       description: '버튼 크기'
+//     },
+//     label: {
+//       type: 'string',
+//       description: '버튼 캡션'
+//     },
+//     handleClick: { action: 'clicked' }
+//   },
+// };
+ 
+// // Index, White 스토리 추가
+// export const Index = {
+//   // render: args => <MyButton {...args} />,
+//   args: {
+//     primary: true,
+//     size: 'medium',
+//     label: '버튼',
+//     onClick: () => console.log('Hello, Storybook!!')
+//   }
+// };
+ 
+// export const White = {
+//   args: {
+//     size: 'small',
+//     label: '버튼',
+//     backgroundColor: '#fff',
+//     handleClick: action('clicked'),
+//   }
+// };
+ 
+// export const Yellow = {
+//   args: {
+//     ...White.args,
+//     backgroundColor: 'lightyellow'
+//   }
+// };
+ 
+ 
+ 
+// import { action } from '@storybook/addon-actions';
+// import MyButton from './MyButton';
+ 
+// // 기본 정보 선언
+// export default {
+//   title: 'MyApp/MyButton',
+//   component: MyButton,
+ 
+//   argTypes: {
+//     primary: {
+//       type: 'boolean',
+//       description: 'Primary 색상 활성화 여부',
+//     },
+//     backgroundColor: {
+//       type: 'string',
+//       description: '배경색'
+//     },
+//     size: {
+//       type: {
+//         name: 'enum',
+//         value: ['small', 'medium', 'large']
+//       },
+//       control: { type: 'select' },
+//       description: '버튼 크기'
+//     },
+//     label: {
+//       type: 'string',
+//       description: '버튼 캡션'
+//     },
+//     handleClick: { action: 'clicked' }
+//   },
+// };
+ 
+// // Index, White 스토리 추가
+// export const Index = {
+//   args: {
+//     primary: true,
+//     size: 'medium',
+//     label: '버튼',
+//     handleClick: e => {
+//       action('clicked')(e, new Date());
+//     },
+//   }
+// };
+ 
+// export const White = {
+//   args: {
+//     size: 'small',
+//     label: '버튼',
+//     backgroundColor: '#fff',
+//     handleClick: action('clicked'),
+//   }
+// };
+ 
+// export const Yellow = {
+//   args: {
+//     ...White.args,
+//     backgroundColor: 'lightyellow'
+//   }
+// };
+ 
+ 
+ 
+// Code 6-2-14
+// import { userEvent, within } from '@storybook/testing-library';
+// import { expect } from '@storybook/jest';
+// import { action } from '@storybook/addon-actions';
+// import MyButton from './MyButton';
+ 
+// // 기본 정보 선언
+// export default {
+//   title: 'MyApp/MyButton',
+//   component: MyButton,
+ 
+//   argTypes: {
+//     primary: {
+//       type: 'boolean',
+//       description: 'Primary 색상 활성화 여부',
+//     },
+//     backgroundColor: {
+//       type: 'string',
+//       description: '배경색'
+//     },
+//     size: {
+//       type: {
+//         name: 'enum',
+//         value: ['small', 'medium', 'large']
+//       },
+//       control: { type: 'select' },
+//       description: '버튼 크기'
+//     },
+//     label: {
+//       type: 'string',
+//       description: '버튼 캡션'
+//     },
+//     handleClick: { action: 'clicked' }
+//   },
+// };
+ 
+// // Index, White 스토리 추가
+// // Index 스토리의 동작을 선언한다.
+// export const Index = {
+//   args: {
+//     primary: true,
+//     size: 'medium',
+//     label: '버튼',
+//     // 이벤트 핸들러는 비활성화
+//     handleClick: e => {
+//       action('clicked')(e, new Date());
+//     }, 
+//   },
+//   play: async ({ args, canvasElement }) => {
+//     const canvas = within(canvasElement);
+//     const button = canvas.getByRole('button');
+//     userEvent.click(button);
+//     userEvent.click(button);
+//     expect(args.onClick).toHaveBeenCalledTimes(5);
+//   },
+// };
+ 
+// export const White = {
+//   args: {
+//     size: 'small',
+//     label: '버튼',
+//     backgroundColor: '#fff',
+//     handleClick: action('clicked'),
+//   }
+// };
+ 
+// export const Yellow = {
+//   args: {
+//     ...White.args,
+//     backgroundColor: 'lightyellow'
+//   }
+// };
+ 
+ 
+ 
+// Code 6-2-15
+// import { userEvent, within } from '@storybook/testing-library';
+// import { expect } from '@storybook/jest';
+// import { action } from '@storybook/addon-actions';
+// import MyButton from './MyButton';
+ 
+// // 기본 정보 선언
+// export default {
+//   title: 'MyApp/MyButton',
+//   component: MyButton,
+ 
+//   argTypes: {
+//     primary: {
+//       type: 'boolean',
+//       description: 'Primary 색상 활성화 여부',
+//     },
+//     backgroundColor: {
+//       type: 'string',
+//       description: '배경색'
+//     },
+//     size: {
+//       type: {
+//         name: 'enum',
+//         value: ['small', 'medium', 'large']
+//       },
+//       control: { type: 'select' },
+//       description: '버튼 크기'
+//     },
+//     label: {
+//       type: 'string',
+//       description: '버튼 캡션'
+//     },
+//     handleClick: { action: 'clicked' }
+//   },
+// };
+ 
+// // Index, White 스토리 추가
+// // Index 스토리의 동작을 선언한다.
+// export const Index = {
+//   args: {
+//     primary: true,
+//     size: 'medium',
+//     label: '버튼',
+//     // 이벤트 핸들러는 비활성화
+//     handleClick: e => {
+//       action('clicked')(e, new Date());
+//     }, 
+//   },
+//   play: async ({ args, canvasElement }) => {
+//     const canvas = within(canvasElement);
+//     const button = canvas.getByRole('button');
+//     userEvent.click(button);
+//     userEvent.click(button);
+//     expect(args.onClick).toHaveBeenCalledTimes(2);
+//   },
+// };
+ 
+// export const White = {
+//   args: {
+//     size: 'small',
+//     label: '버튼',
+//     backgroundColor: '#fff',
+//     handleClick: action('clicked'),
+//   }
+// };
+ 
+// export const Yellow = {
+//   args: {
+//     ...White.args,
+//     backgroundColor: 'lightyellow'
+//   }
+// };
+ 
+ 
+ 
+// Code 6-2-16
+// import { userEvent, within } from '@storybook/testing-library';
+// import { expect } from '@storybook/jest';
+// import { action } from '@storybook/addon-actions';
+// import MyButton from './MyButton';
+ 
+// // 기본 정보 선언
+// export default {
+//   title: 'MyApp/MyButton',
+//   component: MyButton,
+ 
+//   argTypes: {
+//     primary: {
+//       type: 'boolean',
+//       description: 'Primary 색상 활성화 여부',
+//     },
+//     backgroundColor: {
+//       type: 'string',
+//       description: '배경색'
+//     },
+//     size: {
+//       type: {
+//         name: 'enum',
+//         value: ['small', 'medium', 'large']
+//       },
+//       control: { type: 'select' },
+//       description: '버튼 크기'
+//     },
+//     label: {
+//       type: 'string',
+//       description: '버튼 캡션'
+//     },
+//     handleClick: { action: 'clicked' }
+//   },
+//   parameters: {
+//     backgrounds: {
+//       values: [
+//         { name: 'ghostwhite', value: '#f8f8ff' },
+//         { name: 'aquamarine', value: '#7fffd4' },
+//         { name: 'coral', value: '#ff7f50' },
+//       ],
+//     },
+//   }
+// };
+ 
+// // Index, White 스토리 추가
+// // Index 스토리의 동작을 선언한다.
+// export const Index = {
+//   args: {
+//     primary: true,
+//     size: 'medium',
+//     label: '버튼',
+//     // 이벤트 핸들러는 비활성화
+//     handleClick: e => {
+//       action('clicked')(e, new Date());
+//     }, 
+//   },
+//   play: async ({ args, canvasElement }) => {
+//     const canvas = within(canvasElement);
+//     const button = canvas.getByRole('button');
+//     userEvent.click(button);
+//     userEvent.click(button);
+//     expect(args.onClick).toHaveBeenCalledTimes(2);
+//   },
+//   parameters: {
+//     backgrounds: {
+//       values: [
+//         { name: 'ghostwhite', value: '#f8f8ff' },
+//         { name: 'aquamarine', value: '#7fffd4' },
+//         { name: 'coral', value: '#ff7f50' },
+//       ],
+//     },
+//   }
+// };
+ 
+// export const White = {
+//   args: {
+//     size: 'small',
+//     label: '버튼',
+//     backgroundColor: '#fff',
+//     handleClick: action('clicked'),
+//   }
+// };
+ 
+// export const Yellow = {
+//   args: {
+//     ...White.args,
+//     backgroundColor: 'lightyellow'
+//   }
+// };
+ 
+ 
+ 
+// Code 6-2-19
+// import { userEvent, within } from '@storybook/testing-library';
+// import { expect } from '@storybook/jest';
+// import { action } from '@storybook/addon-actions';
+// import MyButton from './MyButton';
+ 
+// // 기본 정보 선언
+// export default {
+//   title: 'MyApp/MyButton',
+//   component: MyButton,
+ 
+//   argTypes: {
+//     primary: {
+//       type: 'boolean',
+//       description: 'Primary 색상 활성화 여부',
+//     },
+//     backgroundColor: {
+//       type: 'string',
+//       description: '배경색'
+//     },
+//     size: {
+//       type: {
+//         name: 'enum',
+//         value: ['small', 'medium', 'large']
+//       },
+//       control: { type: 'select' },
+//       description: '버튼 크기'
+//     },
+//     label: {
+//       type: 'string',
+//       description: '버튼 캡션'
+//     },
+//     handleClick: { action: 'clicked' }
+//   },
+//   parameters: {
+//     backgrounds: {
+//       values: [
+//         { name: 'ghostwhite', value: '#f8f8ff' },
+//         { name: 'aquamarine', value: '#7fffd4' },
+//         { name: 'coral', value: '#ff7f50' },
+//       ],
+//     },
+//   },
+//   decorators: [
+//     Story => (
+//       <div style={{
+//         height: 150,
+//         display: 'flex',
+//         justifyContent: 'center',
+//         alignItems: 'center',
+//         backgroundColor: '#ccc',
+//       }}>
+//         <Story />
+//       </div>
+//     ),
+//   ],
+// };
+ 
+// // Index, White 스토리 추가
+// // Index 스토리의 동작을 선언한다.
+// export const Index = {
+//   args: {
+//     primary: true,
+//     size: 'medium',
+//     label: '버튼',
+//     // 이벤트 핸들러는 비활성화
+//     handleClick: e => {
+//       action('clicked')(e, new Date());
+//     }, 
+//   },
+//   play: async ({ args, canvasElement }) => {
+//     const canvas = within(canvasElement);
+//     const button = canvas.getByRole('button');
+//     userEvent.click(button);
+//     userEvent.click(button);
+//     expect(args.onClick).toHaveBeenCalledTimes(2);
+//   },
+//   parameters: {
+//     backgrounds: {
+//       values: [
+//         { name: 'ghostwhite', value: '#f8f8ff' },
+//         { name: 'aquamarine', value: '#7fffd4' },
+//         { name: 'coral', value: '#ff7f50' },
+//       ],
+//     },
+//   }
+// };
+ 
+// export const White = {
+//   args: {
+//     size: 'small',
+//     label: '버튼',
+//     backgroundColor: '#fff',
+//     handleClick: action('clicked'),
+//   }
+// };
+ 
+// export const Yellow = {
+//   args: {
+//     ...White.args,
+//     backgroundColor: 'lightyellow'
+//   }
+// };
+ 
+ 
+ 
+ 
+// Code 6-2-20
+// import { userEvent, within } from '@storybook/testing-library';
+// import { expect } from '@storybook/jest';
+// import { action } from '@storybook/addon-actions';
+// import MyButton from './MyButton';
+ 
+// // 기본 정보 선언
+// export default {
+//   title: 'MyApp/MyButton',
+//   component: MyButton,
+ 
+//   argTypes: {
+//     primary: {
+//       type: 'boolean',
+//       description: 'Primary 색상 활성화 여부',
+//     },
+//     backgroundColor: {
+//       type: 'string',
+//       description: '배경색'
+//     },
+//     size: {
+//       type: {
+//         name: 'enum',
+//         value: ['small', 'medium', 'large']
+//       },
+//       control: { type: 'select' },
+//       description: '버튼 크기'
+//     },
+//     label: {
+//       type: 'string',
+//       description: '버튼 캡션'
+//     },
+//     handleClick: { action: 'clicked' }
+//   },
+//   parameters: {
+//     backgrounds: {
+//       values: [
+//         { name: 'ghostwhite', value: '#f8f8ff' },
+//         { name: 'aquamarine', value: '#7fffd4' },
+//         { name: 'coral', value: '#ff7f50' },
+//       ],
+//     },
+//   },
+//   parameters: {
+//     layout: 'centered',
+//   },
+// };
+ 
+// // Index, White 스토리 추가
+// // Index 스토리의 동작을 선언한다.
+// export const Index = {
+//   args: {
+//     primary: true,
+//     size: 'medium',
+//     label: '버튼',
+//     // 이벤트 핸들러는 비활성화
+//     handleClick: e => {
+//       action('clicked')(e, new Date());
+//     }, 
+//   },
+//   play: async ({ args, canvasElement }) => {
+//     const canvas = within(canvasElement);
+//     const button = canvas.getByRole('button');
+//     userEvent.click(button);
+//     userEvent.click(button);
+//     expect(args.onClick).toHaveBeenCalledTimes(2);
+//   },
+//   parameters: {
+//     backgrounds: {
+//       values: [
+//         { name: 'ghostwhite', value: '#f8f8ff' },
+//         { name: 'aquamarine', value: '#7fffd4' },
+//         { name: 'coral', value: '#ff7f50' },
+//       ],
+//     },
+//   }
+// };
+ 
+// export const White = {
+//   args: {
+//     size: 'small',
+//     label: '버튼',
+//     backgroundColor: '#fff',
+//     handleClick: action('clicked'),
+//   }
+// };
+ 
+// export const Yellow = {
+//   args: {
+//     ...White.args,
+//     backgroundColor: 'lightyellow'
+//   }
+// };
+ 
+ 
+ 
+// Code 6-2-21
+// import { userEvent, within } from '@storybook/testing-library';
+// import { expect } from '@storybook/jest';
+// import { action } from '@storybook/addon-actions';
+// import MyButton from './MyButton';
+ 
+// // 기본 정보 선언
+// export default {
+//   title: 'MyApp/MyButton',
+//   component: MyButton,
+ 
+//   argTypes: {
+//     primary: {
+//       type: 'boolean',
+//       description: 'Primary 색상 활성화 여부',
+//     },
+//     backgroundColor: {
+//       type: 'string',
+//       description: '배경색'
+//     },
+//     size: {
+//       type: {
+//         name: 'enum',
+//         value: ['small', 'medium', 'large']
+//       },
+//       control: { type: 'select' },
+//       description: '버튼 크기'
+//     },
+//     label: {
+//       type: 'string',
+//       description: '버튼 캡션'
+//     },
+//     handleClick: { action: 'clicked' }
+//   },
+//   parameters: {
+//     backgrounds: {
+//       values: [
+//         { name: 'ghostwhite', value: '#f8f8ff' },
+//         { name: 'aquamarine', value: '#7fffd4' },
+//         { name: 'coral', value: '#ff7f50' },
+//       ],
+//     },
+//   },
+//   parameters: {
+//     layout: 'centered',
+//   },
+//   tags: ['autodocs'],
+// };
+ 
+// // Index, White 스토리 추가
+// // Index 스토리의 동작을 선언한다.
+// export const Index = {
+//   args: {
+//     primary: true,
+//     size: 'medium',
+//     label: '버튼',
+//     // 이벤트 핸들러는 비활성화
+//     handleClick: e => {
+//       action('clicked')(e, new Date());
+//     }, 
+//   },
+//   play: async ({ args, canvasElement }) => {
+//     const canvas = within(canvasElement);
+//     const button = canvas.getByRole('button');
+//     userEvent.click(button);
+//     userEvent.click(button);
+//     expect(args.onClick).toHaveBeenCalledTimes(2);
+//   },
+//   parameters: {
+//     backgrounds: {
+//       values: [
+//         { name: 'ghostwhite', value: '#f8f8ff' },
+//         { name: 'aquamarine', value: '#7fffd4' },
+//         { name: 'coral', value: '#ff7f50' },
+//       ],
+//     },
+//   }
+// };
+ 
+// export const White = {
+//   args: {
+//     size: 'small',
+//     label: '버튼',
+//     backgroundColor: '#fff',
+//     handleClick: action('clicked'),
+//   }
+// };
+ 
+// export const Yellow = {
+//   args: {
+//     ...White.args,
+//     backgroundColor: 'lightyellow'
+//   }
+// };
+ 
+ 
+ 
+// Code 6-2-22
+// import { userEvent, within } from '@storybook/testing-library';
+// import { expect } from '@storybook/jest';
+// import { action } from '@storybook/addon-actions';
+// import MyButton from './MyButton';
+ 
+// // 기본 정보 선언
+// export default {
+//   title: 'MyApp/MyButton',
+//   component: MyButton,
+ 
+//   argTypes: {
+//     primary: {
+//       type: 'boolean',
+//       description: 'Primary 색상 활성화 여부',
+//     },
+//     backgroundColor: {
+//       type: 'string',
+//       description: '배경색'
+//     },
+//     size: {
+//       type: {
+//         name: 'enum',
+//         value: ['small', 'medium', 'large']
+//       },
+//       control: { type: 'select' },
+//       description: '버튼 크기'
+//     },
+//     label: {
+//       type: 'string',
+//       description: '버튼 캡션'
+//     },
+//     handleClick: { action: 'clicked' }
+//   },
+//   parameters: {
+//     backgrounds: {
+//       values: [
+//         { name: 'ghostwhite', value: '#f8f8ff' },
+//         { name: 'aquamarine', value: '#7fffd4' },
+//         { name: 'coral', value: '#ff7f50' },
+//       ],
+//     },
+//   },
+//   parameters: {
+//     layout: 'centered',
+//   },
+//   // tags: ['autodocs'],
+// };
+ 
+// // Index, White 스토리 추가
+// // Index 스토리의 동작을 선언한다.
+// export const Index = {
+//   args: {
+//     primary: true,
+//     size: 'medium',
+//     label: '버튼',
+//     // 이벤트 핸들러는 비활성화
+//     handleClick: e => {
+//       action('clicked')(e, new Date());
+//     }, 
+//   },
+//   play: async ({ args, canvasElement }) => {
+//     const canvas = within(canvasElement);
+//     const button = canvas.getByRole('button');
+//     userEvent.click(button);
+//     userEvent.click(button);
+//     expect(args.onClick).toHaveBeenCalledTimes(2);
+//   },
+//   parameters: {
+//     backgrounds: {
+//       values: [
+//         { name: 'ghostwhite', value: '#f8f8ff' },
+//         { name: 'aquamarine', value: '#7fffd4' },
+//         { name: 'coral', value: '#ff7f50' },
+//       ],
+//     },
+//   }
+// };
+ 
+// export const White = {
+//   args: {
+//     size: 'small',
+//     label: '버튼',
+//     backgroundColor: '#fff',
+//     handleClick: action('clicked'),
+//   }
+// };
+ 
+// export const Yellow = {
+//   args: {
+//     ...White.args,
+//     backgroundColor: 'lightyellow'
+//   }
+// };
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap06/QueryBasic.js.html b/modern-react/my-react/coverage/lcov-report/src/chap06/QueryBasic.js.html new file mode 100644 index 0000000..8483249 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap06/QueryBasic.js.html @@ -0,0 +1,187 @@ + + + + + + Code coverage report for src/chap06/QueryBasic.js + + + + + + + + + +
+
+

All files / src/chap06 QueryBasic.js

+
+ +
+ 0% + Statements + 0/15 +
+ + +
+ 0% + Branches + 0/6 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/12 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useQuery } from 'react-query';
+ 
+// delay 초 동안 처리를 일시 정지하는 sleep 함수
+const sleep = delay => new Promise(resolve => setTimeout(resolve, delay));
+ 
+// 날씨 정보를 얻기 위한 함수
+const fetchWeather = async () => {
+  // 처리 지연을 위한 더미 휴지 처리
+  await sleep(2000);
+  const res = await fetch(`https://api.openweathermap.org/data/2.5/weather?q=Seoul&lang=ko&appid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`);
+  if (res.ok) { return res.json(); }
+  throw new Error(res.statusText);
+};
+ 
+export default function QuerBasic() {
+  // fetchWeather 함수로 데이터 가져오기
+  const { data, isLoading, isError, error } = useQuery('weather', fetchWeather);
+  // 로딩 중일 경우 로딩 메시지 표시
+  if (isLoading) {
+    return <p>Loading...</p>;
+  }
+  // 통신 오류 발생 시 오류 메시지 표시
+  if (isError) {
+    return <p>Error: {error.message}</p>;
+  }
+  // 로딩 중이거나 오류가 아닌 경우 결과 표시
+  return (
+    <figure>
+      <img
+      src={`https://openweathermap.org/img/wn/${data?.weather?.[0]?.icon}.png`}
+      alt={data?.weather?.[0]?.main} />
+      <figcaption>{data?.weather?.[0]?.description}</figcaption>
+    </figure>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap06/QueryPre.js.html b/modern-react/my-react/coverage/lcov-report/src/chap06/QueryPre.js.html new file mode 100644 index 0000000..2975918 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap06/QueryPre.js.html @@ -0,0 +1,241 @@ + + + + + + Code coverage report for src/chap06/QueryPre.js + + + + + + + + + +
+
+

All files / src/chap06 QueryPre.js

+
+ +
+ 60.86% + Statements + 14/23 +
+ + +
+ 16.66% + Branches + 1/6 +
+ + +
+ 62.5% + Functions + 5/8 +
+ + +
+ 60% + Lines + 12/20 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53  +  +  +1x +  +  +1x +  +1x +1x +  +  +  +  +  +  +  +1x +1x +1x +  +  +1x +1x +1x +  +  +  +  +  +  +  +  +  +1x +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useEffect, useState } from 'react';
+ 
+// delay 초 동안 처리를 일시 정지하는 sleep 함수
+const sleep = delay => new Promise(resolve => setTimeout(resolve, delay));
+ 
+// 날씨 정보를 얻기 위한 함수
+const fetchWeather = async () => {
+  // 처리 지연을 위한 더미 휴지 처리
+  await sleep(2000);
+  const res = await fetch(`https://api.openweathermap.org/data/2.5/weather?q=Seoul&lang=ko&appid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`);
+  if (res.ok) { return res.json(); }
+  // 오류 발생 시 해당 내용을 슬로우
+  throw new Error(res.statusText);
+};
+ 
+export default function QueryPre({ id }) {
+  // 날씨 정보(info), loading(로딩 중인가?), error(오류 정보) 준비 error(오류 정보) 준비
+  const [data, setData]  = useState(null);
+  const [isLoading, setLoading] = useState(true);
+  const [error, setError] = useState('');
+ 
+  // 컴포넌트 실행 시 날씨 정보 획득
+  useEffect(() => {
+    setLoading(true);
+    fetchWeather()
+      // 성공 시 정보 업데이트
+      .then(result => setData(result))
+      // 실패 시 error 업데이트
+      .catch(err => setError(err.message))
+      // 성공 여부와 상관없이 isLoading 업데이트
+      .finally(() => setLoading(false));
+  }, []);
+ 
+  // 로딩 중이라면 로딩 메시지 표시
+  Eif (isLoading) {
+    return <p>Loading...</p>;
+  }
+ 
+  // 통신 오류 발생 시 오류 메시지 표시
+  if (error) {
+    return <p>Error: {error}</p>;
+  }
+ 
+  // 로딩 중이거나 오류가 아닌 경우 결과 표시
+  return (
+  <figure>
+    <img
+    src={`https://openweathermap.org/img/wn/${data?.weather?.[0]?.icon}.png`}
+    alt={data?.weather?.[0]?.main} />
+    <figcaption>{data?.weather?.[0]?.description}</figcaption>
+  </figure>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap06/QuerySuspense.js.html b/modern-react/my-react/coverage/lcov-report/src/chap06/QuerySuspense.js.html new file mode 100644 index 0000000..0726a86 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap06/QuerySuspense.js.html @@ -0,0 +1,163 @@ + + + + + + Code coverage report for src/chap06/QuerySuspense.js + + + + + + + + + +
+
+

All files / src/chap06 QuerySuspense.js

+
+ +
+ 0% + Statements + 0/11 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/8 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useQuery } from 'react-query';
+ 
+// delay 밀리초 동안 처리를 일시 정지하는 sleep 함수
+const sleep = delay => new Promise(resolve => setTimeout(resolve, delay));
+ 
+const fetchWeather = async () => {
+  // 더미 지연
+  await sleep(2000);
+  // const res = await fetch(`https://api.openweathermap.org/data/2.5/weather?q=Tokyo&lang=ja&appid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`);
+  const res = await fetch(`https://api.openweathermap.org/data/2.5/weather?q=Seoul&lang=kr&appid=6fd0c26b5a2a9ad110324cc29669eb7c`);
+  if (res.ok) { return res.json(); }
+  throw new Error(res.statusText);
+};
+ 
+export default function QuerySuspense() {
+  const { data } = useQuery('weather', fetchWeather);
+  // const { data } = useQuery('weather', fetchWeather, { suspense: true });
+ 
+  return (
+    <figure>
+      <img
+      src={`https://openweathermap.org/img/wn/${data?.weather?.[0]?.icon}.png`}
+      alt={data?.weather?.[0]?.main} />
+      <figcaption>{data?.weather?.[0]?.description}</figcaption>
+    </figure>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap06/index.html b/modern-react/my-react/coverage/lcov-report/src/chap06/index.html new file mode 100644 index 0000000..8ce3b8f --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap06/index.html @@ -0,0 +1,266 @@ + + + + + + Code coverage report for src/chap06 + + + + + + + + + +
+
+

All files src/chap06

+
+ +
+ 17.5% + Statements + 14/80 +
+ + +
+ 3.84% + Branches + 1/26 +
+ + +
+ 16.12% + Functions + 5/31 +
+ + +
+ 17.91% + Lines + 12/67 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
FormMui.js +
+
0%0/7100%0/00%0/30%0/5
MaterialBasic.js +
+
0%0/1100%0/00%0/10%0/1
MaterialDrawer.js +
+
0%0/7100%0/00%0/30%0/6
MaterialGrid.js +
+
0%0/1100%0/00%0/10%0/1
MaterialMode.js +
+
0%0/60%0/40%0/30%0/5
MyButton.js +
+
0%0/30%0/80%0/10%0/3
MyButton.stories.js +
+
0%0/5100%0/00%0/30%0/5
QueryBasic.js +
+
0%0/150%0/60%0/40%0/12
QueryPre.js +
+
60.86%14/2316.66%1/662.5%5/860%12/20
QuerySuspense.js +
+
0%0/110%0/20%0/40%0/8
theme.js +
+
0%0/1100%0/0100%0/00%0/1
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap06/theme.js.html b/modern-react/my-react/coverage/lcov-report/src/chap06/theme.js.html new file mode 100644 index 0000000..b6ab31e --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap06/theme.js.html @@ -0,0 +1,214 @@ + + + + + + Code coverage report for src/chap06/theme.js + + + + + + + + + +
+
+

All files / src/chap06 theme.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { createTheme } from "@mui/material";
+import { green, orange } from "@mui/material/colors";
+ 
+const theme = createTheme({
+  // 앱에서 사용하는 컬러링 설정
+  palette: {
+    primary: {
+      main: orange[500],
+    },
+    secondary: {
+      main: green[500],
+    }
+  },
+  spacing: 10,
+});
+ 
+export default theme;
+ 
+ 
+ 
+// import { createTheme } from "@mui/material";
+// import { green, orange } from "@mui/material/colors";
+ 
+// const theme = createTheme({
+//   // 앱에서 사용하는 컬러링 설정
+//   palette: {
+//     primary: {
+//       main: orange[500],
+//     },
+//     secondary: {
+//       main: green[500],
+//     }
+//   },
+//   spacing: 10,
+//   components: {
+//     MuiButton: {
+//       defaultProps: {
+//         variant: 'contained',
+//       },
+//     },
+//   },
+// });
+ 
+// export default theme;
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/HookCallbackRef.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/HookCallbackRef.js.html new file mode 100644 index 0000000..4e2d722 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/HookCallbackRef.js.html @@ -0,0 +1,292 @@ + + + + + + Code coverage report for src/chap07/HookCallbackRef.js + + + + + + + + + +
+
+

All files / src/chap07 HookCallbackRef.js

+
+ +
+ 0% + Statements + 0/8 +
+ + +
+ 0% + Branches + 0/4 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/7 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useEffect, useRef, useState } from 'react';
+ 
+export default function HookCallbackRef() {
+  const [show, setShow] = useState(false);
+  // 버튼 클릭으로 표시/숨기기 반전
+  const handleClick = () => setShow(!show);
+  // [주소]란 참조
+  const address = useRef(null);
+  // [주소] 항목이 비어있지 않으면 포커스 이동
+  useEffect(() => {
+    if (address.current) {
+      address.current.focus();
+    }
+  }, [show]);
+ 
+  return (
+  <>
+  <div>
+      <label htmlFor="name">이름:</label>
+      <input id="name" type="text" />
+  </div>
+  <div>
+      <label htmlFor="email">이메일 주소:</label>
+      <input id="email" type="text" />
+      <button onClick={handleClick}>확장 표시</button>
+  </div>
+  {/* State(show) 값에 따라 [주소] 란을 표시 */}
+  {show &&
+    <div>
+      <label htmlFor="address">주소:</label>
+      <input id="address" type="text" ref={address} />
+    </div>
+  }
+  </>
+  );
+}
+ 
+ 
+ 
+// Code 7-2-12
+// import { useEffect, useRef, useState } from 'react';
+ 
+// export default function HookCallbackRef() {
+//   const [show, setShow] = useState(false);
+//   const handleClick = () => setShow(!show);
+  
+//   // 콜백 Ref 준비
+//   const callbackRef = elem => elem?.focus();
+ 
+//   return (
+//   <>
+//   <div>
+//       <label htmlFor="name">이름:</label>
+//       <input id="name" type="text" />
+//   </div>
+//   <div>
+//       <label htmlFor="email">이메일 주소:</label>
+//       <input id="email" type="text" />
+//       <button onClick={handleClick}>확장 표시</button>
+//   </div>
+//   {/* State(show) 값에 따라 [주소] 란을 표시 */}
+//   {show &&
+//     <div>
+//       <label htmlFor="address">주소:</label>
+//       <input id="address" type="text" ref={callbackRef} />
+//     </div>
+//   }
+//   </>
+//   );
+// }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/HookContext.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/HookContext.js.html new file mode 100644 index 0000000..92d0469 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/HookContext.js.html @@ -0,0 +1,145 @@ + + + + + + Code coverage report for src/chap07/HookContext.js + + + + + + + + + +
+
+

All files / src/chap07 HookContext.js

+
+ +
+ 0% + Statements + 0/3 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { createContext } from 'react';
+import { HookContextChild } from './HookContextChild';
+ 
+// 컨텍스트 초기화
+export const MyAppContext = createContext();
+// 컨텍스트에 전달할 오브젝트 준비하기
+const config = {
+  title: 'React 입문',
+  lang: 'ko-KR',
+};
+ 
+export default function HookContext() {
+  // 하위 요소에 대한 컨텍스트 적용
+  return (
+    <MyAppContext.Provider value={config}>
+      <div id="c_main">
+        <HookContextChild />
+      </div>
+    </MyAppContext.Provider>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/HookContextChild.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/HookContextChild.js.html new file mode 100644 index 0000000..74dd8ea --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/HookContextChild.js.html @@ -0,0 +1,139 @@ + + + + + + Code coverage report for src/chap07/HookContextChild.js + + + + + + + + + +
+
+

All files / src/chap07 HookContextChild.js

+
+ +
+ 0% + Statements + 0/3 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useContext } from 'react';
+import { MyAppContext } from './HookContext';
+ 
+export function HookContextChild() {
+  return (
+    <div id="c_child">
+      <HookContextChildGrand />
+    </div>
+  );
+}
+ 
+export function HookContextChildGrand() {
+  const { title, lang } = useContext(MyAppContext);
+  return (
+    <div id="c_child_grand">
+      {title}({lang})
+    </div>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/HookCustom.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/HookCustom.js.html new file mode 100644 index 0000000..dfdda5f --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/HookCustom.js.html @@ -0,0 +1,121 @@ + + + + + + Code coverage report for src/chap07/HookCustom.js + + + + + + + + + +
+
+

All files / src/chap07 HookCustom.js

+
+ +
+ 0% + Statements + 0/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13  +  +  +  +  +  +  +  +  +  +  +  + 
import useCounter from './UseCounter';
+ 
+export default function HookCustom() {
+  const [state, handleUp, handleDown, handleReset] = useCounter(0, 1);
+  return (
+    <>
+      <button onClick={handleUp}>카운트업</button>
+      <button onClick={handleDown}>카운트다운</button>
+      <button onClick={handleReset}>리셋</button>
+      <p>{state.count}번 클릭됐습니다.</p>
+    </>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/HookDeferred.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/HookDeferred.js.html new file mode 100644 index 0000000..7006d51 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/HookDeferred.js.html @@ -0,0 +1,139 @@ + + + + + + Code coverage report for src/chap07/HookDeferred.js + + + + + + + + + +
+
+

All files / src/chap07 HookDeferred.js

+
+ +
+ 0% + Statements + 0/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/7 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useDeferredValue, useState } from 'react';
+ 
+export default function HookDefered() {
+  const [text, setText] = useState('');
+  // 변수 text의 지연된 버전을 생성한다.
+  const deferText = useDeferredValue(text);
+  // 텍스트 상자 변경 시 text/deferText 모두 로그 표시
+  const handleChange = e => {
+    setText(e.target.value);
+    console.log(text, deferText);
+  };
+ 
+  return (
+    <>
+    <input type="text" value={text} onChange={handleChange} />
+    {[...Array(10000)].map((e, index) => <p key={index}>{deferText}</p>)}
+    </>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/HookDeferredTransition.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/HookDeferredTransition.js.html new file mode 100644 index 0000000..44c7bad --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/HookDeferredTransition.js.html @@ -0,0 +1,175 @@ + + + + + + Code coverage report for src/chap07/HookDeferredTransition.js + + + + + + + + + +
+
+

All files / src/chap07 HookDeferredTransition.js

+
+ +
+ 0% + Statements + 0/11 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/10 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useDeferredValue, useState } from 'react';
+import books from './books';
+import commentList from './comments';
+import { BookDetails, CommentList } from './HookTransitionChild';
+ 
+export default function HookDeferredTransition() {
+  const [isbn, setIsbn] = useState('');
+  const [comments, setComments] = useState([]);
+  const deferredComments = useDeferredValue(comments);
+  const isPending = comments !== deferredComments;
+ 
+  const handleChange = e => {
+    const isbn = e.target.value;
+    setIsbn(isbn);
+    setComments(commentList.filter(c => c.isbn === isbn));
+  };
+ 
+  return (
+      <>
+      <select onChange={handleChange}>
+        <option value="">선택해주세요.</option>
+        {books.map(b => (
+           <option key={b.isbn} value={b.isbn}>{b.title}</option>
+        ))}
+      </select>
+      <BookDetails isbn={isbn} />
+      <hr />
+      <CommentList src={deferredComments} isPending={isPending} />
+      </>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/HookEffect.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/HookEffect.js.html new file mode 100644 index 0000000..f363711 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/HookEffect.js.html @@ -0,0 +1,178 @@ + + + + + + Code coverage report for src/chap07/HookEffect.js + + + + + + + + + +
+
+

All files / src/chap07 HookEffect.js

+
+ +
+ 0% + Statements + 0/13 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/5 +
+ + +
+ 0% + Lines + 0/11 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useEffect, useLayoutEffect, useState } from 'react';
+ 
+// delay 초 동안 처리를 일시 정지하는 sleep 함수 
+const sleep = delay => {
+  const start = Date.now();
+  // 현재 시간이 start(시작 시간)를 초과할 때까지 루프 지속
+  while (true) {
+   if (Date.now() - start > delay) { break; }
+  }
+};
+ 
+export default function HookEffect({ init }) {
+  const [count, setCount] = useState(0);
+ 
+  // 2000밀리초 후 State(count)를 설정한다.
+  useEffect(() => {
+  // useLayoutEffect(() => {
+    sleep(2000);
+    setCount(init);
+  }, []);
+ 
+  const handleClick = () => {
+    setCount(c => c + 1);
+  };
+  
+  return (
+    <>
+      <button onClick={handleClick}>카운트</button>
+      <p>{count}번 클릭되었습니다.</p>
+    </>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/HookMemo.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/HookMemo.js.html new file mode 100644 index 0000000..50dbd48 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/HookMemo.js.html @@ -0,0 +1,454 @@ + + + + + + Code coverage report for src/chap07/HookMemo.js + + + + + + + + + +
+
+

All files / src/chap07 HookMemo.js

+
+ +
+ 0% + Statements + 0/15 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/7 +
+ + +
+ 0% + Lines + 0/11 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useMemo, useCallback, useState } from 'react';
+import { MyButton, MyCounter } from './HookMemoChild';
+ 
+// 인자 delay만 처리를 일시 정지하는 코드
+const sleep = delay => {
+  const start = Date.now();
+  while (Date.now() - start < delay);
+};
+ 
+export default function HookMemo() {
+  const [count1, setCount1] = useState(0);
+  const [count2, setCount2] = useState(0);
+  // MyButton에 넘겨주는 핸들러
+  const increment = () => setCount1(c => c + 1);
+  const decrement = () => setCount2(c => c - 1);
+ 
+  // count1에 100을 더한 값을 계산하는 코드 (더미 헤비 처리)
+  const heavyProcess = () => {
+    sleep(1000);
+    return count1 + 100;
+  };
+ 
+  return (
+    <>
+      {/* 값을 1씩 증가시키는 카운터 */}
+      <div>
+      <MyButton id="btn1" handleClick={increment}>카운트업</MyButton>
+      <MyCounter id="c1" value={count1} />/
+      {heavyProcess()}
+      {/* {heavyProcess} */}
+      </div>
+      <div>
+      {/* 값을 1씩 감소시키는 카운터 */}
+      <MyButton id="btn2" handleClick={decrement}>카운트다운</MyButton>
+      <MyCounter id="c2" value={count2} />
+      </div>
+    </>
+  );
+}
+ 
+ 
+ 
+// Code 7-6-4
+// import { useMemo, useCallback, useState } from 'react';
+// import { MyButton, MyCounter } from './HookMemoChild';
+ 
+// // 인자 delay만 처리를 일시 정지하는 코드
+// const sleep = delay => {
+//   const start = Date.now();
+//   while (Date.now() - start < delay);
+// };
+ 
+// export default function HookMemo() {
+//   const [count1, setCount1] = useState(0);
+//   const [count2, setCount2] = useState(0);
+//   // MyButton에 넘겨주는 핸들러
+//   const increment = () => setCount1(c => c + 1);
+//   const decrement = () => setCount2(c => c - 1);
+ 
+//   // count1에 100을 더한 값을 계산하는 코드 (더미 헤비 처리)
+//   const heavyProcess = useMemo(() => {
+//     sleep(1000);
+//     return count1 + 100;
+//   }, [count1]);
+  
+//   return (
+//     <>
+//       {/* 값을 1씩 증가시키는 카운터 */}
+//       <div>
+//       <MyButton id="btn1" handleClick={increment}>카운트업</MyButton>
+//       <MyCounter id="c1" value={count1} />/
+//       {heavyProcess}
+//       </div>
+//       <div>
+//       {/* 값을 1씩 감소시키는 카운터 */}
+//       <MyButton id="btn2" handleClick={decrement}>카운트다운</MyButton>
+//       <MyCounter id="c2" value={count2} />
+//       </div>
+//     </>
+//   );
+// }
+ 
+ 
+ 
+// Code 7-6-6
+// import { useMemo, useCallback, useState } from 'react';
+// import { MyButton, MyCounter } from './HookMemoChild';
+ 
+// // 인자 delay만 처리를 일시 정지하는 코드
+// const sleep = delay => {
+//   const start = Date.now();
+//   while (Date.now() - start < delay);
+// };
+ 
+// export default function HookMemo() {
+//   const [count1, setCount1] = useState(0);
+//   const [count2, setCount2] = useState(0);
+//   // MyButton에 넘겨주는 핸들러
+//   const increment = useCallback(() => setCount1(c => c + 1), []);
+//   const decrement = useCallback(() => setCount2(c => c - 1), []);
+ 
+//   // count1에 100을 더한 값을 계산하는 코드 (더미 헤비 처리)
+//   const heavyProcess = useMemo(() => {
+//     sleep(1000);
+//     return count1 + 100;
+//   }, [count1]);
+  
+//   return (
+//     <>
+//       {/* 값을 1씩 증가시키는 카운터 */}
+//       <div>
+//       <MyButton id="btn1" handleClick={increment}>카운트업</MyButton>
+//       <MyCounter id="c1" value={count1} />/
+//       {heavyProcess}
+//       </div>
+//       <div>
+//       {/* 값을 1씩 감소시키는 카운터 */}
+//       <MyButton id="btn2" handleClick={decrement}>카운트다운</MyButton>
+//       <MyCounter id="c2" value={count2} />
+//       </div>
+//     </>
+//   );
+// }
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/HookMemoChild.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/HookMemoChild.js.html new file mode 100644 index 0000000..a538194 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/HookMemoChild.js.html @@ -0,0 +1,196 @@ + + + + + + Code coverage report for src/chap07/HookMemoChild.js + + + + + + + + + +
+
+

All files / src/chap07 HookMemoChild.js

+
+ +
+ 0% + Statements + 0/6 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
// 카운터를 늘리거나 줄이는 버튼
+// id : id 값, handleClick : 버튼 핸들러, children : 버튼 캡션
+export const MyButton = ({ id, handleClick, children }) => {
+  // 리렌더링 시 로그
+  console.log(`MyButton is called: ${id}`);
+  return (
+    <button onClick={handleClick}>{children}</button>
+  );
+};
+ 
+// 카운터 값을 표시하기 위한 라벨
+// id: id 값, value: 표시할 값
+export const MyCounter = ({ id, value }) => {
+  // 리렌더링 시 로그
+  console.log(`MyCounter is called: ${id}`);
+  return (
+    <p>현재 값:{value}</p>
+  );
+};
+ 
+ 
+ 
+// Code 7-6-5
+// import { memo } from 'react';
+ 
+// export const MyButton = memo(({ id, handleClick, children }) => { 
+//   console.log(`MyButton is called: ${id}`);
+//   return (
+//     <button onClick={handleClick}>{children}</button>
+//   );
+// });
+ 
+// export const MyCounter = memo(({ id, value }) => {
+//   console.log(`MyCounter is called: ${id}`);
+//   return (
+//     <p>현재 값:{value}</p>
+//   );
+// });
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/HookReducer.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/HookReducer.js.html new file mode 100644 index 0000000..c6b928e --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/HookReducer.js.html @@ -0,0 +1,178 @@ + + + + + + Code coverage report for src/chap07/HookReducer.js + + + + + + + + + +
+
+

All files / src/chap07 HookReducer.js

+
+ +
+ 0% + Statements + 0/7 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/7 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useReducer } from 'react';
+ 
+export default function HookReducer({ init }) {
+  // State+Reducer 준비
+  const [state, dispatch] = useReducer(
+    // 감속기 기능
+    (state, action) => {
+      switch (action.type) {
+        case 'update':
+          return { count: state.count + 1 };
+        default:
+          return state;
+      }
+    },
+    // State의 초깃값
+    {
+      count: init
+    }
+  );
+ 
+  // Reducer를 통해 State 업데이트
+  const handleClick = () => {
+    dispatch({ type: 'update' });
+  };
+ 
+  return (
+    <>
+      <button onClick={handleClick}>카운트</button>
+      <p>{state.count}번 클릭되었습니다.</p>
+    </>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/HookReducerInit.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/HookReducerInit.js.html new file mode 100644 index 0000000..18e0e20 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/HookReducerInit.js.html @@ -0,0 +1,295 @@ + + + + + + Code coverage report for src/chap07/HookReducerInit.js + + + + + + + + + +
+
+

All files / src/chap07 HookReducerInit.js

+
+ +
+ 0% + Statements + 0/9 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/9 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useReducer } from 'react';
+ 
+// 인수에 따라 0~init 사이의 값을 생성한다.
+function initCounter(init) {
+  console.log('initCounter is called!!');
+  return {
+    count: Math.floor(Math.random() * (init + 1))
+  };
+}
+ 
+export default function HookReducerInit({ init }) {
+  const [state, dispatch] = useReducer(
+    (state, action) => {
+      switch (action.type) {
+        case 'update':
+          return { count: state.count + 1 };
+        default:
+          return state;
+      }
+    },
+    initCounter(init)
+  );
+ 
+  const handleClick = () => {
+    dispatch({ type: 'update' });
+  };
+  return (
+    <>
+      <button onClick={handleClick}>카운트</button>
+      <p>{state.count}번 클릭되었습니다.</p>
+    </>
+  );
+}
+ 
+ 
+ 
+ 
+// import { useReducer } from 'react';
+ 
+// // 인수에 따라 0~init 사이의 값을 생성한다.
+// function initCounter(init) {
+//   console.log('initCounter is called!!');
+//   return {
+//     count: Math.floor(Math.random() * (init + 1))
+//   };
+// }
+ 
+// export default function HookReducerInit({ init }) {
+//   const [state, dispatch] = useReducer(
+//     (state, action) => {
+//       switch (action.type) {
+//         case 'update':
+//           return { count: state.count + 1 };
+//         default:
+//           return state;
+//       }
+//     },
+//     init,
+//     initCounter
+//   );
+ 
+//   const handleClick = () => {
+//     dispatch({ type: 'update' });
+//   };
+//   return (
+//     <>
+//       <button onClick={handleClick}>카운트</button>
+//       <p>{state.count}번 클릭되었습니다.</p>
+//     </>
+//   );
+// }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/HookReducerUp.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/HookReducerUp.js.html new file mode 100644 index 0000000..73523e9 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/HookReducerUp.js.html @@ -0,0 +1,187 @@ + + + + + + Code coverage report for src/chap07/HookReducerUp.js + + + + + + + + + +
+
+

All files / src/chap07 HookReducerUp.js

+
+ +
+ 0% + Statements + 0/12 +
+ + +
+ 0% + Branches + 0/3 +
+ + +
+ 0% + Functions + 0/5 +
+ + +
+ 0% + Lines + 0/9 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useReducer } from 'react';
+ 
+export default function HookReducerUp({ init }) {
+  const [state, dispatch] = useReducer(
+    (state, action) => {
+      switch (action.type) {
+        // 카운트 값의 증감
+        case 'update':
+          return { count: state.count + action.step };
+        // 카운트 값 초기화
+        case 'reset' :
+          return { count: action.init };
+        // 기본 동작(State를 그대로 반환)
+        default:
+          return state;
+      }
+    },
+    {
+        count: init
+    }
+  );
+  // 각 버튼에 대응하는 핸들러
+  const handleUp = () => dispatch({ type: 'update', step: 1 });
+  const handleDown = () => dispatch({ type: 'update', step: -1 });
+  const handleReset = () => dispatch({ type: 'reset', init: 0 });
+ 
+  return (
+  <>
+    <button onClick={handleUp}>카운트업</button>
+    <button onClick={handleDown}>카운트다운</button>
+    <button onClick={handleReset}>리셋</button>
+    <p>{state.count}번 클릭되었습니다.</p>
+  </>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/HookRef.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/HookRef.js.html new file mode 100644 index 0000000..60b2bc6 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/HookRef.js.html @@ -0,0 +1,151 @@ + + + + + + Code coverage report for src/chap07/HookRef.js + + + + + + + + + +
+
+

All files / src/chap07 HookRef.js

+
+ +
+ 0% + Statements + 0/11 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/5 +
+ + +
+ 0% + Lines + 0/9 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useState, useRef } from 'react';
+ 
+export default function HookRef() {
+  const id = useRef(null);
+  const [count, setCount] = useState(0);
+ 
+  const handleStart = () => {
+    if (id.current === null) {
+      id.current = setInterval(() => setCount(c => c + 1), 1000);
+    }
+  };
+  const handleEnd = () => {
+    clearInterval(id.current);
+    id.current = null;
+  };
+  return (
+    <>
+      <button onClick={handleStart}>시작</button>
+      <button onClick={handleEnd}>종료</button>
+      <p>{count}초 경과</p>
+    </>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/HookRefForward.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/HookRefForward.js.html new file mode 100644 index 0000000..7b260f5 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/HookRefForward.js.html @@ -0,0 +1,124 @@ + + + + + + Code coverage report for src/chap07/HookRefForward.js + + + + + + + + + +
+
+

All files / src/chap07 HookRefForward.js

+
+ +
+ 0% + Statements + 0/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useEffect, useRef } from 'react';
+import MyTextBox from './MyTextBox';
+ 
+export default function HookRefForward() {
+  const text = useRef(null);
+  // 시작 시 텍스트 상자에 포커스 맞추기
+  useEffect(() => {
+    text.current?.focus();
+  }, []);
+ 
+  return (
+    <MyTextBox label="name" ref={text} />
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/HookRefNg.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/HookRefNg.js.html new file mode 100644 index 0000000..e93cb96 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/HookRefNg.js.html @@ -0,0 +1,166 @@ + + + + + + Code coverage report for src/chap07/HookRefNg.js + + + + + + + + + +
+
+

All files / src/chap07 HookRefNg.js

+
+ +
+ 0% + Statements + 0/11 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/5 +
+ + +
+ 0% + Lines + 0/9 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useState } from 'react';
+ 
+export default function HookRefNg() {
+  // 타이머 켜기/끄기를 관리하기 위한 변수
+  let id = null;
+  const [count, setCount] = useState(0);
+ 
+  // [시작] 버튼으로 타이머 생성하기
+  const handleStart = () => {
+    // 타이머 작동 중일 때는 아무것도 하지 않음(두 번 누르기 방지)
+    if (id === null) {
+      id = setInterval(() => setCount(c => c + 1), 1000);
+    }
+  };
+  // [종료] 버튼으로 타이머를 종료한다.
+  const handleEnd = () => {
+    clearInterval(id);
+    id = null;
+  };
+ 
+  return (
+    <>
+      <button onClick={handleStart}>시작</button>
+      <button onClick={handleEnd}>종료</button>
+      <p>{count}초 경과</p>
+    </>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/HookThemeButton.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/HookThemeButton.js.html new file mode 100644 index 0000000..ff5e387 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/HookThemeButton.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for src/chap07/HookThemeButton.js + + + + + + + + + +
+
+

All files / src/chap07 HookThemeButton.js

+
+ +
+ 0% + Statements + 0/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12  +  +  +  +  +  +  +  +  +  +  + 
import { useContext } from 'react';
+import { Button } from '@mui/material';
+import ThemeContext from './ThemeContext';
+ 
+export default function HookThemeButton() {
+  const { mode, toggleMode } = useContext(ThemeContext);
+  return (
+    <Button variant="contained" onClick={toggleMode}>
+      Mode {mode}
+    </Button>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/HookTimer.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/HookTimer.js.html new file mode 100644 index 0000000..93ddfa4 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/HookTimer.js.html @@ -0,0 +1,154 @@ + + + + + + Code coverage report for src/chap07/HookTimer.js + + + + + + + + + +
+
+

All files / src/chap07 HookTimer.js

+
+ +
+ 100% + Statements + 8/8 +
+ + +
+ 50% + Branches + 1/2 +
+ + +
+ 100% + Functions + 5/5 +
+ + +
+ 100% + Lines + 7/7 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24  +  +  +  +2x +  +2x +  +1x +1x +  +  +1x +1x +  +  +  +2x +  +  +  +  +  + 
import { useEffect, useState } from 'react';
+import './HookTimer.css';
+ 
+export default function HookTimer({ init }) {
+  const [count, setCount] = useState(init);
+ 
+  useEffect(() => {
+    // 타이머 준비
+    const t = setInterval(() => {
+      setCount(c => c - 1);
+    }, 1000);
+    // 컴포넌트 폐기 시 타이머도 함께 폐기
+    return () => {
+      clearInterval(t);
+    };
+  }, []);
+ 
+  return (
+    // 카운터가 0보다 작아지면 스타일 WARN 적용
+    <div className={count < 0 ? 'warn' : ''}>
+      현재 카운트 : {count}
+    </div>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/HookTransition.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/HookTransition.js.html new file mode 100644 index 0000000..6259e9c --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/HookTransition.js.html @@ -0,0 +1,424 @@ + + + + + + Code coverage report for src/chap07/HookTransition.js + + + + + + + + + +
+
+

All files / src/chap07 HookTransition.js

+
+ +
+ 0% + Statements + 0/11 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/5 +
+ + +
+ 0% + Lines + 0/10 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
// import { useState, useTransition } from 'react';
+// import books from './books';
+// import commentList from './comments';
+// import { BookDetails, CommentList } from './HookTransitionChild';
+ 
+// export default function HookTransition() {
+//   // 선택한 도서(isbn)와 해당 코멘트(comments)
+//   const [isbn, setIsbn] = useState('');
+//   const [comments, setComments] = useState([]);
+ 
+//   // 선택 상자 변경에 따른 State 반영
+//   const handleChange = e => {
+//     const isbn = e.target.value;
+//     setIsbn(isbn);
+//     setComments(commentList.filter(c => c.isbn === isbn));
+//   };
+ 
+//   return (
+//       <>
+//       <select onChange={handleChange}>
+//         <option value="">선택해주세요.</option>
+//         {books.map(b => (
+//            <option key={b.isbn} value={b.isbn}>{b.title}</option>
+//         ))}
+//       </select>
+//       <BookDetails isbn={isbn} />
+//       <hr />
+//       <CommentList src={comments} />
+//       </>
+//   );
+// }
+ 
+ 
+ 
+// Code 7-7-4
+// import { useState, useTransition } from 'react';
+// import books from './books';
+// import commentList from './comments';
+// import { BookDetails, CommentList } from './HookTransitionChild';
+ 
+// export default function HookTransition() {
+//   const [isbn, setIsbn] = useState('');
+//   const [comments, setComments] = useState([]);
+//   // 트랜지션 활용을 위한 준비
+//   const [isPending, startTransition] = useTransition();
+ 
+//   // 선택 상자 변경에 따른 State 반영
+//   const handleChange = e => {
+//     const isbn = e.target.value;
+//     setIsbn(isbn);
+//     // 트랜지션의 명령으로 State 업데이트하기
+//     startTransition(() => {
+//       setComments(commentList.filter(c => c.isbn === isbn));
+//     });
+//   };
+ 
+//   return (
+//       <>
+//       <select onChange={handleChange}>
+//         <option value="">선택해주세요.</option>
+//         {books.map(b => (
+//            <option key={b.isbn} value={b.isbn}>{b.title}</option>
+//         ))}
+//       </select>
+//       <BookDetails isbn={isbn} />
+//       <hr />
+//       <CommentList src={comments} />
+//       </>
+//   );
+// }
+ 
+ 
+ 
+ 
+ 
+ 
+ 
+// Code 7-7-5
+import { useState, useTransition } from 'react';
+import books from './books';
+import commentList from './comments';
+import { BookDetails, CommentList } from './HookTransitionChild';
+ 
+export default function HookTransition() {
+  const [isbn, setIsbn] = useState('');
+  const [comments, setComments] = useState([]);
+  // 트랜지션 활용을 위한 준비
+  const [isPending, startTransition] = useTransition();
+ 
+  // 선택 상자 변경에 따른 State 반영
+  const handleChange = e => {
+    const isbn = e.target.value;
+    setIsbn(isbn);
+    // 트랜지션의 명령으로 State 업데이트하기
+    startTransition(() => {
+      setComments(commentList.filter(c => c.isbn === isbn));
+    });
+  };
+  
+  return (
+      <>
+      <select onChange={handleChange}>
+        <option value="">선택해주세요.</option>
+        {books.map(b => (
+           <option key={b.isbn} value={b.isbn}>{b.title}</option>
+        ))}
+      </select>
+      <BookDetails isbn={isbn} />
+      <hr />
+      <CommentList src={comments} isPending={isPending}
+      />
+      </>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/HookTransitionChild.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/HookTransitionChild.js.html new file mode 100644 index 0000000..de02970 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/HookTransitionChild.js.html @@ -0,0 +1,202 @@ + + + + + + Code coverage report for src/chap07/HookTransitionChild.js + + + + + + + + + +
+
+

All files / src/chap07 HookTransitionChild.js

+
+ +
+ 0% + Statements + 0/13 +
+ + +
+ 0% + Branches + 0/4 +
+ + +
+ 0% + Functions + 0/6 +
+ + +
+ 0% + Lines + 0/11 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { memo } from 'react';
+import books from './books';
+ 
+ 
+// delay 밀리초만큼 처리를 지연시키는 코드
+const sleep = (delay) => {
+  const start = Date.now();
+  while (Date.now() - start < delay);
+};
+ 
+export function BookDetails({ isbn }) {
+  const book = books.find(b => b.isbn === isbn);
+  return (
+    <ul>
+      <li>ISBN:{book?.isbn}</li>
+      <li>도서명:{book?.title}</li>
+      <li>가격:{book?.price}원</li>
+      <li>개요:{book?.summary}</li>
+      <li>예제 코드:{(book?.download) ? '있음': '없음'}</li>
+    </ul>
+  );
+}
+ 
+export const CommentList = memo(function({ src, isPending }){
+  // isPending이 true인 경우 로딩 메시지 표시 (7-7-3 절에서 사용)
+  if (isPending) return <p>Now Loading...</p>;
+  // 수신된 댓글 정보 목록 표시
+  return (
+    <ol>
+      {src.map(c => <CommentItem key={c.id} src={c} />)}
+    </ol>
+  );
+});
+ 
+// 개별 코멘트 표시로 시간이 오래 걸리는 처리 시뮬레이션
+function CommentItem({ src }) {
+  sleep(1000);
+  return <li>{src.body}({src.rank})</li>;
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/MyTextBox.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/MyTextBox.js.html new file mode 100644 index 0000000..68c7796 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/MyTextBox.js.html @@ -0,0 +1,235 @@ + + + + + + Code coverage report for src/chap07/MyTextBox.js + + + + + + + + + +
+
+

All files / src/chap07 MyTextBox.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
export default function MyTextBox({ label, ref }) {
+  return (
+    <label>
+      {label} :
+      <input type="text" size="15" ref={ref} />
+    </label>
+  );
+}
+ 
+ 
+ 
+// Code 7-2-8
+// import { forwardRef } from 'react';
+ 
+// const MyTextBox = forwardRef(({ label }, ref) => (
+//   <label>
+//     {label} :
+//     <input type="text" size="15" ref={ref} />
+//   </label>
+// ));
+ 
+// export default MyTextBox;
+ 
+ 
+ 
+// Code 7-2-9
+// // useImperativeHandle 함수를 사용하여 다시 작성한 경우
+// import { forwardRef, useImperativeHandle, useRef } from 'react';
+ 
+// const MyTextBox = forwardRef(({ label }, ref) => {
+//   // 텍스트 상자에 대한 참조 준비
+//   const input = useRef(null);
+ 
+//   // 부모 컴포넌트에 노출할 오브젝트를 생성한다.
+//   useImperativeHandle(ref, () => {
+//     return {
+//       focus() {
+//         input.current.focus();
+//       },
+//     };
+//   }, []);
+ 
+//   return (
+//     <label>
+//       {label}:
+//       <input type="text" size="15" ref={input} />
+//     </label>
+//   );
+// });
+ 
+// export default MyTextBox;
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/MyThemeProvider.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/MyThemeProvider.js.html new file mode 100644 index 0000000..7139ed1 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/MyThemeProvider.js.html @@ -0,0 +1,223 @@ + + + + + + Code coverage report for src/chap07/MyThemeProvider.js + + + + + + + + + +
+
+

All files / src/chap07 MyThemeProvider.js

+
+ +
+ 0% + Statements + 0/6 +
+ + +
+ 0% + Branches + 0/4 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 0% + Lines + 0/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useState } from 'react';
+import { createTheme, ThemeProvider } from '@mui/material/styles';
+import { amber, grey } from '@mui/material/colors';
+import { CssBaseline } from '@mui/material';
+import ThemeContext from './ThemeContext';
+ 
+export default function MyThemeProvider({ children }) {
+  const [mode, setMode] = useState('light');
+  // 컨텍스트에 전달할 정보 준비하기
+  const themeConfig = {
+    mode,
+    toggleMode: () => {
+      setMode(prev =>
+        prev === 'light' ? 'dark' : 'light'
+      );
+    }
+  };
+  const theme = createTheme({
+    mode,
+    palette: {
+      mode,
+      ...(mode === 'light'
+      ? {
+          primary: amber,
+        }
+      : {
+        primary: {
+          main: grey[500],
+          contrastText: '#fff'
+        },
+        background: {
+          default: grey[900],
+          paper: grey[900],
+        },
+      }),
+    },
+ 
+  });
+  return (
+    <ThemeContext.Provider value={themeConfig}>
+      <ThemeProvider theme={theme}>
+        <CssBaseline />
+        {children}
+      </ThemeProvider>
+    </ThemeContext.Provider>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/RecoilCounter.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/RecoilCounter.js.html new file mode 100644 index 0000000..3256005 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/RecoilCounter.js.html @@ -0,0 +1,271 @@ + + + + + + Code coverage report for src/chap07/RecoilCounter.js + + + + + + + + + +
+
+

All files / src/chap07 RecoilCounter.js

+
+ +
+ 0% + Statements + 0/7 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
// import { useRecoilState } from 'recoil';
+// import { counterAtom } from '../store/atom';
+ 
+// export default function RecoilCounter() {
+//   // Recoil 관리하에 값과 세터를 가져온다.
+//   const [counter, setCounter] = useRecoilState(counterAtom);
+ 
+//   const handleClick = () => {
+//     setCounter(c => c + 1);
+//     // setCounter(counter + 1);
+//   };
+ 
+//   return (
+//     <>
+//       <button onClick={handleClick}>카운트</button>
+//       <p>{counter}번 클릭되었습니다. </p>
+//     </>
+//   );
+// }
+ 
+ 
+ 
+// import { useRecoilValue, useSetRecoilState } from 'recoil';
+// import { counterAtom } from '../store/atom';
+ 
+// export default function RecoilCounter() {
+//   const counter = useRecoilValue(counterAtom);
+//   const setCounter = useSetRecoilState(counterAtom);
+ 
+//   const handleClick = () => {
+//     setCounter(c => c + 1);
+//   };
+ 
+//   return (
+//     <>
+//       <button onClick={handleClick}>카운트</button>
+//       <p>{counter}번 클릭되었습니다. </p>
+//     </>
+//   );
+// }
+ 
+ 
+ 
+ 
+import { useRecoilState, useResetRecoilState } from 'recoil';
+import { counterAtom } from '../store/atom';
+ 
+export default function RecoilCounter() {
+  const [counter, setCounter] = useRecoilState(counterAtom); 
+  const resetCounter = useResetRecoilState(counterAtom);
+  
+  const handleClick = () => {
+    setCounter(c => c + 1);
+  };
+ 
+  return (
+    <>
+      <button onClick={handleClick}>카운트</button>
+      <button onClick={() => resetCounter()}>리셋</button>
+      <p>{counter}번 클릭되었습니다. </p>
+    </>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/RecoilTodo.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/RecoilTodo.js.html new file mode 100644 index 0000000..fb2d4d9 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/RecoilTodo.js.html @@ -0,0 +1,295 @@ + + + + + + Code coverage report for src/chap07/RecoilTodo.js + + + + + + + + + +
+
+

All files / src/chap07 RecoilTodo.js

+
+ +
+ 0% + Statements + 0/17 +
+ + +
+ 0% + Branches + 0/4 +
+ + +
+ 0% + Functions + 0/8 +
+ + +
+ 0% + Lines + 0/16 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useRecoilState, useRecoilValue } from 'recoil';
+import { useState } from 'react';
+import { todoAtom, todoLastIdSelector } from '../store/atom';
+import '../chap04/StateTodo.css';
+ 
+export default function RecoilTodo() {
+  const [title, setTitle] = useState('');
+  // 할 일 목록, 최대 id 값은 각각 Recoil에서 가져온다.
+  const [todo, setTodo] = useRecoilState(todoAtom);
+  const maxId = useRecoilValue(todoLastIdSelector);
+ 
+  const handleChangeTitle = e => setTitle(e.target.value);
+  // [추가] 버튼으로 할 일 항목 추가하기
+  const handleAdd = () => {
+    setTodo([
+      ...todo,
+      {
+        id: maxId + 1,
+        title,
+        isDone: false
+      }
+    ]);
+  };
+  // [완료] 버튼으로 할 일 항목을 작업 완료로 표시
+  const handleDone = e => {
+    setTodo(todo.map(item => {
+      if (item.id === Number(e.target.dataset.id)) {
+        return {
+          ...item,
+          isDone: true
+        };
+      } else {
+        return item;
+      }
+    }));
+  };
+  // [삭제] 버튼으로 할 일 항목 삭제하기
+  const handleRemove = e => {
+    setTodo(todo.filter(item =>
+      item.id !== Number(e.target.dataset.id)
+    ));
+  };
+ 
+  return (
+    <div>
+      <label>
+        할 일:
+        <input type="text" name="todo"
+          value={title} onChange={handleChangeTitle} />
+      </label>
+      <button type="button"
+        onClick={handleAdd}>추가하기</button>
+      <hr />
+      <ul>
+        {/* 할 일 목록을 순서대로 출력 */}
+        {todo.map(item => (
+          <li key={item.id}
+            className={item.isDone ? 'done' : ''}>
+            {item.title}
+            <button type="button"
+              onClick={handleDone} data-id={item.id}>완료
+            </button>
+            <button type="button"
+              onClick={handleRemove} data-id={item.id}>삭제
+            </button>
+          </li>
+        ))}
+      </ul>
+    </div>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/RecoilTodoUp.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/RecoilTodoUp.js.html new file mode 100644 index 0000000..c1d55a5 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/RecoilTodoUp.js.html @@ -0,0 +1,295 @@ + + + + + + Code coverage report for src/chap07/RecoilTodoUp.js + + + + + + + + + +
+
+

All files / src/chap07 RecoilTodoUp.js

+
+ +
+ 0% + Statements + 0/14 +
+ + +
+ 0% + Branches + 0/4 +
+ + +
+ 0% + Functions + 0/6 +
+ + +
+ 0% + Lines + 0/13 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useRecoilState } from 'recoil';
+import { useState } from 'react';
+import { idsAtom, todoListSelector } from '../store/atomUp';
+import '../chap04/StateTodo.css';
+ 
+export default function RecoilTodoUp() {
+  const [title, setTitle] = useState('');
+  // Atom/Selector에서 값, 세터를 가져온다.
+  const [todo, setTodo] = useRecoilState(todoListSelector);
+  const [ids, setIds] = useRecoilState(idsAtom);
+ 
+  // 텍스트 상자에 입력한 내용을 State에 반영
+  const handleChangeTitle = e => {setTitle(e.target.value)};
+ 
+  // [추가] 버튼 클릭으로 할 일 항목 추가하기
+  const handleAdd = () => {
+    // id군의 최대값에서 다음 id값(+1)을 가져온다.
+    const newId = Math.max(...(ids.length ? ids : [0])) + 1;
+    setTodo({
+      type: 'add',
+      newItem: {
+        id: newId,
+        title,
+        isDone: false
+      }
+    });
+  };
+ 
+  // [완료] 버튼 클릭으로 해당 ToDo 항목을 작업 완료로 표시
+  const handleDone = e => {
+    setTodo({
+      type: 'done',
+      id: Number(e.target.dataset.id)
+    });
+  };
+ 
+  // [삭제] 버튼 클릭으로 해당 Todo 항목 삭제하기
+  const handleRemove = e => {
+    setTodo({
+      type: 'remove',
+      id: Number(e.target.dataset.id)
+    });
+  };
+ 
+  return (
+    <div>
+      <label>
+        할 일:
+        <input type="text" name="todo"
+          value={title} onChange={handleChangeTitle} />
+      </label>
+      <button type="button"
+        onClick={handleAdd}>추가</button>
+      <hr />
+      <ul>
+        {todo.map(item => (
+          <li key={item.id}
+            className={item.isDone ? 'done' : ''}>
+            {item.title}
+            <button type="button"
+              onClick={handleDone} data-id={item.id}>완료
+            </button>
+            <button type="button"
+              onClick={handleRemove} data-id={item.id}>삭제
+            </button>
+          </li>
+        ))}
+      </ul>
+    </div>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/StateEffect.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/StateEffect.js.html new file mode 100644 index 0000000..fe75c39 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/StateEffect.js.html @@ -0,0 +1,145 @@ + + + + + + Code coverage report for src/chap07/StateEffect.js + + + + + + + + + +
+
+

All files / src/chap07 StateEffect.js

+
+ +
+ 0% + Statements + 0/8 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/7 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useEffect, useState } from 'react';
+ 
+export default function StateEffect({ init }) {
+  const [count, setCount] = useState(init);
+  const [foo, setFoo] = useState('foo');
+ 
+  // State 값(count)이 변경된 경우에만 로그를 표시한다.
+  useEffect(() => {
+    console.log(`count is ${count}.`);
+  }, []);
+  const handleClick = () => setCount(count + 1);
+ 
+  return (
+    <>
+      {/* 버튼에 타임스탬프 값 반영 */}
+      <button onClick={() => setFoo(Date.now())}>Foo ({foo})</button>
+      <button onClick={handleClick}>카운트</button>
+      <p>{count}번 클릭되었습니다.</p>
+    </>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/ThemeContext.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/ThemeContext.js.html new file mode 100644 index 0000000..14e5920 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/ThemeContext.js.html @@ -0,0 +1,100 @@ + + + + + + Code coverage report for src/chap07/ThemeContext.js + + + + + + + + + +
+
+

All files / src/chap07 ThemeContext.js

+
+ +
+ 0% + Statements + 0/0 +
+ + +
+ 0% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/0 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6  +  +  +  +  + 
import { createContext } from 'react';
+ 
+export default createContext({
+  mode: 'light',
+  toggleMode: () => {}
+});
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/UseCounter.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/UseCounter.js.html new file mode 100644 index 0000000..8e19242 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/UseCounter.js.html @@ -0,0 +1,250 @@ + + + + + + Code coverage report for src/chap07/UseCounter.js + + + + + + + + + +
+
+

All files / src/chap07 UseCounter.js

+
+ +
+ 0% + Statements + 0/12 +
+ + +
+ 0% + Branches + 0/3 +
+ + +
+ 0% + Functions + 0/5 +
+ + +
+ 0% + Lines + 0/9 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useReducer } from 'react';
+ 
+export default function useCounter(init, step) {
+  // 카운터를 관리하기 위한 State/Reducer를 준비한다.
+  const [state, dispatch] = useReducer(
+    (state, action) => {
+      switch (action.type) {
+        case 'update':
+          return { count: state.count + action.step };
+        case 'reset' :
+          return { count: action.init };
+        default:
+          return state;
+      }
+    },
+    {
+      count: init
+    }
+  );
+  // 각 버튼에 대응하는 핸들러
+  const handleUp = () => dispatch({ type: 'update', step });
+  const handleDown = () => dispatch({ type: 'update', step: -step });
+  const handleReset = () => dispatch({ type: 'reset', init });
+  return [state, handleUp, handleDown, handleReset];
+}
+ 
+ 
+ 
+// Code 7-8-4
+// import { useDebugValue } from 'react';
+// import { useReducer } from 'react';
+ 
+// export default function useCounter(init, step) {
+//   // 카운터를 관리하기 위한 State/Reducer를 준비한다.
+//   const [state, dispatch] = useReducer(
+//     (state, action) => {
+//       switch (action.type) {
+//         case 'update':
+//           return { count: state.count + action.step };
+//         case 'reset' :
+//           return { count: action.init };
+//         default:
+//           return state;
+//       }
+//     },
+//     {
+//       count: init
+//     }
+//   );
+//   useDebugValue(state.count >= 10 ? '10 Over' : '10 Less');
+//   // 각 버튼에 대응하는 핸들러
+//   const handleUp = () => dispatch({ type: 'update', step });
+//   const handleDown = () => dispatch({ type: 'update', step: -step });
+//   const handleReset = () => dispatch({ type: 'reset', init });
+//   return [state, handleUp, handleDown, handleReset];
+// }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/books.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/books.js.html new file mode 100644 index 0000000..6fd9a1a --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/books.js.html @@ -0,0 +1,259 @@ + + + + + + Code coverage report for src/chap07/books.js + + + + + + + + + +
+
+

All files / src/chap07 books.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
const books = [
+  {
+    isbn: '9791158395124',
+    title: '게임 개발을 위한 미드저니, 스테이블 디퓨전 완벽 활용법',
+    slug: 'genai-game',
+    price: 28000,
+    summary: '생성형 AI를 활용한 게임 캐릭터, 배경, 아이템 제작부터 유니티 실전 프로젝트까지',
+    download: true,
+  },
+  {
+    isbn: '9791158395117',
+    title: '디자인을 위한 미드저니 완벽 활용법',
+    slug: 'midjourney-design',
+    price: 24000,
+    summary: '광고부터 캐릭터, 로고, 일러스트레이션, 표지, 포스터, 타이포까지 독창적인 디자인 만들기',
+    download: false,
+  },
+  {
+    isbn: '9791158395032',
+    title: '만들면서 배우는 블렌더 3D 입문',
+    slug: 'blender-basic',
+    price: 28000,
+    summary: '블렌더 기초, 모델링, 머티리얼, 애니메이션, 렌더링까지',
+    download: true,
+  },
+  {
+    isbn: '9791158395018',
+    title: '모던 그로스 마케팅',
+    slug: 'mgm',
+    price: 24000,
+    summary: '비용은 최소화하고 매출은 극대화하는 생존 마케팅 전략',
+    download: false,
+  },
+  {
+    isbn: '9791158395025',
+    title: '도메인 스토리텔링',
+    slug: 'domain-storytelling',
+    price: 28000,
+    summary: '도메인 주도 소프트웨어 구축을 위한 스토리텔링과 스토리 시각화 기법',
+    download: true,
+  },
+  {
+    isbn: '9791158395179',
+    title: '시작하세요! C# 12 프로그래밍',
+    slug: 'cs12',
+    price: 38000,
+    summary: '기본 문법부터 실전 예제까지',
+    download: true,
+  },
+  {
+    isbn: '9791158395186',
+    title: 'OpenAI API와 파이썬으로 나만의 챗GPT 만들기',
+    slug: 'my-chatgpt',
+    price: 24000,
+    summary: 'ChatGPT 기초부터 OpenAI API, 랭체인을 활용한 서비스 앱 제작까지',
+    download: true,
+  },
+];
+export default books;
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/comments.js.html b/modern-react/my-react/coverage/lcov-report/src/chap07/comments.js.html new file mode 100644 index 0000000..d93d725 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/comments.js.html @@ -0,0 +1,400 @@ + + + + + + Code coverage report for src/chap07/comments.js + + + + + + + + + +
+
+

All files / src/chap07 comments.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
const comments = [
+  {
+    id: 1,
+    isbn: '9791158395124',
+    rank: 5,
+    body: '미드저니랑 스테이블 디퓨전 이름만 듣고 어떻게 사용할지 궁금했는데 기대됩니다!',
+  },
+  {
+    id: 2,
+    isbn: '9791158395124',
+    rank: 3,
+    body: '게임 개발자로서 사이드 프로젝트에 활용할 수 있을 것 같아 기대가 됩니다',
+  },
+  {
+    id: 3,
+    isbn: '9791158395124',
+    rank: 4,
+    body: '게임 개발시, 원하는 리소스를 찾기 힘들었는데, 직접 만들 수 있을 것 같아서 기대됩니다!',
+  },
+  {
+    id: 4,
+    isbn: '9791158395117',
+    rank: 5,
+    body: '디자인을 하면서 미드저니 활용을 늘 하고 싶었는데 책이 출시되어 너무 좋아요!',
+  },
+  {
+    id: 5,
+    isbn: '9791158395117',
+    rank: 5,
+    body: '디자인을 배우며 미드저니를 잘 활용하고 싶은데 이 책을 참고하면 큰 도움이 될 것 같아요♥',
+  },
+  {
+    id: 6,
+    isbn: '9791158395018',
+    rank: 3,
+    body: '그로스 해킹에 대해 제대로 이야기 한 몇 안되는 국내 도서 같습니다.',
+  },
+  {
+    id: 7,
+    isbn: '9791158395018',
+    rank: 4,
+    body: '마케팅 하면서 몰랐던 부분이 이렇게 많았던걸 느꼈습니다.',
+  },
+  {
+    id: 8,
+    isbn: '9791158395179',
+    rank: 5,
+    body: '공부하려고샀는데 괜찮습니다',
+  },
+  {
+    id: 9,
+    isbn: '9791158395179',
+    rank: 5,
+    body: '이전 8.0보다가 회사 동생한테 주고 이직했는데 다시 필요해서 샀습니다.',
+  },
+  {
+    id: 10,
+    isbn: '9791158395018',
+    rank: 5,
+    body: '현존하는 최고의 그로스해킹 책! 마케터, CEO 라면 필수 도서',
+  },
+  {
+    id: 11,
+    isbn: '9791158395032',
+    rank: 4,
+    body: '약간 어려울 수 있지만 캐릭터 제작에 알아야 할 기본적인 내용들은 잘 구성되어 있네요',
+  },
+  {
+    id: 12,
+    isbn: '9791158395032',
+    rank: 3,
+    body: '기능설명이 자세하게 나와있어서 사전처럼 찾아보기 좋은책, 내용이 많아 순서대로 정독은 어렵',
+  },
+  {
+    id: 13,
+    isbn: '9791158395032',
+    rank: 4,
+    body: '초보자에게 좋아요',
+  },
+  {
+    id: 14,
+    isbn: '9791158395032',
+    rank: 5,
+    body: '초보자라면 강력 추천합니다. 입문자로서 많은 도움이 됐고 예제가 다양해서 좋았습니다',
+  },
+  {
+    id: 15,
+    isbn: '9791158395124',
+    rank: 3,
+    body: '생성형AI를 활용한 게임 개발에 흥미가 많이 있었는데, 좋은 교본이 될 것 같습니다.',
+  },
+  {
+    id: 16,
+    isbn: '9791158395124',
+    rank: 3,
+    body: 'ai를 게임개발에 활용할 수 있는 방법 정말 궁금하고 기대됩니다!',
+  },
+  {
+    id: 17,
+    isbn: '9791158395117',
+    rank: 4,
+    body: '발전하는 요즘이기에 공부해보려고 합니다!',
+  },
+];
+ 
+export default comments;
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap07/index.html b/modern-react/my-react/coverage/lcov-report/src/chap07/index.html new file mode 100644 index 0000000..ca84a9d --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap07/index.html @@ -0,0 +1,536 @@ + + + + + + Code coverage report for src/chap07 + + + + + + + + + +
+
+

All files src/chap07

+
+ +
+ 3.58% + Statements + 8/223 +
+ + +
+ 2.63% + Branches + 1/38 +
+ + +
+ 4.95% + Functions + 5/101 +
+ + +
+ 3.55% + Lines + 7/197 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
HookCallbackRef.js +
+
0%0/80%0/40%0/30%0/7
HookContext.js +
+
0%0/3100%0/00%0/10%0/3
HookContextChild.js +
+
0%0/3100%0/00%0/20%0/3
HookCustom.js +
+
0%0/2100%0/00%0/10%0/2
HookDeferred.js +
+
0%0/7100%0/00%0/30%0/7
HookDeferredTransition.js +
+
0%0/11100%0/00%0/40%0/10
HookEffect.js +
+
0%0/130%0/20%0/50%0/11
HookMemo.js +
+
0%0/15100%0/00%0/70%0/11
HookMemoChild.js +
+
0%0/6100%0/00%0/20%0/6
HookReducer.js +
+
0%0/70%0/20%0/30%0/7
HookReducerInit.js +
+
0%0/90%0/20%0/40%0/9
HookReducerUp.js +
+
0%0/120%0/30%0/50%0/9
HookRef.js +
+
0%0/110%0/20%0/50%0/9
HookRefForward.js +
+
0%0/4100%0/00%0/20%0/4
HookRefNg.js +
+
0%0/110%0/20%0/50%0/9
HookThemeButton.js +
+
0%0/2100%0/00%0/10%0/2
HookTimer.js +
+
100%8/850%1/2100%5/5100%7/7
HookTransition.js +
+
0%0/11100%0/00%0/50%0/10
HookTransitionChild.js +
+
0%0/130%0/40%0/60%0/11
MyTextBox.js +
+
0%0/1100%0/00%0/10%0/1
MyThemeProvider.js +
+
0%0/60%0/40%0/30%0/6
RecoilCounter.js +
+
0%0/7100%0/00%0/40%0/6
RecoilTodo.js +
+
0%0/170%0/40%0/80%0/16
RecoilTodoUp.js +
+
0%0/140%0/40%0/60%0/13
StateEffect.js +
+
0%0/8100%0/00%0/40%0/7
ThemeContext.js +
+
0%0/00%0/00%0/10%0/0
UseCounter.js +
+
0%0/120%0/30%0/50%0/9
books.js +
+
0%0/1100%0/0100%0/00%0/1
comments.js +
+
0%0/1100%0/0100%0/00%0/1
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/AboutPage.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/AboutPage.js.html new file mode 100644 index 0000000..6401458 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/AboutPage.js.html @@ -0,0 +1,163 @@ + + + + + + Code coverage report for src/chap08/AboutPage.js + + + + + + + + + +
+
+

All files / src/chap08 AboutPage.js

+
+ +
+ 0% + Statements + 0/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
// export default function AboutPage() {
+//   return (
+//     <>
+//       <p>About 페이지입니다.</p>
+//     </>
+//   );
+// }
+ 
+ 
+ 
+// Code 8-2-15
+import { useNavigate } from 'react-router-dom';
+ 
+export default function AboutPage() {
+  // navigate 함수 가져오기
+  const navigate = useNavigate();
+  // 홈페이지로 이동
+  const handleClick = () => navigate('/');
+ 
+  return (
+    <>
+      <p>About 페이지입니다.</p>
+      <button type="button" onClick={handleClick}>
+        홈으로 이동</button>
+    </>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/ArticlePage.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/ArticlePage.js.html new file mode 100644 index 0000000..1a9945b --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/ArticlePage.js.html @@ -0,0 +1,91 @@ + + + + + + Code coverage report for src/chap08/ArticlePage.js + + + + + + + + + +
+
+

All files / src/chap08 ArticlePage.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3  +  + 
export default function ArticlePage() {
+  return <p>Article 페이지입니다.</p>;
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/BookFormPage.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/BookFormPage.js.html new file mode 100644 index 0000000..d202833 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/BookFormPage.js.html @@ -0,0 +1,247 @@ + + + + + + Code coverage report for src/chap08/BookFormPage.js + + + + + + + + + +
+
+

All files / src/chap08 BookFormPage.js

+
+ +
+ 0% + Statements + 0/3 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
// import { Form } from 'react-router-dom';
+ 
+// export default function BookFormPage() {
+//   return (
+//   <Form method="POST" noValidate>
+//     <div>
+//       <label htmlFor="title">제목:</label><br/>
+//       <input id="title" name="title" type="text" size="20" />
+//     </div>
+//     <div>
+//       <label htmlFor="price">가격:</label><br/>
+//       <input id="price" name="price" type="number" />원
+//     </div>
+//     <div>
+//       <label htmlFor="published">출간일:</label><br/>
+//       <input id="published" name="published" type="date" />
+//     </div>
+//     <div>
+//       <button type="submit">등록하기</button>
+//     </div>
+//   </Form>
+//   );
+// }
+ 
+ 
+ 
+// Code 8-4-16
+import { Form, useActionData } from 'react-router-dom';
+ 
+export default function BookFormPage() {
+  const errors = useActionData();
+ 
+  return (
+  <Form method="POST" noValidate>
+    <ul>
+    {errors?.map(msg => <li key={msg}>{msg}</li>)}
+    </ul>
+    <div>
+      <label htmlFor="title">제목:</label><br/>
+      <input id="title" name="title" type="text" size="20" />
+    </div>
+    <div>
+      <label htmlFor="price">가격:</label><br/>
+      <input id="price" name="price" type="number" />원
+    </div>
+    <div>
+      <label htmlFor="published">출간일:</label><br/>
+      <input id="published" name="published" type="date" />
+    </div>
+    <div>
+      <button type="submit">등록하기</button>
+    </div>
+  </Form>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/BookNest.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/BookNest.js.html new file mode 100644 index 0000000..14708be --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/BookNest.js.html @@ -0,0 +1,184 @@ + + + + + + Code coverage report for src/chap08/BookNest.js + + + + + + + + + +
+
+

All files / src/chap08 BookNest.js

+
+ +
+ 0% + Statements + 0/6 +
+ + +
+ 0% + Branches + 0/1 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from 'react';
+import { NavLink, Outlet, useParams } from 'react-router-dom';
+import books from '../chap08/books';
+ 
+export function BookListPage() {
+  return (
+    <>
+    {/* 책 제목 목록 보기 (키는 ISBN 코드) */}
+    {books.map(b => (
+      <React.Fragment key={b.isbn}>
+        [<NavLink to={`/books/${b.isbn}`}>
+          {b.title}</NavLink>]|
+      </React.Fragment>
+    ))}
+    {/* 자식 경로를 표시하기 위한 영역 준비 */}
+    <Outlet />
+    </>
+  );
+}
+ 
+export function BookDetailsPage() {
+  const { isbn='979-1-1583-9517-9' } = useParams();
+  // 루트 매개변수: isbn을 키로 도서 검색
+  const book = books.find(b => isbn === b.isbn);
+ 
+  return (
+    <ul>
+      <li>ISBN 코드:{book.isbn}</li>
+      <li>도서명:{book.title}</li>
+      <li>가격:{book.price}</li>
+      <li>개요:{book.summary}</li>
+    </ul>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/BookPage.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/BookPage.js.html new file mode 100644 index 0000000..27d712c --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/BookPage.js.html @@ -0,0 +1,271 @@ + + + + + + Code coverage report for src/chap08/BookPage.js + + + + + + + + + +
+
+

All files / src/chap08 BookPage.js

+
+ +
+ 0% + Statements + 0/4 +
+ + +
+ 0% + Branches + 0/3 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
// import { useParams } from 'react-router-dom';
+ 
+// export default function BookPage() {
+//   // 경로 매개변수 가져오기
+//   const params = useParams();
+//   return <p>ISBN 코드 {params.isbn}의 페이지입니다.</p>;
+// }
+ 
+ 
+ 
+// Code 8-3-6
+// import { useParams } from 'react-router-dom';
+ 
+// export default function BookPage() {
+//   // 경로 매개변수 가져오기
+//   const { isbn = '979-1-1583-9517-9' } = useParams();
+//   return <p>ISBN 코드 {isbn}의 페이지입니다. </p>;
+// }
+ 
+ 
+ 
+// Code 8-3-26
+// import { useParams } from 'react-router-dom';
+// import MyHeader from './MyHeader';
+// import books from '../chap07/books';
+ 
+// export default function BookPage() {
+//   // 경로 매개변수 가져오기
+//   const { isbn = '9791158395179' } = useParams();
+//   const { title, summary } = books.find(b => isbn === b.isbn);
+ 
+//   return (
+//     <>
+//     <MyHeader title={title} keywords={title}
+//       description={summary} />
+//     <p>ISBN 코드 {isbn}의 페이지입니다. </p>
+//     </>
+//   );
+// }
+ 
+ 
+ 
+// Code 8-4-1
+import { useParams } from 'react-router-dom';
+ 
+export default function BookPage() {
+  const { isbn = '979-1-1583-9517-9' } = useParams();
+  // ISBN 코드의 형식을 따르지 않으면 오류
+  if (!/979-1-[0-9]{2,7}-[0-9]{2,7}-[0-9X]/.test(isbn)) {
+    throw new RangeError('ISBN is invalid!!');
+  }
+ 
+  return (<p>ISBN 코드 {isbn}의 페이지입니다.</p>);
+}
+ 
+ 
+//   // 例外をスローする
+//   // 
+//   // if (!/978-4-[0-9]{2,7}-[0-9]{2,7}-[0-9X]/.test(isbn)) {
+//   //   throw new RangeError('ISBN is invalid!!');
+//   // }
+//   // return <p>ISBNコード「{isbn}」のページです。</p>;
+// }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/BookQueryPage.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/BookQueryPage.js.html new file mode 100644 index 0000000..416ce2e --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/BookQueryPage.js.html @@ -0,0 +1,109 @@ + + + + + + Code coverage report for src/chap08/BookQueryPage.js + + + + + + + + + +
+
+

All files / src/chap08 BookQueryPage.js

+
+ +
+ 0% + Statements + 0/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9  +  +  +  +  +  +  +  + 
import { useSearchParams } from 'react-router-dom';
+ 
+export default function BookQueryPage() {
+  // 쿼리 정보 가져오기
+  const [ params, setParams ] = useSearchParams(
+    { isbn: '979-1-1583-9517-9' }
+  );
+  return <p>ISBN 코드 {params.get('isbn')}의 페이지입니다.</p>;
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/BookStatePage.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/BookStatePage.js.html new file mode 100644 index 0000000..bfac0ca --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/BookStatePage.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for src/chap08/BookStatePage.js + + + + + + + + + +
+
+

All files / src/chap08 BookStatePage.js

+
+ +
+ 0% + Statements + 0/2 +
+ + +
+ 0% + Branches + 0/1 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12  +  +  +  +  +  +  +  +  +  +  + 
import { useLocation } from 'react-router-dom';
+ 
+export default function BookStatePage() {
+  // Location 객체 가져오기
+  const { state: isbn = '979-1-1583-9517-9' } = useLocation();
+ 
+  return (
+    <>
+    <p>ISBN 코드 {isbn}의 페이지입니다.</p>
+    </>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/CommonErrorPage.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/CommonErrorPage.js.html new file mode 100644 index 0000000..6d11d6d --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/CommonErrorPage.js.html @@ -0,0 +1,163 @@ + + + + + + Code coverage report for src/chap08/CommonErrorPage.js + + + + + + + + + +
+
+

All files / src/chap08 CommonErrorPage.js

+
+ +
+ 0% + Statements + 0/8 +
+ + +
+ 0% + Branches + 0/6 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/8 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { isRouteErrorResponse, useRouteError } from 'react-router-dom';
+ 
+export default function CommonErrorPage() {
+  // 루트에서 발생한 오류를 가져온다.
+  const error = useRouteError();
+  // Response 형식의 오류인지
+  if (isRouteErrorResponse(error)) {
+    // 상태 코드에 따라 오류 페이지 생성
+    switch (error.status) {
+      case 404:
+        return <p>원하는 페이지를 찾을 수 없습니다.</p>;
+      case 401:
+        return <p>인증에 실패했습니다.</p>;
+      case 501:
+        return <p>서비스가 일시적으로 중단되었습니다.</p>;
+      default:
+        return <p>알 수 없는 오류: {error.data.message}</p>;
+    }
+  }
+  // 비응답형(Error형)의 경우의 오류 메시지
+  return (
+    <div>
+      <h3>문제가 발생했습니다.</h3>
+      <p>상세한 문제: {error.message}</p>
+    </div>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/FirstPage.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/FirstPage.js.html new file mode 100644 index 0000000..6e99cf2 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/FirstPage.js.html @@ -0,0 +1,163 @@ + + + + + + Code coverage report for src/chap08/FirstPage.js + + + + + + + + + +
+
+

All files / src/chap08 FirstPage.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
// import { Link } from 'react-router-dom';
+ 
+// export default function FirstPage() {
+//   return (
+//     <>
+//       <h2>FirstPage</h2>
+//       <hr />
+//       <p style={{ height: 800 }}></p>
+//       <p><Link to="/second">두 번째 페이지로 이동</Link></p>
+//     </>
+//   );
+// }
+ 
+ 
+ 
+import { Link } from 'react-router-dom';
+ 
+export default function FirstPage() {
+  return (
+    <>
+      <h2>FirstPage</h2>
+      <hr />
+      <p style={{ height: 800 }}></p>
+      <p><Link to="/second" preventScrollReset>Second 페이지로 이동</Link></p>
+    </>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/InfoPage.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/InfoPage.js.html new file mode 100644 index 0000000..0679e92 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/InfoPage.js.html @@ -0,0 +1,121 @@ + + + + + + Code coverage report for src/chap08/InfoPage.js + + + + + + + + + +
+
+

All files / src/chap08 InfoPage.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13  +  +  +  +  +  +  +  +  +  +  +  + 
import { Link } from 'react-router-dom';
+ 
+export default function InfoPage() {
+  return (
+    <>
+    <p>Info 페이지입니다.</p>
+    <Link to="..">상위</Link>
+    {/* <Link to=".." relative="path">상위</Link> */}
+    {/* <Link to="/" reloadDocument>상위</Link> */}
+    </>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/InvalidParamsPage.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/InvalidParamsPage.js.html new file mode 100644 index 0000000..e651ab0 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/InvalidParamsPage.js.html @@ -0,0 +1,109 @@ + + + + + + Code coverage report for src/chap08/InvalidParamsPage.js + + + + + + + + + +
+
+

All files / src/chap08 InvalidParamsPage.js

+
+ +
+ 0% + Statements + 0/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9  +  +  +  +  +  +  +  + 
import { useRouteError } from 'react-router-dom';
+ 
+export default function InvalidParamsPage() {
+  // 루트에서 발생한 오류를 가져온다.
+  const error = useRouteError();
+  return (
+    <p style={{ color: 'Red' }}>{error.message}</p>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/MyHeader.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/MyHeader.js.html new file mode 100644 index 0000000..c46fbe9 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/MyHeader.js.html @@ -0,0 +1,148 @@ + + + + + + Code coverage report for src/chap08/MyHeader.js + + + + + + + + + +
+
+

All files / src/chap08 MyHeader.js

+
+ +
+ 0% + Statements + 0/5 +
+ + +
+ 0% + Branches + 0/5 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { Helmet } from 'react-helmet-async';
+import { useMatches } from 'react-router-dom';
+ 
+export default function MyHeader(props) {
+  let {
+    title = '리액트 입문',
+    keywords = '리액트, 자바스크립트, 프레임워크',
+    description = '리액트 입문용 샘플입니다.'
+  } = useMatches().at(-1).handle ?? {};
+  // Placeholder에 Props의 값을 반영한다.
+  title = title.replace('%s', props.title);
+  keywords = keywords.replace('%s', props.keywords);
+  description = description.replace('%s', props.description);
+  return (
+    // <head> 요소에 삽입할 요소 준비하기
+    <Helmet>
+      <title>{title}</title>
+      <meta name="keywords" content={keywords} />
+      <meta name="description" content={description} />
+    </Helmet>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/MyLink.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/MyLink.js.html new file mode 100644 index 0000000..7d7b280 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/MyLink.js.html @@ -0,0 +1,121 @@ + + + + + + Code coverage report for src/chap08/MyLink.js + + + + + + + + + +
+
+

All files / src/chap08 MyLink.js

+
+ +
+ 0% + Statements + 0/3 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13  +  +  +  +  +  +  +  +  +  +  +  + 
import { Link, useMatch, useResolvedPath } from 'react-router-dom';
+import './RouterNav.css';
+ 
+export function MyLink({ to, children, ...props }) {
+  // 현재 경로와 링크가 일치하는지를 판단한다.
+  const resolvedPath = useResolvedPath(to);	
+  const isMatch = !!useMatch({
+    path: resolvedPath.pathname, end: true });
+  // 일치 여부에 따라 링크 또는 평문 텍스트를 반환한다.
+  return isMatch ?
+    <span className="active">{children}</span> :
+    <Link to={to} {...props}>{children}</Link>;
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/NotFoundPage.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/NotFoundPage.js.html new file mode 100644 index 0000000..102c055 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/NotFoundPage.js.html @@ -0,0 +1,100 @@ + + + + + + Code coverage report for src/chap08/NotFoundPage.js + + + + + + + + + +
+
+

All files / src/chap08 NotFoundPage.js

+
+ +
+ 0% + Statements + 0/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6  +  +  +  +  + 
import { useParams } from 'react-router-dom';
+ 
+export default function NotFoundPage() {
+  const { '*': paths } = useParams();
+  return <p>지정된 경로 {paths}가 존재하지 않습니다.</p>;
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/RouterApp.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/RouterApp.js.html new file mode 100644 index 0000000..032d2fe --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/RouterApp.js.html @@ -0,0 +1,259 @@ + + + + + + Code coverage report for src/chap08/RouterApp.js + + + + + + + + + +
+
+

All files / src/chap08 RouterApp.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { Link, Outlet } from 'react-router-dom';
+ 
+export default function RouterApp() {
+  return (
+    <>
+      <ul>
+        {/* 라우팅 지원 링크 생성 */}
+        <li><Link to="/">홈</Link></li>
+        <li><Link to="/article">기사</Link></li>
+        <li><Link to="/about">회사 소개</Link></li>
+      </ul>
+      <hr />
+      {/* 링크 표시 영역 확보 */}
+      <Outlet />
+    </>
+  );
+}
+ 
+ 
+// Code 8-2-10
+// import { Link, Outlet } from 'react-router-dom';
+ 
+// export default function RouterApp() {
+//   return (
+//     <>
+//       <ul>
+//         {/* 라우팅 지원 링크 생성 */}
+//         <li><Link to="/">홈</Link></li>
+//         <li><Link to="/article">기사</Link></li>
+//         <li><Link to="/about" replace>회사 소개</Link></li>
+//       </ul>
+//       <hr />
+//       {/* 링크 표시 영역 확보 */}
+//       <Outlet />
+//     </>
+//   );
+// }
+ 
+ 
+ 
+// Code 8-2-11
+// import { Link, Outlet } from 'react-router-dom';
+ 
+// export default function RouterApp() {
+//   return (
+//     <>
+//       <ul>
+//         {/* 라우팅 지원 링크 생성 */}
+//         <li><Link to="/">홈</Link></li>
+//         <li><Link to="/article">기사</Link></li>
+//         <li><Link to="/about">회사 소개</Link></li>
+//         <li><Link to="/article/info">정보</Link></li>
+//       </ul>
+//       <hr />
+//       {/* 링크 표시 영역 확보 */}
+//       <Outlet />
+//     </>
+//   );
+// }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/RouterCustom.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/RouterCustom.js.html new file mode 100644 index 0000000..ce323be --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/RouterCustom.js.html @@ -0,0 +1,133 @@ + + + + + + Code coverage report for src/chap08/RouterCustom.js + + + + + + + + + +
+
+

All files / src/chap08 RouterCustom.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { Outlet } from 'react-router-dom';
+import { MyLink } from './MyLink';
+ 
+export default function RouterCustom() {
+  return (
+    <>
+      {/* 자체 제작 링크로 메뉴 부분 대체 */}
+      <ul>
+        <li><MyLink to="/">홈</MyLink></li>
+        <li><MyLink to="/article">기사</MyLink></li>
+        <li><MyLink to="/about">회사 소개</MyLink></li>
+      </ul>
+      <hr />
+      <Outlet />
+    </>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/RouterNav.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/RouterNav.js.html new file mode 100644 index 0000000..f140818 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/RouterNav.js.html @@ -0,0 +1,271 @@ + + + + + + Code coverage report for src/chap08/RouterNav.js + + + + + + + + + +
+
+

All files / src/chap08 RouterNav.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { NavLink, Outlet } from 'react-router-dom';
+import './RouterNav.css';
+ 
+export default function RouterNav() {
+  return (
+    <>
+      <ul>
+        <li><NavLink to="/">홈</NavLink></li>
+        <li><NavLink to="/article">기사</NavLink></li>
+        <li><NavLink to="/about">회사 소개</NavLink></li>
+      </ul>
+      <hr />
+      <Outlet />
+    </>
+  );
+}
+ 
+ 
+ 
+// Code 8-2-8
+// import { NavLink, Outlet } from 'react-router-dom';
+// import './RouterNav.css';
+ 
+// const isCurrent = ({ isActive, isPending }) => isActive ? 'active' : '';
+ 
+// export default function RouterNav() {
+//   return (
+//     <>
+//       <ul>
+//         <li><NavLink className={isCurrent} to="/">홈</NavLink></li>
+//         <li><NavLink className={isCurrent} to="/article">기사</NavLink></li>
+//         <li><NavLink className={isCurrent} to="/about">회사 소개</NavLink></li>
+//       </ul>
+//       <hr />
+//       <Outlet />
+//     </>
+//   );
+// }
+ 
+ 
+ 
+// Code 8-2-9
+// import { NavLink, Outlet } from 'react-router-dom';
+// import './RouterNav.css';
+ 
+// const isCurrent = ({ isActive }) => isActive ? {
+//   color: 'Red',
+//   fontWeight: 'bold'
+// } : {};
+ 
+// export default function RouterNav() {
+//   return (
+//     <>
+//       <ul>
+//         <li><NavLink style={isCurrent} to="/">홈</NavLink></li>
+//         <li><NavLink style={isCurrent} to="/article">기사</NavLink></li>
+//         <li><NavLink style={isCurrent} to="/about">회사 소개</NavLink></li>
+//       </ul>
+//       <hr />
+//       <Outlet />
+//     </>
+//   );
+// }
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/RouterParam.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/RouterParam.js.html new file mode 100644 index 0000000..cbe8d7c --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/RouterParam.js.html @@ -0,0 +1,1315 @@ + + + + + + Code coverage report for src/chap08/RouterParam.js + + + + + + + + + +
+
+

All files / src/chap08 RouterParam.js

+
+ +
+ 0% + Statements + 0/3 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/3 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
// import { NavLink, Outlet, useNavigation } from 'react-router-dom';
+// import './RouterNav.css';
+ 
+// export default function RouterParam() {
+//   return (
+//     <>
+//       <ul>
+//         <li><NavLink to="/">홈</NavLink></li>
+//         <li><NavLink to="/book/979-1-1583-9517-9">
+//           시작하세요! C# 12 프로그래밍</NavLink></li>
+//         <li><NavLink to="/bookQuery?isbn=979-1-1583-9518-6">
+//           OpenAI API와 파이썬으로 나만의 챗GPT 만들기</NavLink></li>
+//       </ul>
+//       <hr />
+//       <Outlet />
+//     </>
+//   );
+// }
+ 
+ 
+ 
+// Code 8-3-7
+// import { NavLink, Outlet } from 'react-router-dom';
+// import './RouterNav.css';
+ 
+// export default function RouterParam() {
+//   return (
+//     <>
+//       <ul>
+//         <li><NavLink to="/">홈</NavLink></li>
+//         <li><NavLink to="/book/979-1-1583-9517-9">
+//           시작하세요! C# 12 프로그래밍</NavLink></li>
+//         <li><NavLink to="/book/979-1-1583-9518-6">
+//           OpenAI API와 파이썬으로 나만의 챗GPT 만들기</NavLink></li>
+//         <li><NavLink to="/book" end>기본 도서</NavLink></li>
+//       </ul>
+//       <hr />
+//       <Outlet />
+//     </>
+//   );
+// }
+ 
+ 
+ 
+// Code 8-3-10
+// import { NavLink, Outlet } from 'react-router-dom';
+// import './RouterNav.css';
+ 
+// export default function RouterParam() {
+//   return (
+//     <>
+//       <ul>
+//         <li><NavLink to="/">홈</NavLink></li>
+//         <li><NavLink to="/book/979-1-1583-9517-9">
+//           시작하세요! C# 12 프로그래밍</NavLink></li>
+//         <li><NavLink to="/book/979-1-1583-9518-6">
+//           OpenAI API와 파이썬으로 나만의 챗GPT 만들기</NavLink></li>
+//         <li><NavLink to="/book" end>기본 도서</NavLink></li>
+//         <li><NavLink to="/search/react/router/remix">검색 결과</NavLink></li>
+//       </ul>
+//       <hr />
+//       <Outlet />
+//     </>
+//   );
+// }
+ 
+ 
+ 
+// Code 8-3-13
+// import { NavLink, Outlet } from 'react-router-dom';
+// import './RouterNav.css';
+ 
+// export default function RouterParam() {
+//   return (
+//     <>
+//       <ul>
+//         <li><NavLink to="/">홈</NavLink></li>
+//         <li><NavLink to="/book/979-1-1583-9517-9">
+//           시작하세요! C# 12 프로그래밍</NavLink></li>
+//         <li><NavLink to="/book/979-1-1583-9518-6">
+//           OpenAI API와 파이썬으로 나만의 챗GPT 만들기</NavLink></li>
+//         <li><NavLink to="/book" end>기본 도서</NavLink></li>
+//         <li><NavLink to="/search/react/router/remix">검색 결과</NavLink></li>
+//         <li><NavLink to="/nothing/foo/bar">존재하지 않는 페이지</NavLink></li>
+//       </ul>
+//       <hr />
+//       <Outlet />
+//     </>
+//   );
+// }
+ 
+ 
+ 
+// Code 8-3-16
+// import { NavLink, Outlet } from 'react-router-dom';
+// import './RouterNav.css';
+ 
+// export default function RouterParam() {
+//   return (
+//     <>
+//       <ul>
+//         <li><NavLink to="/">홈</NavLink></li>
+//         <li><NavLink to="/book/979-1-1583-9517-9">
+//           시작하세요! C# 12 프로그래밍</NavLink></li>
+//         <li><NavLink to="/book/979-1-1583-9518-6">
+//           OpenAI API와 파이썬으로 나만의 챗GPT 만들기</NavLink></li>
+//         <li><NavLink to="/bookQuery?isbn=979-1-1583-9512-4">
+//           게임 개발을 위한 미드저니, 스테이블 디퓨전 완벽 활용법(쿼리 버전)</NavLink></li>
+//         <li><NavLink to="/book" end>기본 도서</NavLink></li>
+//         <li><NavLink to="/search/react/router/remix">검색 결과</NavLink></li>
+//         <li><NavLink to="/nothing/foo/bar">존재하지 않는 페이지</NavLink></li>
+//       </ul>
+//       <hr />
+//       <Outlet />
+//     </>
+//   );
+// }
+ 
+ 
+ 
+// Code 8-3-18
+// import { NavLink, Outlet } from 'react-router-dom';
+// import './RouterNav.css';
+ 
+// export default function RouterParam() {
+//   return (
+//     <>
+//       <ul>
+//         <li><NavLink to="/">홈</NavLink></li>
+//         <li><NavLink to="/book/979-1-1583-9517-9">
+//           시작하세요! C# 12 프로그래밍</NavLink></li>
+//         <li><NavLink to="/book/979-1-1583-9518-6">
+//           OpenAI API와 파이썬으로 나만의 챗GPT 만들기</NavLink></li>
+//         <li><NavLink to="/bookQuery?isbn=979-1-1583-9512-4">
+//           게임 개발을 위한 미드저니, 스테이블 디퓨전 완벽 활용법(쿼리 버전)</NavLink></li>
+//         <li><NavLink to="/bookState" state="979-1-1583-9511-7">
+//           디자인을 위한 미드저니 완벽 활용법(State 버전)</NavLink></li>
+//         <li><NavLink to="/book" end>기본 도서</NavLink></li>
+//         <li><NavLink to="/search/react/router/remix">검색 결과</NavLink></li>
+//         <li><NavLink to="/nothing/foo/bar">존재하지 않는 페이지</NavLink></li>
+//       </ul>
+//       <hr />
+//       <Outlet />
+//     </>
+//   );
+// }
+ 
+ 
+ 
+// Code 8-3-20
+// import { useState } from 'react';
+// import { NavLink, Outlet } from 'react-router-dom';
+// import './RouterNav.css';
+ 
+// export default function RouterParam() {
+//   // 카운트 수를 관리하기 위한 State를 준비한다.
+//   const [count, setCount] = useState(0);
+ 
+//   return (
+//     <>
+//       <p>접속자 수:{count}</p>
+//       <ul>
+//         <li><NavLink to="/">홈</NavLink></li>
+//         <li><NavLink to="/book/979-1-1583-9517-9">
+//           시작하세요! C# 12 프로그래밍</NavLink></li>
+//         <li><NavLink to="/book/979-1-1583-9518-6">
+//           OpenAI API와 파이썬으로 나만의 챗GPT 만들기</NavLink></li>
+//         <li><NavLink to="/bookQuery?isbn=979-1-1583-9512-4">
+//           게임 개발을 위한 미드저니, 스테이블 디퓨전 완벽 활용법(쿼리 버전)</NavLink></li>
+//         <li><NavLink to="/bookState" state="979-1-1583-9511-7">
+//           디자인을 위한 미드저니 완벽 활용법(State 버전)</NavLink></li>
+//         <li><NavLink to="/book" end>기본 도서</NavLink></li>
+//         <li><NavLink to="/search/react/router/remix">검색 결과</NavLink></li>
+//         <li><NavLink to="/nothing/foo/bar">존재하지 않는 페이지</NavLink></li>
+//       </ul>
+//       <hr />
+//       {/* 컨텍스트에 count/setCount를 삽입 */}
+//       <Outlet context={[count, setCount]} />
+//     </>
+//   );
+// }
+ 
+ 
+ 
+// Code 8-4-2
+// import { useState } from 'react';
+// import { NavLink, Outlet } from 'react-router-dom';
+// import './RouterNav.css';
+ 
+// export default function RouterParam() {
+//   // 카운트 수를 관리하기 위한 State를 준비한다.
+//   const [count, setCount] = useState(0);
+ 
+//   return (
+//     <>
+//       <p>접속자 수:{count}</p>
+//       <ul>
+//         <li><NavLink to="/">홈</NavLink></li>
+//         <li><NavLink to="/book/979-1-1583-9517-9">
+//           시작하세요! C# 12 프로그래밍</NavLink></li>
+//         <li><NavLink to="/book/979-1-1583-9518-6">
+//           OpenAI API와 파이썬으로 나만의 챗GPT 만들기</NavLink></li>
+//         <li><NavLink to="/bookQuery?isbn=979-1-1583-9512-4">
+//           게임 개발을 위한 미드저니, 스테이블 디퓨전 완벽 활용법(쿼리 버전)</NavLink></li>
+//         <li><NavLink to="/bookState" state="979-1-1583-9511-7">
+//           디자인을 위한 미드저니 완벽 활용법(State 버전)</NavLink></li>
+//         <li><NavLink to="/book" end>기본 도서</NavLink></li>        
+//         <li><NavLink to="/search/react/router/remix">검색 결과</NavLink></li>
+//         <li><NavLink to="/weather/Seoul">서울 날씨</NavLink></li>
+//         <li><NavLink to="/nothing/foo/bar">존재하지 않는 페이지</NavLink></li>
+//       </ul>
+//       <hr />
+//       {/* 컨텍스트에 count/setCount를 삽입 */}
+//       <Outlet context={[count, setCount]} />
+//     </>
+//   );
+// }
+ 
+ 
+ 
+// Code 8-4-4
+// import { useState } from 'react';
+// import { NavLink, Outlet } from 'react-router-dom';
+// import './RouterNav.css';
+ 
+// export default function RouterParam() {
+//   // 카운트 수를 관리하기 위한 State를 준비한다.
+//   const [count, setCount] = useState(0);
+ 
+//   return (
+//     <>
+//       <p>접속자 수:{count}</p>
+//       <ul>
+//         <li><NavLink to="/">홈</NavLink></li>
+//         <li><NavLink to="/book/979-1-1583-9517-9">
+//           시작하세요! C# 12 프로그래밍</NavLink></li>
+//         <li><NavLink to="/book/979-1-1583-9518-6">
+//           OpenAI API와 파이썬으로 나만의 챗GPT 만들기</NavLink></li>
+//         <li><NavLink to="/bookQuery?isbn=979-1-1583-9512-4">
+//           게임 개발을 위한 미드저니, 스테이블 디퓨전 완벽 활용법(쿼리 버전)</NavLink></li>
+//         <li><NavLink to="/bookState" state="979-1-1583-9511-7">
+//           디자인을 위한 미드저니 완벽 활용법(State 버전)</NavLink></li>
+//         <li><NavLink to="/book" end>기본 도서</NavLink></li>        
+//         <li><NavLink to="/search/react/router/remix">검색 결과</NavLink></li>
+//         <li><NavLink to="/weather/Seoul">서울 날씨</NavLink></li>
+//         <li><NavLink to="/nothing/foo/bar">존재하지 않는 페이지</NavLink></li>
+//       </ul>
+//       <hr />
+//       {/* 컨텍스트에 count/setCount를 삽입 */}
+//       <Outlet context={[count, setCount]} />
+//     </>
+//   );
+// }
+ 
+ 
+ 
+// Code 8-4-7
+// import { useState } from 'react';
+// import { NavLink, Outlet } from 'react-router-dom';
+// import './RouterNav.css';
+ 
+// export default function RouterParam() {
+//   // 카운트 수를 관리하기 위한 State를 준비한다.
+//   const [count, setCount] = useState(0);
+ 
+//   return (
+//     <>
+//       <p>접속자 수:{count}</p>
+//       <ul>
+//         <li><NavLink to="/">홈</NavLink></li>
+//         <li><NavLink to="/book/979-1-1583-9517-9">
+//           시작하세요! C# 12 프로그래밍</NavLink></li>
+//         <li><NavLink to="/book/979-1-1583-9518-6">
+//           OpenAI API와 파이썬으로 나만의 챗GPT 만들기</NavLink></li>
+//         <li><NavLink to="/bookQuery?isbn=979-1-1583-9512-4">
+//           게임 개발을 위한 미드저니, 스테이블 디퓨전 완벽 활용법(쿼리 버전)</NavLink></li>
+//         <li><NavLink to="/bookState" state="979-1-1583-9511-7">
+//           디자인을 위한 미드저니 완벽 활용법(State 버전)</NavLink></li>
+//         <li><NavLink to="/book" end>기본 도서</NavLink></li>        
+//         <li><NavLink to="/search/react/router/remix">검색 결과</NavLink></li>
+//         <li><NavLink to="/weather/Seoul">서울 날씨</NavLink></li>
+//         <li><NavLink to="/nothing/foo/bar">존재하지 않는 페이지</NavLink></li>
+//       </ul>
+//       <hr />
+//       {/* 컨텍스트에 count/setCount를 삽입 */}
+//       <Outlet context={[count, setCount]} />
+//     </>
+//   );
+// }
+ 
+ 
+ 
+// Code 8-4-12
+// import { useState } from 'react';
+// import { NavLink, Outlet, useNavigation } from 'react-router-dom';
+// import './RouterNav.css';
+ 
+// export default function RouterParam() {
+//   // 카운트 수를 관리하기 위한 State를 준비한다.
+//   const [count, setCount] = useState(0);
+ 
+//   // 내비게이션 정보 획득
+//   const navigation = useNavigation();
+ 
+//   return (
+//     <>
+//       <p>접속자 수:{count}</p>
+//       <ul>
+//         <li><NavLink to="/">홈</NavLink></li>
+//         <li><NavLink to="/book/979-1-1583-9517-9">
+//           시작하세요! C# 12 프로그래밍</NavLink></li>
+//         <li><NavLink to="/book/979-1-1583-9518-6">
+//           OpenAI API와 파이썬으로 나만의 챗GPT 만들기</NavLink></li>
+//         <li><NavLink to="/bookQuery?isbn=979-1-1583-9512-4">
+//           게임 개발을 위한 미드저니, 스테이블 디퓨전 완벽 활용법(쿼리 버전)</NavLink></li>
+//         <li><NavLink to="/bookState" state="979-1-1583-9511-7">
+//           디자인을 위한 미드저니 완벽 활용법(State 버전)</NavLink></li>
+//         <li><NavLink to="/book" end>기본 도서</NavLink></li>        
+//         <li><NavLink to="/search/react/router/remix">검색 결과</NavLink></li>
+//         <li><NavLink to="/weather/Seoul">서울 날씨</NavLink></li>
+//         <li><NavLink to="/nothing/foo/bar">존재하지 않는 페이지</NavLink></li>
+//       </ul>
+//       <Outlet context={[count, setCount]} />
+//       {
+//         // 트랜지션 상태에 따라 출력을 분기
+//         navigation.state === 'loading' ?
+//           <p>Loading...</p> :
+//           <Outlet />
+//       }
+//     </>
+//   );
+// }
+ 
+ 
+ 
+// Code 8-4-17
+// import { useState } from 'react';
+// import { NavLink, Outlet, useNavigation } from 'react-router-dom';
+// import './RouterNav.css';
+ 
+// export default function RouterParam() {
+//   // 카운트 수를 관리하기 위한 State를 준비한다.
+//   const [count, setCount] = useState(0);
+ 
+//   // 내비게이션 정보 획득
+//   const navigation = useNavigation();
+ 
+//   return (
+//     <>
+//       <p>접속자 수:{count}</p>
+//       <ul>
+//         <li><NavLink to="/">홈</NavLink></li>
+//         <li><NavLink to="/book/form">도서 등록 양식</NavLink></li>
+//         <li><NavLink to="/book/979-1-1583-9517-9">
+//           시작하세요! C# 12 프로그래밍</NavLink></li>
+//         <li><NavLink to="/book/979-1-1583-9518-6">
+//           OpenAI API와 파이썬으로 나만의 챗GPT 만들기</NavLink></li>
+//         <li><NavLink to="/bookQuery?isbn=979-1-1583-9512-4">
+//           게임 개발을 위한 미드저니, 스테이블 디퓨전 완벽 활용법(쿼리 버전)</NavLink></li>
+//         <li><NavLink to="/bookState" state="979-1-1583-9511-7">
+//           디자인을 위한 미드저니 완벽 활용법(State 버전)</NavLink></li>
+//         <li><NavLink to="/book" end>기본 도서</NavLink></li>        
+//         <li><NavLink to="/search/react/router/remix">검색 결과</NavLink></li>
+//         <li><NavLink to="/weather/Seoul">서울 날씨</NavLink></li>
+//         <li><NavLink to="/nothing/foo/bar">존재하지 않는 페이지</NavLink></li>
+//       </ul>
+//       <hr />
+//       <Outlet context={[count, setCount]} />
+//     </>
+//   );
+// }
+ 
+ 
+ 
+// Code 8-4-22
+import { useState } from 'react';
+import { NavLink, Outlet, useNavigation } from 'react-router-dom';
+import './RouterNav.css';
+ 
+export default function RouterParam() {
+  // 카운트 수를 관리하기 위한 State를 준비한다.
+  const [count, setCount] = useState(0);
+ 
+  // 내비게이션 정보 획득
+  const navigation = useNavigation();
+ 
+  return (
+    <>
+      <p>접속자 수:{count}</p>
+      <ul>
+        <li><NavLink to="/">홈</NavLink></li>
+        <li><NavLink to="/book/form">도서 등록 양식</NavLink></li>
+        <li><NavLink to="/books">도서 목록</NavLink></li>
+        <li><NavLink to="/book/979-1-1583-9517-9">
+          시작하세요! C# 12 프로그래밍</NavLink></li>
+        <li><NavLink to="/book/979-1-1583-9518-6">
+          OpenAI API와 파이썬으로 나만의 챗GPT 만들기</NavLink></li>
+        <li><NavLink to="/bookQuery?isbn=979-1-1583-9512-4">
+          게임 개발을 위한 미드저니, 스테이블 디퓨전 완벽 활용법(쿼리 버전)</NavLink></li>
+        <li><NavLink to="/bookState" state="979-1-1583-9511-7">
+          디자인을 위한 미드저니 완벽 활용법(State 버전)</NavLink></li>
+        <li><NavLink to="/book" end>기본 도서</NavLink></li>        
+        <li><NavLink to="/search/react/router/remix">검색 결과</NavLink></li>
+        <li><NavLink to="/weather/Seoul">서울 날씨</NavLink></li>
+        <li><NavLink to="/nothing/foo/bar">존재하지 않는 페이지</NavLink></li>
+      </ul>
+      <hr />
+      <Outlet context={[count, setCount]} />
+    </>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/RouterScroll.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/RouterScroll.js.html new file mode 100644 index 0000000..108dbd8 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/RouterScroll.js.html @@ -0,0 +1,190 @@ + + + + + + Code coverage report for src/chap08/RouterScroll.js + + + + + + + + + +
+
+

All files / src/chap08 RouterScroll.js

+
+ +
+ 0% + Statements + 0/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
// import { Outlet } from 'react-router-dom';
+ 
+// export default function RouterScroll() {
+//   return (
+//     <>
+//       <Outlet />
+//     </>
+//   );
+// }
+ 
+ 
+ 
+// Code 8-5-9
+// import { Outlet, ScrollRestoration } from 'react-router-dom';
+ 
+// export default function RouterScroll() {
+//   return (
+//     <>
+//       <ScrollRestoration />
+//       <Outlet />
+//     </>
+//   );
+// }
+ 
+ 
+ 
+import { Outlet, ScrollRestoration } from 'react-router-dom';
+ 
+export default function RouterScroll() {
+  return (
+    <>
+      <ScrollRestoration getKey={(location, matches) => location.pathname} />
+      <Outlet />
+    </>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/SearchPage.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/SearchPage.js.html new file mode 100644 index 0000000..6f4ae2e --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/SearchPage.js.html @@ -0,0 +1,100 @@ + + + + + + Code coverage report for src/chap08/SearchPage.js + + + + + + + + + +
+
+

All files / src/chap08 SearchPage.js

+
+ +
+ 0% + Statements + 0/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6  +  +  +  +  + 
import { useParams } from 'react-router-dom';
+ 
+export default function SearchPage() {
+  const { '*': keywords } = useParams();
+  return <p>검색어 {keywords}의 페이지입니다.</p>;
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/SecondPage.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/SecondPage.js.html new file mode 100644 index 0000000..d3a3a0f --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/SecondPage.js.html @@ -0,0 +1,118 @@ + + + + + + Code coverage report for src/chap08/SecondPage.js + + + + + + + + + +
+
+

All files / src/chap08 SecondPage.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12  +  +  +  +  +  +  +  +  +  +  + 
import { Link } from 'react-router-dom';
+ 
+export default function SecondPage() {
+  return (
+    <>
+      <h2>SecondPage</h2>
+      <hr />
+      <p style={{ height: 800 }}></p>
+      <p><Link to="/">첫 번째 페이지로 이동</Link></p>
+    </>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/TopPage.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/TopPage.js.html new file mode 100644 index 0000000..4edb44a --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/TopPage.js.html @@ -0,0 +1,238 @@ + + + + + + Code coverage report for src/chap08/TopPage.js + + + + + + + + + +
+
+

All files / src/chap08 TopPage.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
// export default function TopPage() {
+//   return <p>홈페이지입니다.</p>;
+// }
+ 
+ 
+ 
+// Code 8-3-21
+// import { useEffect } from 'react';
+// import { useOutletContext } from 'react-router-dom';
+ 
+// export default function TopPage() {
+//   const [, setCount] = useOutletContext();
+//   useEffect(() => setCount(c => c + 1), [setCount]);
+//   return <p>홈페이지입니다.</p>;
+// }
+ 
+ 
+ 
+// Code 8-3-25
+// import { useEffect } from 'react';
+// import { useOutletContext } from 'react-router-dom';
+// import MyHeader from './MyHeader';
+ 
+// export default function TopPage() {
+//   const [, setCount] = useOutletContext();
+//   useEffect(() => setCount(c => c + 1), [setCount]);
+//   return (
+//     <>
+//       <MyHeader />
+//       <p>홈페이지입니다.</p>
+//     </>
+//   );
+// }
+ 
+ 
+ 
+// Code 8-4-2 (8-3-21)
+// import { useEffect } from 'react';
+// import { useOutletContext } from 'react-router-dom';
+ 
+// export default function TopPage() {
+//   const [, setCount] = useOutletContext();
+//   useEffect(() => setCount(c => c + 1), [setCount]);
+//   return <p>홈페이지입니다.</p>;
+// }
+ 
+ 
+ 
+// Code 8-5-4
+export default function TopPage() {
+  return <p>홈페이지입니다.</p>;
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/WeatherLazyPage.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/WeatherLazyPage.js.html new file mode 100644 index 0000000..2bc707f --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/WeatherLazyPage.js.html @@ -0,0 +1,250 @@ + + + + + + Code coverage report for src/chap08/WeatherLazyPage.js + + + + + + + + + +
+
+

All files / src/chap08 WeatherLazyPage.js

+
+ +
+ 0% + Statements + 0/23 +
+ + +
+ 0% + Branches + 0/11 +
+ + +
+ 0% + Functions + 0/5 +
+ + +
+ 0% + Lines + 0/20 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { isRouteErrorResponse, json,
+  useLoaderData, useRouteError } from 'react-router-dom';
+ 
+const sleep = ms => new Promise(res => setTimeout(res, ms));
+ 
+// 로더 함수 정의
+export async function loader({ params }) {
+  await sleep(2000);
+  const res = await fetch(`https://api.openweathermap.org/data/2.5/weather?q=${params.city}&lang=kr&appid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`);
+  if (res.ok) { return res; }
+  switch (res.status) {
+    case 404:
+      throw json({ message: 'city is invalid!!' }, { status: 404 });
+    case 401:
+      throw json({ message: 'api key is invalid!!' }, { status: 401 });
+    default:
+      throw json({ message: 'unknown error...' }, { status: 503 });
+  }
+};
+ 
+// 컴포넌트 함수 정의
+export function Component() {
+  const data =  useLoaderData();
+  return (
+    <figure>
+      <img src={`https://openweathermap.org/img/wn/${data?.weather?.[0]?.icon}.png`}
+      alt={data?.weather?.[0]?.main} />
+      <figcaption>{data?.weather?.[0]?.description}</figcaption>
+    </figure>
+  );
+}
+Component.displayName = 'WeatherLazyPage';
+ 
+// 오류 페이지 정의
+export function ErrorBoundary() {
+  const error = useRouteError();
+  if (isRouteErrorResponse(error)) {
+    switch (error.status) {
+      case 404:
+        return <p>원하는 페이지를 찾을 수 없습니다.</p>;
+      case 401:
+        return <p>인증에 실패했습니다.</p>;
+      case 501:
+        return <p>서비스가 일시적으로 중단되었습니다.</p>;
+      default:
+        return <p>알 수 없는 오류: {error.data.message}</p>;
+    }
+  }
+  return (
+    <div>
+      <h3>문제가 발생했습니다.</h3>
+      <p>상세한 문제: {error.message}</p>
+    </div>
+  );
+}
+ErrorBoundary.displayName = 'WeatherLazyErrorPage';
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/WeatherPage.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/WeatherPage.js.html new file mode 100644 index 0000000..dbc6ade --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/WeatherPage.js.html @@ -0,0 +1,121 @@ + + + + + + Code coverage report for src/chap08/WeatherPage.js + + + + + + + + + +
+
+

All files / src/chap08 WeatherPage.js

+
+ +
+ 0% + Statements + 0/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13  +  +  +  +  +  +  +  +  +  +  +  + 
import { useLoaderData } from 'react-router-dom';
+ 
+export default function WeatherPage() {
+  // 로더를 통해 획득한 데이터를 가져온다.
+  const data =  useLoaderData();
+  return (
+    <figure>
+      <img src={`https://openweathermap.org/img/wn/${data?.weather?.[0]?.icon}.png`}
+        alt={data?.weather?.[0]?.main} />
+      <figcaption>{data?.weather?.[0]?.description}</figcaption>
+    </figure>
+  );
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/books.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/books.js.html new file mode 100644 index 0000000..ea403a7 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/books.js.html @@ -0,0 +1,259 @@ + + + + + + Code coverage report for src/chap08/books.js + + + + + + + + + +
+
+

All files / src/chap08 books.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
const books = [
+  {
+    isbn: '979-1-1583-9512-4',
+    title: '게임 개발을 위한 미드저니, 스테이블 디퓨전 완벽 활용법',
+    slug: 'genai-game',
+    price: 28000,
+    summary: '생성형 AI를 활용한 게임 캐릭터, 배경, 아이템 제작부터 유니티 실전 프로젝트까지',
+    download: true,
+  },
+  {
+    isbn: '979-1-1583-9511-7',
+    title: '디자인을 위한 미드저니 완벽 활용법',
+    slug: 'midjourney-design',
+    price: 24000,
+    summary: '광고부터 캐릭터, 로고, 일러스트레이션, 표지, 포스터, 타이포까지 독창적인 디자인 만들기',
+    download: false,
+  },
+  {
+    isbn: '979-1-1583-9503-2',
+    title: '만들면서 배우는 블렌더 3D 입문',
+    slug: 'blender-basic',
+    price: 28000,
+    summary: '블렌더 기초, 모델링, 머티리얼, 애니메이션, 렌더링까지',
+    download: true,
+  },
+  {
+    isbn: '979-1-1583-9501-8',
+    title: '모던 그로스 마케팅',
+    slug: 'mgm',
+    price: 24000,
+    summary: '비용은 최소화하고 매출은 극대화하는 생존 마케팅 전략',
+    download: false,
+  },
+  {
+    isbn: '979-1-1583-9502-5',
+    title: '도메인 스토리텔링',
+    slug: 'domain-storytelling',
+    price: 28000,
+    summary: '도메인 주도 소프트웨어 구축을 위한 스토리텔링과 스토리 시각화 기법',
+    download: true,
+  },
+  {
+    isbn: '979-1-1583-9517-9',
+    title: '시작하세요! C# 12 프로그래밍',
+    slug: 'cs12',
+    price: 38000,
+    summary: '기본 문법부터 실전 예제까지',
+    download: true,
+  },
+  {
+    isbn: '979-1-1583-9518-6',
+    title: 'OpenAI API와 파이썬으로 나만의 챗GPT 만들기',
+    slug: 'my-chatgpt',
+    price: 24000,
+    summary: 'ChatGPT 기초부터 OpenAI API, 랭체인을 활용한 서비스 앱 제작까지',
+    download: true,
+  },
+];
+export default books;
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/index.html b/modern-react/my-react/coverage/lcov-report/src/chap08/index.html new file mode 100644 index 0000000..7da7c48 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/index.html @@ -0,0 +1,566 @@ + + + + + + Code coverage report for src/chap08 + + + + + + + + + +
+
+

All files src/chap08

+
+ +
+ 0% + Statements + 0/101 +
+ + +
+ 0% + Branches + 0/33 +
+ + +
+ 0% + Functions + 0/38 +
+ + +
+ 0% + Lines + 0/96 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
AboutPage.js +
+
0%0/4100%0/00%0/20%0/3
ArticlePage.js +
+
0%0/1100%0/00%0/10%0/1
BookFormPage.js +
+
0%0/3100%0/00%0/20%0/3
BookNest.js +
+
0%0/60%0/10%0/40%0/5
BookPage.js +
+
0%0/40%0/30%0/10%0/4
BookQueryPage.js +
+
0%0/2100%0/00%0/10%0/2
BookStatePage.js +
+
0%0/20%0/10%0/10%0/2
CommonErrorPage.js +
+
0%0/80%0/60%0/10%0/8
FirstPage.js +
+
0%0/1100%0/00%0/10%0/1
InfoPage.js +
+
0%0/1100%0/00%0/10%0/1
InvalidParamsPage.js +
+
0%0/2100%0/00%0/10%0/2
MyHeader.js +
+
0%0/50%0/50%0/10%0/5
MyLink.js +
+
0%0/30%0/20%0/10%0/3
NotFoundPage.js +
+
0%0/2100%0/00%0/10%0/2
RouterApp.js +
+
0%0/1100%0/00%0/10%0/1
RouterCustom.js +
+
0%0/1100%0/00%0/10%0/1
RouterNav.js +
+
0%0/1100%0/00%0/10%0/1
RouterParam.js +
+
0%0/3100%0/00%0/10%0/3
RouterScroll.js +
+
0%0/2100%0/00%0/20%0/2
SearchPage.js +
+
0%0/2100%0/00%0/10%0/2
SecondPage.js +
+
0%0/1100%0/00%0/10%0/1
TopPage.js +
+
0%0/1100%0/00%0/10%0/1
WeatherLazyPage.js +
+
0%0/230%0/110%0/50%0/20
WeatherPage.js +
+
0%0/2100%0/00%0/10%0/2
books.js +
+
0%0/1100%0/0100%0/00%0/1
routesBasic.js +
+
0%0/1100%0/0100%0/00%0/1
routesHandle.js +
+
0%0/1100%0/0100%0/00%0/1
routesLink.js +
+
0%0/1100%0/0100%0/00%0/1
routesMyLink.js +
+
0%0/1100%0/0100%0/00%0/1
routesParam.js +
+
0%0/140%0/40%0/40%0/14
routesScroll.js +
+
0%0/1100%0/0100%0/00%0/1
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/routesBasic.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/routesBasic.js.html new file mode 100644 index 0000000..79fab85 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/routesBasic.js.html @@ -0,0 +1,196 @@ + + + + + + Code coverage report for src/chap08/routesBasic.js + + + + + + + + + +
+
+

All files / src/chap08 routesBasic.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
// // 리액트 라우터 본체 가져오기
+import { createBrowserRouter } from 'react-router-dom';
+// 라우팅에 사용할 페이지 가져오기
+import TopPage from './TopPage';
+import ArticlePage from './ArticlePage';
+import AboutPage from './AboutPage';
+ 
+// 라우팅 테이블 정의
+const routesBasic = createBrowserRouter([
+  { path: '/', element: <TopPage /> },
+  { path: '/article', element: <ArticlePage /> },
+  { path: '/about', element: <AboutPage /> },
+]);
+ 
+export default routesBasic;
+ 
+ 
+ 
+// Code 8-1-3
+// // 리액트 라우터 본체 가져오기
+// import { Route, createBrowserRouter, createRoutesFromElements } from 'react-router-dom';
+// // 라우팅에 사용할 페이지 가져오기
+// import TopPage from './TopPage';
+// import ArticlePage from './ArticlePage';
+// import AboutPage from './AboutPage';
+ 
+// // 라우팅 테이블 정의
+// const routesBasic = createBrowserRouter(
+//   createRoutesFromElements(
+//     <>
+//       <Route path="/" element={<TopPage />} />
+//       <Route path="/article" element={<ArticlePage />} />
+//       <Route path="/about" element={<AboutPage />} />
+//     </>
+//   )
+// );
+ 
+// export default routesBasic;
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/routesHandle.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/routesHandle.js.html new file mode 100644 index 0000000..d112ce8 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/routesHandle.js.html @@ -0,0 +1,154 @@ + + + + + + Code coverage report for src/chap08/routesHandle.js + + + + + + + + + +
+
+

All files / src/chap08 routesHandle.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { Route, createBrowserRouter, createRoutesFromElements } from 'react-router-dom';
+import TopPage from './TopPage';
+import BookPage from './BookPage';
+import RouterParam from './RouterParam';
+ 
+// handle 속성으로 메타 정보 정의
+const routesHandle = createBrowserRouter(
+  createRoutesFromElements(
+    <Route element={<RouterParam />}>
+      <Route path="/" element={<TopPage />} handle={{
+        title: '홈',
+        keywords: '리액트, 라우터, 자바스크립트',
+        description: '리액트 라우터에 대한 설명 샘플입니다.'
+      }} />
+      <Route path="/book/:isbn?" element={<BookPage />} handle={{
+        title: '도서상세 - %s',
+        keywords: '리액트, %s',
+        description: '%s'
+      }} />
+    </Route>
+  )
+);
+ 
+export default routesHandle;
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/routesLink.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/routesLink.js.html new file mode 100644 index 0000000..cfd1884 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/routesLink.js.html @@ -0,0 +1,466 @@ + + + + + + Code coverage report for src/chap08/routesLink.js + + + + + + + + + +
+
+

All files / src/chap08 routesLink.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { Route, createBrowserRouter, createRoutesFromElements } from 'react-router-dom';
+import RouterApp from './RouterApp';
+import TopPage from './TopPage';
+import ArticlePage from './ArticlePage';
+import AboutPage from './AboutPage';
+ 
+const routesLink = createBrowserRouter(
+  createRoutesFromElements(
+    // 상위 경로 추가 
+    <Route path="/" element={<RouterApp />}>
+      {/* <Route path="" element={<TopPage />} /> */}
+      <Route index element={<TopPage />} />
+      <Route path="article" element={<ArticlePage />} />
+      <Route path="about" element={<AboutPage />} />
+    </Route>
+  )
+);
+ 
+export default routesLink;
+ 
+ 
+ 
+// import { Route, createBrowserRouter, createRoutesFromElements } from 'react-router-dom';
+// import RouterApp from './RouterApp';
+// import TopPage from './TopPage';
+// import ArticlePage from './ArticlePage';
+// import AboutPage from './AboutPage';
+ 
+// const routesLink = createBrowserRouter([
+//   { path: '/', element: <RouterApp />,
+//     children: [
+//       { path: '', element: <TopPage /> },
+//       { path: 'article', element: <ArticlePage /> },
+//       { path: 'about', element: <AboutPage /> },
+//     ]
+//   }
+// ]);
+ 
+// export default routesLink;
+ 
+ 
+ 
+// import { Route, createBrowserRouter, createRoutesFromElements } from 'react-router-dom';
+// import RouterApp from './RouterApp';
+// import TopPage from './TopPage';
+// import ArticlePage from './ArticlePage';
+// import AboutPage from './AboutPage';
+ 
+// const routesLink = createBrowserRouter(
+//   createRoutesFromElements(
+//     <Route element={<RouterApp />}>
+//       <Route path="/" element={<TopPage />} />
+//       <Route path="/article" element={<ArticlePage />} />
+//       <Route path="/about" element={<AboutPage />} />
+//     </Route>
+//   )
+// );
+ 
+// export default routesLink;
+ 
+ 
+ 
+// Code 8-2-7
+// import { Route, createBrowserRouter, createRoutesFromElements } from 'react-router-dom';
+// import RouterApp from './RouterApp';
+// import RouterNav from './RouterNav';
+// import TopPage from './TopPage';
+// import ArticlePage from './ArticlePage';
+// import AboutPage from './AboutPage';
+ 
+// const routesLink = createBrowserRouter(
+//   createRoutesFromElements(
+//     <Route element={<RouterNav />}>
+//       <Route path="/" element={<TopPage />} />
+//       <Route path="/article" element={<ArticlePage />} />
+//       <Route path="/about" element={<AboutPage />} />
+//     </Route>
+//   )
+// );
+ 
+// export default routesLink;
+ 
+ 
+ 
+// 8-2-10
+// import { Route, createBrowserRouter, createRoutesFromElements } from 'react-router-dom';
+// import RouterApp from './RouterApp';
+// import RouterNav from './RouterNav';
+// import TopPage from './TopPage';
+// import ArticlePage from './ArticlePage';
+// import AboutPage from './AboutPage';
+ 
+// const routesLink = createBrowserRouter(
+//   createRoutesFromElements(
+//     <Route element={<RouterApp />}>
+//       <Route path="/" element={<TopPage />} />
+//       <Route path="/article" element={<ArticlePage />} />
+//       <Route path="/about" element={<AboutPage />} />
+//     </Route>
+//   )
+// );
+ 
+// export default routesLink;
+ 
+ 
+ 
+// 8-2-12
+// import { Route, createBrowserRouter, createRoutesFromElements } from 'react-router-dom';
+// import RouterApp from './RouterApp';
+// import RouterNav from './RouterNav';
+// import TopPage from './TopPage';
+// import ArticlePage from './ArticlePage';
+// import AboutPage from './AboutPage';
+// import InfoPage from './InfoPage';
+ 
+// const routesLink = createBrowserRouter(
+//   createRoutesFromElements(
+//     <Route element={<RouterApp />}>
+//       <Route path="/" element={<TopPage />} />
+//       <Route path="/article" element={<ArticlePage />} />
+//       <Route path="/article/info" element={<InfoPage />} />
+//       <Route path="/about" element={<AboutPage />} />
+//     </Route>
+//   )
+// );
+ 
+// export default routesLink;
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/routesMyLink.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/routesMyLink.js.html new file mode 100644 index 0000000..c8b0e30 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/routesMyLink.js.html @@ -0,0 +1,133 @@ + + + + + + Code coverage report for src/chap08/routesMyLink.js + + + + + + + + + +
+
+

All files / src/chap08 routesMyLink.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { Route, createBrowserRouter, createRoutesFromElements } from 'react-router-dom';
+import RouterCustom from './RouterCustom';
+import TopPage from './TopPage';
+import ArticlePage from './ArticlePage';
+import AboutPage from './AboutPage';
+ 
+const routesMyLink = createBrowserRouter(
+  createRoutesFromElements(
+    <Route element={<RouterCustom />}>
+      <Route path="/" element={<TopPage />} />
+      <Route path="/article" element={<ArticlePage />} />
+      <Route path="/about" element={<AboutPage />} />
+    </Route>
+  )
+);
+ 
+export default routesMyLink;
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/routesParam.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/routesParam.js.html new file mode 100644 index 0000000..b82da8a --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/routesParam.js.html @@ -0,0 +1,2281 @@ + + + + + + Code coverage report for src/chap08/routesParam.js + + + + + + + + + +
+
+

All files / src/chap08 routesParam.js

+
+ +
+ 0% + Statements + 0/14 +
+ + +
+ 0% + Branches + 0/4 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/14 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +450 +451 +452 +453 +454 +455 +456 +457 +458 +459 +460 +461 +462 +463 +464 +465 +466 +467 +468 +469 +470 +471 +472 +473 +474 +475 +476 +477 +478 +479 +480 +481 +482 +483 +484 +485 +486 +487 +488 +489 +490 +491 +492 +493 +494 +495 +496 +497 +498 +499 +500 +501 +502 +503 +504 +505 +506 +507 +508 +509 +510 +511 +512 +513 +514 +515 +516 +517 +518 +519 +520 +521 +522 +523 +524 +525 +526 +527 +528 +529 +530 +531 +532 +533 +534 +535 +536 +537 +538 +539 +540 +541 +542 +543 +544 +545 +546 +547 +548 +549 +550 +551 +552 +553 +554 +555 +556 +557 +558 +559 +560 +561 +562 +563 +564 +565 +566 +567 +568 +569 +570 +571 +572 +573 +574 +575 +576 +577 +578 +579 +580 +581 +582 +583 +584 +585 +586 +587 +588 +589 +590 +591 +592 +593 +594 +595 +596 +597 +598 +599 +600 +601 +602 +603 +604 +605 +606 +607 +608 +609 +610 +611 +612 +613 +614 +615 +616 +617 +618 +619 +620 +621 +622 +623 +624 +625 +626 +627 +628 +629 +630 +631 +632 +633 +634 +635 +636 +637 +638 +639 +640 +641 +642 +643 +644 +645 +646 +647 +648 +649 +650 +651 +652 +653 +654 +655 +656 +657 +658 +659 +660 +661 +662 +663 +664 +665 +666 +667 +668 +669 +670 +671 +672 +673 +674 +675 +676 +677 +678 +679 +680 +681 +682 +683 +684 +685 +686 +687 +688 +689 +690 +691 +692 +693 +694 +695 +696 +697 +698 +699 +700 +701 +702 +703 +704 +705 +706 +707 +708 +709 +710 +711 +712 +713 +714 +715 +716 +717 +718 +719 +720 +721 +722 +723 +724 +725 +726 +727 +728 +729 +730 +731 +732 +733  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
// import { Route, createBrowserRouter, createRoutesFromElements } from 'react-router-dom';
+// import RouterParam from './RouterParam';
+// import TopPage from './TopPage';
+// import BookPage from './BookPage';
+ 
+// const routesParam = createBrowserRouter(
+//   createRoutesFromElements(
+//     <Route element={<RouterParam />}>
+//       <Route path="/" element={<TopPage />} />
+//       <Route path="/book/:isbn" element={<BookPage />} />
+//     </Route>
+//   )
+// );
+ 
+// export default routesParam;
+ 
+ 
+ 
+// Code 8-3-5
+// import { Route, createBrowserRouter, createRoutesFromElements } from 'react-router-dom';
+// import RouterParam from './RouterParam';
+// import TopPage from './TopPage';
+// import BookPage from './BookPage';
+ 
+// const routesParam = createBrowserRouter(
+//   createRoutesFromElements(
+//     <Route element={<RouterParam />}>
+//       <Route path="/" element={<TopPage />} />
+//       <Route path="/book/:isbn?" element={<BookPage />} />
+//     </Route>
+//   )
+// );
+ 
+// export default routesParam;
+ 
+ 
+ 
+// Code 8-3-8
+// import { Route, createBrowserRouter, createRoutesFromElements } from 'react-router-dom';
+// import RouterParam from './RouterParam';
+// import TopPage from './TopPage';
+// import BookPage from './BookPage';
+// import SearchPage from './SearchPage';
+ 
+// const routesParam = createBrowserRouter(
+//   createRoutesFromElements(
+//     <Route element={<RouterParam />}>
+//       <Route path="/" element={<TopPage />} />
+//       <Route path="/book/:isbn?" element={<BookPage />} />
+//       {/* 가변 길이 매개변수 정의 */}
+//       <Route path="/search/*" element={<SearchPage />} />
+//     </Route>
+//   )
+// );
+ 
+// export default routesParam;
+ 
+ 
+ 
+// Code 8-3-11
+// import { Route, createBrowserRouter, createRoutesFromElements } from 'react-router-dom';
+// import RouterParam from './RouterParam';
+// import TopPage from './TopPage';
+// import BookPage from './BookPage';
+// import SearchPage from './SearchPage';
+// import NotFoundPage from './NotFoundPage';
+ 
+// const routesParam = createBrowserRouter(
+//   createRoutesFromElements(
+//     <Route element={<RouterParam />}>
+//       <Route path="/" element={<TopPage />} />
+//       <Route path="/book/:isbn?" element={<BookPage />} />
+//       {/* 가변 길이 매개변수 정의 */}
+//       <Route path="/search/*" element={<SearchPage />} />
+//       {/* 임의의 페이지에 해당하는 루트 */}
+//       <Route path="*" element={<NotFoundPage />} />
+//     </Route>
+//   )
+// );
+ 
+// export default routesParam;
+ 
+ 
+ 
+// Code 8-3-15
+// import { Route, createBrowserRouter, createRoutesFromElements } from 'react-router-dom';
+// import RouterParam from './RouterParam';
+// import TopPage from './TopPage';
+// import BookPage from './BookPage';
+// import SearchPage from './SearchPage';
+// import NotFoundPage from './NotFoundPage';
+// import BookQueryPage from './BookQueryPage';
+ 
+// const routesParam = createBrowserRouter(
+//   createRoutesFromElements(
+//     <Route element={<RouterParam />}>
+//       <Route path="/" element={<TopPage />} />
+//       <Route path="/book/:isbn?" element={<BookPage />} />
+//       <Route path="/bookQuery" element={<BookQueryPage />} />
+//       {/* 가변 길이 매개변수 정의 */}
+//       <Route path="/search/*" element={<SearchPage />} />
+//       {/* 임의의 페이지에 해당하는 루트 */}
+//       <Route path="*" element={<NotFoundPage />} />
+//     </Route>
+//   )
+// );
+ 
+// export default routesParam;
+ 
+ 
+ 
+// Code 8-3-19
+// import { Route, createBrowserRouter, createRoutesFromElements } from 'react-router-dom';
+// import RouterParam from './RouterParam';
+// import TopPage from './TopPage';
+// import BookPage from './BookPage';
+// import SearchPage from './SearchPage';
+// import NotFoundPage from './NotFoundPage';
+// import BookQueryPage from './BookQueryPage';
+// import BookStatePage from './BookStatePage';
+ 
+// const routesParam = createBrowserRouter(
+//   createRoutesFromElements(
+//     <Route element={<RouterParam />}>
+//       <Route path="/" element={<TopPage />} />
+//       <Route path="/book/:isbn?" element={<BookPage />} />
+//       <Route path="/bookQuery" element={<BookQueryPage />} />
+//       <Route path="/bookState" element={<BookStatePage />} />
+//       {/* 가변 길이 매개변수 정의 */}
+//       <Route path="/search/*" element={<SearchPage />} />
+//       {/* 임의의 페이지에 해당하는 루트 */}
+//       <Route path="*" element={<NotFoundPage />} />
+//     </Route>
+//   )
+// );
+ 
+// export default routesParam;
+ 
+ 
+ 
+// Code 8-4-2
+// import { Route, createBrowserRouter, createRoutesFromElements } from 'react-router-dom';
+// import RouterParam from './RouterParam';
+// import TopPage from './TopPage';
+// import BookPage from './BookPage';
+// import SearchPage from './SearchPage';
+// import NotFoundPage from './NotFoundPage';
+// import BookQueryPage from './BookQueryPage';
+// import BookStatePage from './BookStatePage';
+// import InvalidParamsPage from './InvalidParamsPage';
+ 
+// const routesParam = createBrowserRouter(
+//   createRoutesFromElements(
+//     <Route element={<RouterParam />} >
+//       <Route path="/" element={<TopPage />} />
+//       <Route path="/book/:isbn?" element={<BookPage />} 
+//         errorElement={<InvalidParamsPage />} />
+//       <Route path="/bookQuery" element={<BookQueryPage />} />
+//       <Route path="/bookState" element={<BookStatePage />} />
+//       {/* 가변 길이 매개변수 정의 */}
+//       <Route path="/search/*" element={<SearchPage />} />
+//       {/* 임의의 페이지에 해당하는 루트 */}
+//       <Route path="*" element={<NotFoundPage />} />
+//     </Route>
+//   )
+// );
+ 
+// export default routesParam;
+ 
+ 
+ 
+// Code 8-4-4
+// import { Route, createBrowserRouter, createRoutesFromElements } from 'react-router-dom';
+// import RouterParam from './RouterParam';
+// import TopPage from './TopPage';
+// import BookPage from './BookPage';
+// import SearchPage from './SearchPage';
+// import NotFoundPage from './NotFoundPage';
+// import BookQueryPage from './BookQueryPage';
+// import BookStatePage from './BookStatePage';
+// import InvalidParamsPage from './InvalidParamsPage';
+ 
+// const routesParam = createBrowserRouter(
+//   createRoutesFromElements(
+//     <Route element={<RouterParam />} 
+//       errorElement={<InvalidParamsPage />} >
+//       <Route path="/" element={<TopPage />} />
+//       <Route path="/book/:isbn?" element={<BookPage />} />
+//       <Route path="/bookQuery" element={<BookQueryPage />} />
+//       <Route path="/bookState" element={<BookStatePage />} />
+//       {/* 가변 길이 매개변수 정의 */}
+//       <Route path="/search/*" element={<SearchPage />} />
+//       {/* 임의의 페이지에 해당하는 루트 */}
+//       <Route path="*" element={<NotFoundPage />} />
+//     </Route>
+//   )
+// );
+ 
+// export default routesParam;
+ 
+ 
+ 
+// Code 8-4-5
+// import { Route, createBrowserRouter, createRoutesFromElements } from 'react-router-dom';
+// import RouterParam from './RouterParam';
+// import TopPage from './TopPage';
+// import BookPage from './BookPage';
+// import SearchPage from './SearchPage';
+// import NotFoundPage from './NotFoundPage';
+// import BookQueryPage from './BookQueryPage';
+// import BookStatePage from './BookStatePage';
+// import InvalidParamsPage from './InvalidParamsPage';
+// import WeatherPage from './WeatherPage';
+ 
+// const routesParam = createBrowserRouter(
+//   createRoutesFromElements(
+//     <Route element={<RouterParam />} 
+//       errorElement={<InvalidParamsPage />} >
+//       <Route path="/" element={<TopPage />} />
+//       <Route path="/book/:isbn?" element={<BookPage />} />
+//       <Route path="/bookQuery" element={<BookQueryPage />} />
+//       <Route path="/bookState" element={<BookStatePage />} />
+//       {/* 가변 길이 매개변수 정의 */}
+//       <Route path="/search/*" element={<SearchPage />} />
+//       <Route path="/weather/:city" element={<WeatherPage />}
+//         loader={({ params }) =>
+//           fetch(`https://api.openweathermap.org/data/2.5/weather?q=${params.city}&lang=kr&appid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`)
+//         }/>
+//       {/* 임의의 페이지에 해당하는 루트 */}
+//       <Route path="*" element={<NotFoundPage />} />
+//       <Route path="/search/*" element={<SearchPage />} />
+//     </Route>
+//   )
+// );
+ 
+// export default routesParam;
+ 
+ 
+ 
+// Code 8-4-8
+// import { createBrowserRouter, createRoutesFromElements,
+//   json, Route } from 'react-router-dom';
+// import RouterParam from './RouterParam';
+// import TopPage from './TopPage';
+// import BookPage from './BookPage';
+// import SearchPage from './SearchPage';
+// import NotFoundPage from './NotFoundPage';
+// import BookQueryPage from './BookQueryPage';
+// import BookStatePage from './BookStatePage';
+// import InvalidParamsPage from './InvalidParamsPage';
+// import WeatherPage from './WeatherPage';
+ 
+// const fetchWeather = async ({ params }) => {;
+//   const res = await fetch(`https://api.openweathermap.org/data/2.5/weather?q=${params.city}&lang=kr&appid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`);
+//   // 응답이 성공하면 결과 데이터를 그대로 반환한다.
+//   if (res.ok) { return res; }
+//   // 성공 이외의 결과에서는 오류 데이터 생성
+//   return json({
+//     "weather":[
+//       {"id":803,"main":"Unknown","description":"알 수 없음","icon":"50d"}
+//     ],
+//     "name":"알 수 없음"
+//   });
+// }
+ 
+// const routesParam = createBrowserRouter(
+//   createRoutesFromElements(
+//     <Route element={<RouterParam />} 
+//       errorElement={<InvalidParamsPage />} >
+//       <Route path="/" element={<TopPage />} />
+//       <Route path="/book/:isbn?" element={<BookPage />} />
+//       <Route path="/bookQuery" element={<BookQueryPage />} />
+//       <Route path="/bookState" element={<BookStatePage />} />
+//       {/* 가변 길이 매개변수 정의 */}
+//       <Route path="/search/*" element={<SearchPage />} />
+//       <Route path="/weather/:city" element={<WeatherPage />}
+//         loader={fetchWeather}/>
+//       {/* 임의의 페이지에 해당하는 루트 */}
+//       <Route path="*" element={<NotFoundPage />} />
+//       <Route path="/search/*" element={<SearchPage />} />
+//     </Route>
+//   )
+// );
+ 
+// export default routesParam;
+ 
+ 
+ 
+// import { createBrowserRouter, createRoutesFromElements,
+//   json, Route } from 'react-router-dom';
+// import RouterParam from './RouterParam';
+// import TopPage from './TopPage';
+// import BookPage from './BookPage';
+// import SearchPage from './SearchPage';
+// import NotFoundPage from './NotFoundPage';
+// import BookQueryPage from './BookQueryPage';
+// import BookStatePage from './BookStatePage';
+// import InvalidParamsPage from './InvalidParamsPage';
+// import WeatherPage from './WeatherPage';
+ 
+// const fetchWeather = async ({ params }) => {
+//   const res = await fetch(`https://api.openweathermap.org/data/2.5/weather?q=${params.city}&lang=kr&appid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`);
+//   // 응답이 성공하면 결과 데이터를 그대로 반환한다.
+//   if (res.ok) { return res; }
+//   // 성공 이외의 결과에서는 오류 데이터 생성
+//   return json({
+//     "weather":[
+//       {"id":803,"main":"Unknown","description":"알 수 없음","icon":"50d"}
+//     ],
+//     "name":"알 수 없음"
+//   });
+ 
+//   return new Response(
+//     JSON.stringify({
+//       "weather":[
+//         {"id":803,"main":"Unknown","description":"不明","icon":"50d"}
+//       ],
+//       "name":"알 수 없음 "
+//     }),
+//     {
+//       status: 200,
+//       headers: {
+//         'Content-Type': 'application/json; UTF-8',
+//       },
+//     }
+//   );
+// }
+ 
+// const routesParam = createBrowserRouter(
+//   createRoutesFromElements(
+//     <Route element={<RouterParam />} 
+//       errorElement={<InvalidParamsPage />} >
+//       <Route path="/" element={<TopPage />} />
+//       <Route path="/book/:isbn?" element={<BookPage />} />
+//       <Route path="/bookQuery" element={<BookQueryPage />} />
+//       <Route path="/bookState" element={<BookStatePage />} />
+//       {/* 가변 길이 매개변수 정의 */}
+//       <Route path="/search/*" element={<SearchPage />} />
+//       <Route path="/weather/:city" element={<WeatherPage />}
+//         loader={fetchWeather}/>
+//       {/* 임의의 페이지에 해당하는 루트 */}
+//       <Route path="*" element={<NotFoundPage />} />
+//       <Route path="/search/*" element={<SearchPage />} />
+//     </Route>
+//   )
+// );
+ 
+// export default routesParam;
+ 
+ 
+ 
+// Code 8-4-9
+// import { createBrowserRouter, createRoutesFromElements,
+//   json, Route } from 'react-router-dom';
+// import RouterParam from './RouterParam';
+// import TopPage from './TopPage';
+// import BookPage from './BookPage';
+// import SearchPage from './SearchPage';
+// import NotFoundPage from './NotFoundPage';
+// import BookQueryPage from './BookQueryPage';
+// import BookStatePage from './BookStatePage';
+// import InvalidParamsPage from './InvalidParamsPage';
+// import WeatherPage from './WeatherPage';
+ 
+// const fetchWeather = async ({ params }) => {
+//   // const res = await fetch(`https://api.openweathermap.org/data/2.5/weather?q=${params.city}&lang=kr&appid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`);
+//   // 응답이 성공하면 결과 데이터를 그대로 반환한다.
+//   if (res.ok) { return res; }
+//   // 응답 상태에 따라 다른 오류 정보를 던진다.
+//   switch (res.status) {
+//     case 404:
+//       throw json({ message: 'city is invalid!!' }, { status: 404 });
+//     case 401:
+//       throw json({ message: 'api key is invalid!!' }, { status: 401 });
+//     default:
+//       throw json({ message: 'api server is in trouble...' }, { status: 501 });
+//   }
+// }
+ 
+// const routesParam = createBrowserRouter(
+//   createRoutesFromElements(
+//     <Route element={<RouterParam />} 
+//       errorElement={<InvalidParamsPage />} >
+//       <Route path="/" element={<TopPage />} />
+//       <Route path="/book/:isbn?" element={<BookPage />} />
+//       <Route path="/bookQuery" element={<BookQueryPage />} />
+//       <Route path="/bookState" element={<BookStatePage />} />
+//       {/* 가변 길이 매개변수 정의 */}
+//       <Route path="/search/*" element={<SearchPage />} />
+//       <Route path="/weather/:city" element={<WeatherPage />}
+//         loader={fetchWeather}/>
+//       {/* 임의의 페이지에 해당하는 루트 */}
+//       <Route path="*" element={<NotFoundPage />} />
+//       <Route path="/search/*" element={<SearchPage />} />
+//     </Route>
+//   )
+// );
+ 
+// export default routesParam;
+ 
+ 
+ 
+// Code 8-4-11
+// import { createBrowserRouter, createRoutesFromElements,
+//   json, Route } from 'react-router-dom';
+// import RouterParam from './RouterParam';
+// import TopPage from './TopPage';
+// import BookPage from './BookPage';
+// import SearchPage from './SearchPage';
+// import NotFoundPage from './NotFoundPage';
+// import BookQueryPage from './BookQueryPage';
+// import BookStatePage from './BookStatePage';
+// import InvalidParamsPage from './InvalidParamsPage';
+// import WeatherPage from './WeatherPage';
+// import CommonErrorPage from './CommonErrorPage';
+ 
+// const fetchWeather = async ({ params }) => {
+//   const res = await fetch(`https://api.openweathermap.org/data/2.5/weather?q=${params.city}&lang=kr&appid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`);
+//   // 응답이 성공하면 결과 데이터를 그대로 반환한다.
+//   if (res.ok) { return res; }
+//   // 응답 상태에 따라 다른 오류 정보를 던진다.
+//   switch (res.status) {
+//     case 404:
+//       throw json({ message: 'city is invalid!!' }, { status: 404 });
+//     case 401:
+//       throw json({ message: 'api key is invalid!!' }, { status: 401 });
+//     default:
+//       throw json({ message: 'api server is in trouble...' }, { status: 501 });
+//   }
+// }
+ 
+// const routesParam = createBrowserRouter(
+//   createRoutesFromElements(
+//     <Route element={<RouterParam />} 
+//       errorElement={<CommonErrorPage />} >
+//       <Route path="/" element={<TopPage />} />
+//       <Route path="/book/:isbn?" element={<BookPage />} />
+//       <Route path="/bookQuery" element={<BookQueryPage />} />
+//       <Route path="/bookState" element={<BookStatePage />} />
+//       {/* 가변 길이 매개변수 정의 */}
+//       <Route path="/search/*" element={<SearchPage />} />
+//       <Route path="/weather/:city" element={<WeatherPage />}
+//         loader={fetchWeather}/>
+//       {/* 임의의 페이지에 해당하는 루트 */}
+//       <Route path="*" element={<NotFoundPage />} />
+//       <Route path="/search/*" element={<SearchPage />} />
+//     </Route>
+//   )
+// );
+ 
+// export default routesParam;
+ 
+ 
+ 
+ 
+// Code 8-4-11
+// import { createBrowserRouter, createRoutesFromElements,
+//   json, Route } from 'react-router-dom';
+// import RouterParam from './RouterParam';
+// import TopPage from './TopPage';
+// import BookPage from './BookPage';
+// import SearchPage from './SearchPage';
+// import NotFoundPage from './NotFoundPage';
+// import BookQueryPage from './BookQueryPage';
+// import BookStatePage from './BookStatePage';
+// import InvalidParamsPage from './InvalidParamsPage';
+// import WeatherPage from './WeatherPage';
+// import CommonErrorPage from './CommonErrorPage';
+ 
+// const sleep = ms => new Promise(res => setTimeout(res, ms));
+ 
+// const fetchWeather = async ({ params }) => {
+//   // 로딩 메시지를 표시하기 위해 처리 지연
+//   await sleep(2000);
+//   const res = await fetch(`https://api.openweathermap.org/data/2.5/weather?q=${params.city}&lang=kr&appid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`);
+//   // 응답이 성공하면 결과 데이터를 그대로 반환한다.
+//   if (res.ok) { return res; }
+//   // 응답 상태에 따라 다른 오류 정보를 던진다.
+//   switch (res.status) {
+//     case 404:
+//       throw json({ message: 'city is invalid!!' }, { status: 404 });
+//     case 401:
+//       throw json({ message: 'api key is invalid!!' }, { status: 401 });
+//     default:
+//       throw json({ message: 'api server is in trouble...' }, { status: 501 });
+//   }
+// }
+ 
+// const routesParam = createBrowserRouter(
+//   createRoutesFromElements(
+//     <Route element={<RouterParam />} 
+//       errorElement={<CommonErrorPage />} >
+//       <Route path="/" element={<TopPage />} />
+//       <Route path="/book/:isbn?" element={<BookPage />} />
+//       <Route path="/bookQuery" element={<BookQueryPage />} />
+//       <Route path="/bookState" element={<BookStatePage />} />
+//       {/* 가변 길이 매개변수 정의 */}
+//       <Route path="/search/*" element={<SearchPage />} />
+//       <Route path="/weather/:city" element={<WeatherPage />}
+//         loader={fetchWeather}/>
+//       {/* 임의의 페이지에 해당하는 루트 */}
+//       <Route path="*" element={<NotFoundPage />} />
+//       <Route path="/search/*" element={<SearchPage />} />
+//     </Route>
+//   )
+// );
+ 
+// export default routesParam;
+ 
+ 
+ 
+// Code 8-4-15
+// import { Route, createBrowserRouter, createRoutesFromElements,
+//   json, redirect } from 'react-router-dom';
+// import RouterParam from './RouterParam';
+// import TopPage from './TopPage';
+// import BookPage from './BookPage';
+// import SearchPage from './SearchPage';
+// import NotFoundPage from './NotFoundPage';
+// import BookQueryPage from './BookQueryPage';
+// import BookStatePage from './BookStatePage';
+// import InvalidParamsPage from './InvalidParamsPage';
+// import WeatherPage from './WeatherPage';
+// import CommonErrorPage from './CommonErrorPage';
+// import BookFormPage from './BookFormPage';
+// import yup from '../chap04/yup.kr';
+// import { date, number, string } from 'yup';
+ 
+// const sleep = ms => new Promise(res => setTimeout(res, ms));
+ 
+// const fetchWeather = async ({ params }) => {
+//   // 로딩 메시지를 표시하기 위해 처리 지연
+//   await sleep(2000);
+//   const res = await fetch(`https://api.openweathermap.org/data/2.5/weather?q=${params.city}&lang=kr&appid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`);
+//   // 응답이 성공하면 결과 데이터를 그대로 반환한다.
+//   if (res.ok) { return res; }
+//   // 응답 상태에 따라 다른 오류 정보를 던진다.
+//   switch (res.status) {
+//     case 404:
+//       throw json({ message: 'city is invalid!!' }, { status: 404 });
+//     case 401:
+//       throw json({ message: 'api key is invalid!!' }, { status: 401 });
+//     default:
+//       throw json({ message: 'api server is in trouble...' }, { status: 501 });
+//   }
+// }
+ 
+// const bookAction = async ({ request }) => {
+//   const form = await request.formData();
+//   // 스키마 정의
+//   const bookSchema = yup.object({
+//     title: string().label('도서명').required().max(100),
+//     price: number().label('가격').integer().positive(),
+//     published: date().label('출간일').required().max(new Date(2100, 0, 1))
+//   });
+//   let info;
+//   // 검증을 실행하고 오류 발생 시 메시지를 반환한다.
+//   try {
+//     info = await bookSchema.validate({
+//       title: form.get('title'),
+//       price: form.get('price') || 0,
+//       published: new Date(form.get('published') || Date.now()),
+//     }, {
+//       abortEarly: false
+//     });
+//     console.log(info);
+//     return redirect('/');
+//   } catch (e) {
+//     return e.errors;
+//   }
+// };
+ 
+// const routesParam = createBrowserRouter(
+//   createRoutesFromElements(
+//     <Route element={<RouterParam />} >
+//       <Route path="/" element={<TopPage />} />
+//       <Route path="/book/form" element={<BookFormPage />}
+//         action={bookAction} />
+//       <Route path="/book/:isbn?" element={<BookPage />} />
+//       <Route path="/bookQuery" element={<BookQueryPage />} />
+//       <Route path="/bookState" element={<BookStatePage />} />
+//       {/* 가변 길이 매개변수 정의 */}
+//       <Route path="/search/*" element={<SearchPage />} />
+//       <Route path="/weather/:city" element={<WeatherPage />}
+//         loader={fetchWeather}/>
+//       {/* 임의의 페이지에 해당하는 루트 */}
+//       <Route path="*" element={<NotFoundPage />} />
+//       <Route path="/search/*" element={<SearchPage />} />
+//     </Route>
+//   )
+// );
+ 
+// export default routesParam;
+ 
+ 
+ 
+// Code 8-4-19
+// import { Route, createBrowserRouter, createRoutesFromElements,
+//   json, redirect } from 'react-router-dom';
+// import RouterParam from './RouterParam';
+// import TopPage from './TopPage';
+// import BookPage from './BookPage';
+// import SearchPage from './SearchPage';
+// import NotFoundPage from './NotFoundPage';
+// import BookQueryPage from './BookQueryPage';
+// import BookStatePage from './BookStatePage';
+// import InvalidParamsPage from './InvalidParamsPage';
+// import WeatherPage from './WeatherPage';
+// import CommonErrorPage from './CommonErrorPage';
+// import BookFormPage from './BookFormPage';
+// import yup from '../chap04/yup.kr';
+// import { date, number, string } from 'yup';
+ 
+// const bookAction = async ({ request }) => {
+//   const form = await request.formData();
+//   // 스키마 정의
+//   const bookSchema = yup.object({
+//     title: string().label('도서명').required().max(100),
+//     price: number().label('가격').integer().positive(),
+//     published: date().label('출간일').required().max(new Date(2100, 0, 1))
+//   });
+//   let info;
+//   // 검증을 실행하고 오류 발생 시 메시지를 반환한다.
+//   try {
+//     info = await bookSchema.validate({
+//       title: form.get('title'),
+//       price: form.get('price') || 0,
+//       published: new Date(form.get('published') || Date.now()),
+//     }, {
+//       abortEarly: false
+//     });
+//     console.log(info);
+//     return redirect('/');
+//   } catch (e) {
+//     return e.errors;
+//   }
+// };
+ 
+// const routesParam = createBrowserRouter(
+//   createRoutesFromElements(
+//     <Route element={<RouterParam />} >
+//       <Route path="/" element={<TopPage />} />
+//       <Route path="/book/form" element={<BookFormPage />}
+//         action={bookAction} />
+//       <Route path="/book/:isbn?" element={<BookPage />} />
+//       <Route path="/bookQuery" element={<BookQueryPage />} />
+//       <Route path="/bookState" element={<BookStatePage />} />
+//       {/* 가변 길이 매개변수 정의 */}
+//       <Route path="/search/*" element={<SearchPage />} />
+//       <Route path="/weather/:city"
+//         lazy={() => import('./WeatherLazyPage')} />
+//       {/* 임의의 페이지에 해당하는 루트 */}
+//       <Route path="*" element={<NotFoundPage />} />
+//       <Route path="/search/*" element={<SearchPage />} />
+//     </Route>
+//   )
+// );
+ 
+// export default routesParam;
+ 
+ 
+ 
+// Code 8-4-21
+import { Route, createBrowserRouter, createRoutesFromElements,
+  json, redirect } from 'react-router-dom';
+import RouterParam from './RouterParam';
+import TopPage from './TopPage';
+import BookPage from './BookPage';
+import SearchPage from './SearchPage';
+import NotFoundPage from './NotFoundPage';
+import BookQueryPage from './BookQueryPage';
+import BookStatePage from './BookStatePage';
+import InvalidParamsPage from './InvalidParamsPage';
+import WeatherPage from './WeatherPage';
+import CommonErrorPage from './CommonErrorPage';
+import BookFormPage from './BookFormPage';
+import yup from '../chap04/yup.kr';
+import { date, number, string } from 'yup';
+ 
+const bookAction = async ({ request }) => {
+  const form = await request.formData();
+  // 스키마 정의
+  const bookSchema = yup.object({
+    title: string().label('도서명').required().max(100),
+    price: number().label('가격').integer().positive(),
+    published: date().label('출간일').required().max(new Date(2100, 0, 1))
+  });
+  let info;
+  // 검증을 실행하고 오류 발생 시 메시지를 반환한다.
+  try {
+    info = await bookSchema.validate({
+      title: form.get('title'),
+      price: form.get('price') || 0,
+      published: new Date(form.get('published') || Date.now()),
+    }, {
+      abortEarly: false
+    });
+    console.log(info);
+    return redirect('/');
+  } catch (e) {
+    return e.errors;
+  }
+};
+ 
+const routesParam = createBrowserRouter(
+  createRoutesFromElements(
+    <Route element={<RouterParam />} >
+      <Route path="/" element={<TopPage />} />
+      <Route path="/book/form" element={<BookFormPage />}
+        action={bookAction} />
+      <Route path="/books" lazy={async ()=> {
+        const { BookListPage } = await import('./BookNest');
+        return { Component: BookListPage };
+      }}>
+        <Route path=":isbn" lazy={async ()=> {
+          const { BookDetailsPage } = await import('./BookNest');
+          return { Component: BookDetailsPage };
+        }} />
+      </Route>
+      <Route path="/bookQuery" element={<BookQueryPage />} />
+      <Route path="/bookState" element={<BookStatePage />} />
+      {/* 가변 길이 매개변수 정의 */}
+      <Route path="/search/*" element={<SearchPage />} />
+      <Route path="/weather/:city"
+        lazy={() => import('./WeatherLazyPage')} />
+      {/* 임의의 페이지에 해당하는 루트 */}
+      <Route path="*" element={<NotFoundPage />} />
+      <Route path="/search/*" element={<SearchPage />} />
+    </Route>
+  )
+);
+ 
+export default routesParam;
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap08/routesScroll.js.html b/modern-react/my-react/coverage/lcov-report/src/chap08/routesScroll.js.html new file mode 100644 index 0000000..aacd67b --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap08/routesScroll.js.html @@ -0,0 +1,127 @@ + + + + + + Code coverage report for src/chap08/routesScroll.js + + + + + + + + + +
+
+

All files / src/chap08 routesScroll.js

+
+ +
+ 0% + Statements + 0/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { Route, createBrowserRouter, createRoutesFromElements } from 'react-router-dom';
+import RouterScroll from './RouterScroll';
+import FirstPage from './FirstPage';
+import SecondPage from './SecondPage';
+ 
+const routesScroll = createBrowserRouter(
+  createRoutesFromElements(
+    <Route path="/" element={<RouterScroll />}>
+      <Route index element={<FirstPage />} />
+      <Route path="/second" element={<SecondPage />} />
+    </Route>
+  )
+);
+ 
+export default routesScroll;
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap09/MyUtil.js.html b/modern-react/my-react/coverage/lcov-report/src/chap09/MyUtil.js.html new file mode 100644 index 0000000..5b2e74c --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap09/MyUtil.js.html @@ -0,0 +1,91 @@ + + + + + + Code coverage report for src/chap09/MyUtil.js + + + + + + + + + +
+
+

All files / src/chap09 MyUtil.js

+
+ +
+ 100% + Statements + 1/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 1/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3  +1x + 
export function getTriangleArea(base, height) {
+  return base * height / 2;
+}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/chap09/index.html b/modern-react/my-react/coverage/lcov-report/src/chap09/index.html new file mode 100644 index 0000000..0800b9f --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/chap09/index.html @@ -0,0 +1,116 @@ + + + + + + Code coverage report for src/chap09 + + + + + + + + + +
+
+

All files src/chap09

+
+ +
+ 100% + Statements + 1/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 100% + Lines + 1/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
MyUtil.js +
+
100%1/1100%0/0100%1/1100%1/1
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/column/MyStore.js.html b/modern-react/my-react/coverage/lcov-report/src/column/MyStore.js.html new file mode 100644 index 0000000..169710f --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/column/MyStore.js.html @@ -0,0 +1,127 @@ + + + + + + Code coverage report for src/column/MyStore.js + + + + + + + + + +
+
+

All files / src/column MyStore.js

+
+ +
+ 0% + Statements + 0/6 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { useSyncExternalStore } from 'react';
+ 
+export default function MyStore() {
+  const data = useSyncExternalStore(
+    callback => {
+      window.addEventListener('storage', callback);
+      return () => window.removeEventListener('storage', callback);
+    },
+    () => localStorage.getItem('MY_REACT')
+  );
+  return (
+    <p>localStorage:{data}</p>
+  );
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/column/index.html b/modern-react/my-react/coverage/lcov-report/src/column/index.html new file mode 100644 index 0000000..bff09ce --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/column/index.html @@ -0,0 +1,116 @@ + + + + + + Code coverage report for src/column + + + + + + + + + +
+
+

All files src/column

+
+ +
+ 0% + Statements + 0/6 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
MyStore.js +
+
0%0/6100%0/00%0/40%0/5
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/config-overrides.js.html b/modern-react/my-react/coverage/lcov-report/src/config-overrides.js.html new file mode 100644 index 0000000..50c2108 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/config-overrides.js.html @@ -0,0 +1,100 @@ + + + + + + Code coverage report for src/config-overrides.js + + + + + + + + + +
+
+

All files / src config-overrides.js

+
+ +
+ 0% + Statements + 0/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6  +  +  +  +  + 
const { addBabelPlugins, override } = require("customize-cra");
+module.exports = override(
+  ...addBabelPlugins(
+    "styled-jsx/babel"
+  )
+);
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/index.html b/modern-react/my-react/coverage/lcov-report/src/index.html new file mode 100644 index 0000000..fd8aa8b --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/index.html @@ -0,0 +1,176 @@ + + + + + + Code coverage report for src + + + + + + + + + +
+
+

All files src

+
+ +
+ 5.88% + Statements + 1/17 +
+ + +
+ 0% + Branches + 0/4 +
+ + +
+ 25% + Functions + 1/4 +
+ + +
+ 5.88% + Lines + 1/17 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
App.js +
+
100%1/1100%0/0100%1/1100%1/1
AppClass.js +
+
0%0/1100%0/00%0/10%0/1
config-overrides.js +
+
0%0/2100%0/0100%0/00%0/2
index.js +
+
0%0/5100%0/0100%0/00%0/5
reportWebVitals.js +
+
0%0/80%0/40%0/20%0/8
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/index.js.html b/modern-react/my-react/coverage/lcov-report/src/index.js.html new file mode 100644 index 0000000..f62f7e8 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/index.js.html @@ -0,0 +1,3943 @@ + + + + + + Code coverage report for src/index.js + + + + + + + + + +
+
+

All files / src index.js

+
+ +
+ 0% + Statements + 0/5 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 0% + Lines + 0/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +450 +451 +452 +453 +454 +455 +456 +457 +458 +459 +460 +461 +462 +463 +464 +465 +466 +467 +468 +469 +470 +471 +472 +473 +474 +475 +476 +477 +478 +479 +480 +481 +482 +483 +484 +485 +486 +487 +488 +489 +490 +491 +492 +493 +494 +495 +496 +497 +498 +499 +500 +501 +502 +503 +504 +505 +506 +507 +508 +509 +510 +511 +512 +513 +514 +515 +516 +517 +518 +519 +520 +521 +522 +523 +524 +525 +526 +527 +528 +529 +530 +531 +532 +533 +534 +535 +536 +537 +538 +539 +540 +541 +542 +543 +544 +545 +546 +547 +548 +549 +550 +551 +552 +553 +554 +555 +556 +557 +558 +559 +560 +561 +562 +563 +564 +565 +566 +567 +568 +569 +570 +571 +572 +573 +574 +575 +576 +577 +578 +579 +580 +581 +582 +583 +584 +585 +586 +587 +588 +589 +590 +591 +592 +593 +594 +595 +596 +597 +598 +599 +600 +601 +602 +603 +604 +605 +606 +607 +608 +609 +610 +611 +612 +613 +614 +615 +616 +617 +618 +619 +620 +621 +622 +623 +624 +625 +626 +627 +628 +629 +630 +631 +632 +633 +634 +635 +636 +637 +638 +639 +640 +641 +642 +643 +644 +645 +646 +647 +648 +649 +650 +651 +652 +653 +654 +655 +656 +657 +658 +659 +660 +661 +662 +663 +664 +665 +666 +667 +668 +669 +670 +671 +672 +673 +674 +675 +676 +677 +678 +679 +680 +681 +682 +683 +684 +685 +686 +687 +688 +689 +690 +691 +692 +693 +694 +695 +696 +697 +698 +699 +700 +701 +702 +703 +704 +705 +706 +707 +708 +709 +710 +711 +712 +713 +714 +715 +716 +717 +718 +719 +720 +721 +722 +723 +724 +725 +726 +727 +728 +729 +730 +731 +732 +733 +734 +735 +736 +737 +738 +739 +740 +741 +742 +743 +744 +745 +746 +747 +748 +749 +750 +751 +752 +753 +754 +755 +756 +757 +758 +759 +760 +761 +762 +763 +764 +765 +766 +767 +768 +769 +770 +771 +772 +773 +774 +775 +776 +777 +778 +779 +780 +781 +782 +783 +784 +785 +786 +787 +788 +789 +790 +791 +792 +793 +794 +795 +796 +797 +798 +799 +800 +801 +802 +803 +804 +805 +806 +807 +808 +809 +810 +811 +812 +813 +814 +815 +816 +817 +818 +819 +820 +821 +822 +823 +824 +825 +826 +827 +828 +829 +830 +831 +832 +833 +834 +835 +836 +837 +838 +839 +840 +841 +842 +843 +844 +845 +846 +847 +848 +849 +850 +851 +852 +853 +854 +855 +856 +857 +858 +859 +860 +861 +862 +863 +864 +865 +866 +867 +868 +869 +870 +871 +872 +873 +874 +875 +876 +877 +878 +879 +880 +881 +882 +883 +884 +885 +886 +887 +888 +889 +890 +891 +892 +893 +894 +895 +896 +897 +898 +899 +900 +901 +902 +903 +904 +905 +906 +907 +908 +909 +910 +911 +912 +913 +914 +915 +916 +917 +918 +919 +920 +921 +922 +923 +924 +925 +926 +927 +928 +929 +930 +931 +932 +933 +934 +935 +936 +937 +938 +939 +940 +941 +942 +943 +944 +945 +946 +947 +948 +949 +950 +951 +952 +953 +954 +955 +956 +957 +958 +959 +960 +961 +962 +963 +964 +965 +966 +967 +968 +969 +970 +971 +972 +973 +974 +975 +976 +977 +978 +979 +980 +981 +982 +983 +984 +985 +986 +987 +988 +989 +990 +991 +992 +993 +994 +995 +996 +997 +998 +999 +1000 +1001 +1002 +1003 +1004 +1005 +1006 +1007 +1008 +1009 +1010 +1011 +1012 +1013 +1014 +1015 +1016 +1017 +1018 +1019 +1020 +1021 +1022 +1023 +1024 +1025 +1026 +1027 +1028 +1029 +1030 +1031 +1032 +1033 +1034 +1035 +1036 +1037 +1038 +1039 +1040 +1041 +1042 +1043 +1044 +1045 +1046 +1047 +1048 +1049 +1050 +1051 +1052 +1053 +1054 +1055 +1056 +1057 +1058 +1059 +1060 +1061 +1062 +1063 +1064 +1065 +1066 +1067 +1068 +1069 +1070 +1071 +1072 +1073 +1074 +1075 +1076 +1077 +1078 +1079 +1080 +1081 +1082 +1083 +1084 +1085 +1086 +1087 +1088 +1089 +1090 +1091 +1092 +1093 +1094 +1095 +1096 +1097 +1098 +1099 +1100 +1101 +1102 +1103 +1104 +1105 +1106 +1107 +1108 +1109 +1110 +1111 +1112 +1113 +1114 +1115 +1116 +1117 +1118 +1119 +1120 +1121 +1122 +1123 +1124 +1125 +1126 +1127 +1128 +1129 +1130 +1131 +1132 +1133 +1134 +1135 +1136 +1137 +1138 +1139 +1140 +1141 +1142 +1143 +1144 +1145 +1146 +1147 +1148 +1149 +1150 +1151 +1152 +1153 +1154 +1155 +1156 +1157 +1158 +1159 +1160 +1161 +1162 +1163 +1164 +1165 +1166 +1167 +1168 +1169 +1170 +1171 +1172 +1173 +1174 +1175 +1176 +1177 +1178 +1179 +1180 +1181 +1182 +1183 +1184 +1185 +1186 +1187 +1188 +1189 +1190 +1191 +1192 +1193 +1194 +1195 +1196 +1197 +1198 +1199 +1200 +1201 +1202 +1203 +1204 +1205 +1206 +1207 +1208 +1209 +1210 +1211 +1212 +1213 +1214 +1215 +1216 +1217 +1218 +1219 +1220 +1221 +1222 +1223 +1224 +1225 +1226 +1227 +1228 +1229 +1230 +1231 +1232 +1233 +1234 +1235 +1236 +1237 +1238 +1239 +1240 +1241 +1242 +1243 +1244 +1245 +1246 +1247 +1248 +1249 +1250 +1251 +1252 +1253 +1254 +1255 +1256 +1257 +1258 +1259 +1260 +1261 +1262 +1263 +1264 +1265 +1266 +1267 +1268 +1269 +1270 +1271 +1272 +1273 +1274 +1275 +1276 +1277 +1278 +1279 +1280 +1281 +1282 +1283 +1284 +1285 +1286 +1287  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
// 리액트 관련 라이브러리 가져오기
+import React, { Suspense } from 'react';
+import ReactDOM from 'react-dom/client';
+// 앱별 코드 가져오기
+import './index.css';
+import App from './App';
+// 성능 모니터링을 위한 서비스 가져오기
+import reportWebVitals from './reportWebVitals';
+ 
+// ■■chap02■■
+import AppClass from './AppClass';
+import './chap02/class.css';
+ 
+// ■■chap03■■
+import MyHello from './chap03/MyHello';
+import EventBasic from './chap03/EventBasic';
+import StateBasic from './chap03/StateBasic';
+import books from './chap03/books';
+import ForList from './chap03/ForList';
+import ForNest from './chap03/ForNest';
+import ForFilter from './chap03/ForFilter';
+import ForSort from './chap03/ForSort';
+import SelectStyle from './chap03/SelectStyle';
+import StyledPanel from './chap03/StyledPanel';
+import TitledPanel from './chap03/TitledPanel';
+import ListTemplate from './chap03/ListTemplate';
+import TypeProp, { Member } from './chap03/TypeProp';
+import StateParent from './chap03/StateParent';
+import EventMouse from './chap03/EventMouse';
+import EventCompare from './chap03/EventCompare';
+import EventError from './chap03/EventError';
+import EventObj from './chap03/EventObj';
+import EventPoint from './chap03/EventPoint';
+import EventKey from './chap03/EventKey';
+import EventArgs from './chap03/EventArgs';
+import EventArgs2 from './chap03/EventArgs2';
+import EventPropagation from './chap03/EventPropagation';
+import EventOnce from './chap03/EventOnce';
+import EventPassive from './chap03/EventPassive';
+ 
+// ■■chap04■■
+import StateForm from './chap04/StateForm';
+import StateFormUC from './chap04/StateFormUC';
+import FormTextarea from './chap04/FormTextarea';
+import FormSelect from './chap04/FormSelect';
+import FormList from './chap04/FormList';
+import FormRadio from './chap04/FormRadio';
+import FormCheck from './chap04/FormCheck';
+import FormCheckMulti from './chap04/FormCheckMulti';
+import FormFile from './chap04/FormFile';
+import StateNest from './chap04/StateNest';
+import StateNestImmer from './chap04/StateNestImmer';
+import StateNestImmer2 from './chap04/StateNestImmer2';
+import StateTodo from './chap04/StateTodo';
+import FormBasic from './chap04/FormBasic';
+import FormYup from './chap04/FormYup';
+import FromKorean from './chap04/FromKorean';
+ 
+// // ■■chap05■■
+import LazyBasic from './chap05/LazyBasic';
+import LazyMulti from './chap05/LazyMulti';
+import SuspenseSimple from './chap05/SuspenseSimple';
+import SuspenseResult from './chap05/SuspenseResult';
+import ProfilerBasic from './chap05/ProfilerBasic';
+import StyledComp from './chap05/StyledComp';
+import { MyButton, MyStyledButton } from './chap05/StyledComp2';
+import StyledCommon from './chap05/StyledCommon';
+import GlobalStyle from './chap05/StyledGlobal';
+import StyledProps from './chap05/StyledProps';
+import EmotionJsx from './chap05/EmotionJsx';
+import EmotionComp from './chap05/EmotionComp';
+/** @jsxImportSource @emotion/react */
+import { css, Global } from '@emotion/react';
+import PortalBasic from './chap05/PortalBasic';
+import ErrorRoot from './chap05/ErrorRoot';
+import ErrorRetryRoot from './chap05/ErrorRetryRoot';
+import ErrorEventRoot from './chap05/ErrorEventRoot';
+ 
+// ■■chap06■■
+import MaterialBasic from './chap06/MaterialBasic';
+import MaterialDrawer from './chap06/MaterialDrawer';
+import MaterialGrid from './chap06/MaterialGrid';
+import { CssBaseline, ThemeProvider } from '@mui/material';
+import theme from './chap06/theme';
+import MaterialMode from './chap06/MaterialMode';
+import FormMui from './chap06/FormMui';
+import QueryPre from './chap06/QueryPre';
+import { QueryClient, QueryClientProvider } from 'react-query';
+import QueryBasic from './chap06/QueryBasic';
+import { ErrorBoundary } from 'react-error-boundary';
+import QuerySuspense from './chap06/QuerySuspense';
+ 
+// ■■chap07■■
+import StateEffect from './chap07/StateEffect';
+import HookTimer from './chap07/HookTimer';
+import HookEffect from './chap07/HookEffect';
+import HookRefNg from './chap07/HookRefNg';
+import HookRef from './chap07/HookRef';
+import HookRefForward from './chap07/HookRefForward';
+import HookCallbackRef from './chap07/HookCallbackRef';
+import HookReducer from './chap07/HookReducer';
+import HookReducerUp from './chap07/HookReducerUp';
+import HookReducerInit from './chap07/HookReducerInit';
+import HookContext from './chap07/HookContext';
+import MyThemeProvider from './chap07/MyThemeProvider';
+import HookThemeButton from './chap07/HookThemeButton';
+import { RecoilRoot } from 'recoil';
+import RecoilCounter from './chap07/RecoilCounter';
+import RecoilTodo from './chap07/RecoilTodo';
+import RecoilTodoUp from './chap07/RecoilTodoUp';
+import HookMemo from './chap07/HookMemo';
+import HookTransition from './chap07/HookTransition';
+import HookDeferred from './chap07/HookDeferred';
+import HookDeferredTransition from './chap07/HookDeferredTransition';
+import HookCustom from './chap07/HookCustom';
+ 
+// // ■■chap08■■
+// New Router
+import { RouterProvider } from 'react-router-dom';
+import routesBasic from './chap08/routesBasic';
+import routesLink from './chap08/routesLink';
+import routesParam from './chap08/routesParam';
+import routesHandle from './chap08/routesHandle';
+import { HelmetProvider } from 'react-helmet-async';
+import routesMyLink from './chap08/routesMyLink';
+import routesScroll from './chap08/routesScroll';
+ 
+// ■■column■■
+// import MyStore from './column/MyStore';
+/* eslint-enable no-unused-vars */
+ 
+const root = ReactDOM.createRoot(document.getElementById('root'));
+ 
+// #region ■■chap02■■
+ 
+// 리액트 앱(App 컴포넌트) 그리기
+// root.render(
+//   <React.StrictMode>
+//     <App />
+//   </React.StrictMode>
+// );
+ 
+ 
+ 
+// Code 2-2-4
+// setInterval(() => {
+//   root.render(
+//     <p>현재 시각: {(new Date()).toLocaleString()}</p>
+//   );;
+// }, 1000);
+ 
+// root.render(
+//   <React.StrictMode>
+//     <AppClass />
+//   </React.StrictMode>
+// );
+ 
+ 
+ 
+// Code 2-3-1
+// root.render(
+//   <p>Hello, World!</p>
+//   <p>Hello, React!!</p>
+// );
+ 
+ 
+ 
+// Code 2-3-2
+// root.render(
+//   <div>
+//     <p>Hello, World!</p>
+//     <p>Hello, React!!</p>
+//   </div>
+// );
+ 
+// root.render(
+//   <React.Fragment>
+//     <p>Hello, World!</p>
+//     <p>Hello, React!!</p>
+//   </React.Fragment>
+// );
+ 
+// root.render(
+//   <>
+//     <p>Hello, World!</p>
+//     <p>Hello, React!!</p>
+//   </>
+// );
+ 
+// const tag = <img src={image}>;
+// const tag = <img src={image}/>;
+ 
+// const input = (
+//   <div className="field">
+//     <label htmlFor="title">이름</label>
+//     <input id="title" tabIndex="2" />
+//   </div>
+// );
+ 
+// const tag = (
+//   // 주석이다 (JSX 식이 아니므로 OK)
+//   <ul>
+//     {/* 주석이다. */}
+//     <li // 태그 내에서는 OK
+//       >React</li>
+//     <li /*
+//       이것도 괜찮다
+//     */>Vue.js</li>
+//     // 자모 요소에서 '//' '//' '/*~*/'은 안 됨
+//     <li>Angular</li>
+//   </ul>
+// );
+ 
+ 
+ 
+// Code 2-3-2
+// const name = '홍길동';
+// root.render(
+//   <p>안녕하세요, {name}입니다!</p>
+// );
+ 
+ 
+ 
+// Code 2-3-3
+// JSX 표현식이 아닌 단순한 문자열 리터럴
+// const content = `<h3>WINGS 프로젝트</h3>
+//   <img src="https://wings.msn.to/image/wings.jpg" />`;
+// root.render(
+//   <p>{content}</p>
+// );
+ 
+// const content = `<h3>WINGS 프로젝트</h3>
+//   <img src="https://wings.msn.to/image/wings.jpg" />`;
+// root.render(
+//   <p dangerouslySetInnerHTML={{__html: content}}></p>
+// );
+ 
+ 
+ 
+// Code 2-3-4
+// root.render(
+//   <div>{'Tom &amp; Jerry'}</div>
+// );
+ 
+// root.render(
+//   <div>Tom &amp; Jerry</div>
+// );
+ 
+// root.render(
+//   <>
+//     <div>{'Tom \u0026 Jerry'}</div>
+//     <div>{`Tom ${String.fromCodePoint(38)} Jerry`}</div>
+//     <div dangerouslySetInnerHTML={{__html: 'Tom &amp; Jerry'}} />
+//   </>
+// );
+ 
+ 
+ 
+// Code 2-3-5
+// root.render(
+//   <ul>
+//     <li>{true}</li>
+//     <li>{false}</li>
+//     <li>{undefined}</li>
+//     <li>{null}</li>
+//     <li>{0}</li>
+//     <li>{String(true)}</li>
+//   </ul>
+// );
+ 
+ 
+ 
+// Code 2-3-6
+// const dest = 'https://ko.react.dev';
+// root.render(
+//   <>
+//     <a href={dest}>리액트 공식 홈페이지</a> <br />
+//     <a href="{dest}">리액트 공식 홈페이지</a> <br />
+//     <a href="{dest}/docs">리액트 공식 홈페이지</a> <br />
+//     <a href={dest + '/docs'}>리액트 공식 홈페이지</a>
+//   </>
+// );
+ 
+ 
+ 
+// Code 2-3-7
+// 좋지 않은 예
+// const attrs = {
+//   href: 'https://wings.msn.to/',
+//   download: false,
+//   target: '_blank',
+//   rel: 'help'
+// };
+ 
+// root.render(
+//   <a href={attrs.href} download={attrs.download}
+//     target={attrs.target} rel={attrs.rel}>지원 페이지로 이동하기</a>
+// );
+ 
+// root.render(
+//   <a {...attrs}>지원 페이지로 이동하기</a>
+// );
+ 
+// root.render(
+//   <>
+//     <a href="index.html" download>맨 위로</a>
+//     <a href="index.html" download={true}>맨 위로</a>
+//   </>
+// );
+ 
+ 
+ 
+// Code 2-3-8
+// const props = 'color: White; background-color: Blue; padding: 3px';
+ 
+// root.render(
+//   <p style={props}>WINGS 프로젝트</p>
+// );
+ 
+// const props = {
+//   color: 'White',
+//   backgroundColor: 'Blue', 
+//   padding: 3 
+// };
+ 
+// root.render(
+//   <p style={props}>WINGS 프로젝트</p>
+// );
+ 
+// const props = {
+//   color: 'White',
+//   'background-color': 'Blue',
+//   padding: 3
+// };
+ 
+// root.render(
+//   <p style={props}>WINGS 프로젝트</p>
+// );
+ 
+ 
+ 
+// Code 2-3-9
+// import './chap02/class.css';
+ 
+// root.render(
+//   <p className="foo">WINGS 프로젝트</p>
+// );
+ 
+ 
+ 
+// Code 2-3-11
+// const title = '모던 리액트 Deep Dive';
+ 
+// root.render(
+//   <div className="main">
+//     <p>≪{title}≫ (김용찬 지음)</p>
+//     <img src="https://wikibook.co.kr/images/cover/m/9791158394646.png"
+//       alt={title} />
+//     절찬 판매 중!
+//   </div>
+// );
+ 
+// root.render(
+//   // 상위 <div> 요소 생성
+//   React.createElement(
+//     'div',
+//     { className: 'main' },
+//     // 자식 요소 <p>, <img>, 텍스트 열거
+//     React.createElement(
+//       'p',
+//       null, // 속성은 생략
+//       `≪${title}≫ (김용찬 지음)`
+//     ),
+//     React.createElement(
+//       'img',
+//       {
+//         src: 'https://wikibook.co.kr/images/cover/m/9791158394646.png',
+//         alt: title
+//       }
+//     ),
+//     '절찬 판매 중!'
+//   )
+// );
+ 
+// #endregion
+ 
+// #region ■■chap03■■
+ 
+// Code 3-1-2
+// root.render(
+//   <MyHello myName="홍길동" />
+// );
+ 
+// root.render(
+//   <MyHello myName={13} />
+// );
+ 
+// root.render(
+//   <>
+//     <MyHello myName={['야마다', '스즈키', '사토']} />
+//     <MyHello myName={() => { console.log('foo'); }} />
+//     <MyHello myName={{ name: '스즈키', age: 48 }} />
+//   </>
+// );
+ 
+ 
+ 
+// Code 3-1-5
+// root.render(
+//   <EventBasic type="time" />
+// );
+ 
+// root.render(
+//   <EventBasic type="time" />
+// );
+  
+ 
+ 
+// Code 3-1-7
+// root.render(
+//   <StateBasic init={0} />
+// );
+ 
+ 
+ 
+// Code 3-2-3
+// root.render(
+//   <ForList src={books} />
+// );
+ 
+ 
+ 
+// Code 3-2-7
+// root.render(
+//   <ForNest src={books} />
+// );
+ 
+ 
+ 
+// Code 3-2-9
+// root.render(
+//   <ForFilter src={books} />
+// );
+ 
+ 
+ 
+// Code 3-2-11
+// root.render(
+//   <ForSort src={books} />
+// );
+ 
+ 
+// root.render(
+//   <ForNest src={books} />
+// );
+ 
+ 
+ 
+// Code 3-2-18
+// root.render(
+//   <SelectStyle mode="light" />
+// );
+ 
+ 
+ 
+// Code 3-3-2
+// root.render(
+//   <StyledPanel>
+//     <p>회원 모집 중!</p>
+//     <p>위키북스 프로젝트에 오신 것을 환영합니다!!</p>
+//   </StyledPanel>
+// );
+ 
+// root.render(
+//   <StyledPanel>
+//     <MyHello myName="홍길동" />
+//   </StyledPanel>
+// );
+  
+  
+ 
+// Code 3-3-4
+// root.render(<TitledPanel
+//   title={
+//     <p>회원 모집 중!</p>
+//   }
+//   body={
+//     <p>위키북스 프로젝트에 오신 것을 환영합니다!!</p>
+//   }>
+//   </TitledPanel>
+// );
+ 
+ 
+ 
+// // Code 3-3-5
+// const title = <p>회원 모집 중!</p>;
+// const body = <p>위키북스 프로젝트에 오신 것을 환영합니다!!</p>;
+// root.render(
+//   <TitledPanel title={title} body={body}></TitledPanel>
+// );
+ 
+ 
+ 
+// // Code 3-3-7
+// root.render(
+//   <TitledPanel>
+//     <p key="title">회원 모집 중!</p>
+//     <p key="body">위키북스 프로젝트에 오신 것을 환영합니다!!</p>
+//   </TitledPanel>
+// );
+ 
+ 
+ 
+// Cod 3-3-9
+// root.render(
+//   <ListTemplate src={books}>
+//   { elem => (
+//     <>
+//       <dt>
+//         <a href={`https://wikibook.co.kr/images/cover/s/${elem.isbn}.jpg`}>
+//             {elem.title}({elem.price}원)
+//         </a>
+//       </dt>
+//       <dd>{elem.summary}</dd>
+//     </>
+//   )}
+//   </ListTemplate>
+// );
+ 
+ 
+ 
+// Cod 3-3-10
+// root.render(
+//   <ListTemplate src={books}>
+//     {elem => (
+//     <>
+//       <dt>
+//         <a href={`https://wikibook.co.kr/images/cover/s/${elem.isbn}.jpg`}>
+//             {elem.title}({elem.price}원)
+//         </a>
+//       </dt>
+//       <dd>{elem.summary}</dd>
+//     </>
+//   )}
+//   </ListTemplate>
+// );
+ 
+ 
+ 
+// Cod 3-3-13
+// root.render(
+//   // render 속성으로 렌더 함수를 전달한다.
+//   <ListTemplate src={books} render={ elem => (
+//     <>
+//       <dt>
+//         <a href={`https://wikibook.co.kr/images/cover/s/${elem.isbn}.jpg`}>
+//           {elem.title}({elem.price}원)
+//         </a>
+//       </dt>
+//       <dd>{elem.summary}</dd>
+//     </>
+//   )}/>
+// );
+ 
+ 
+ 
+// Code 3-3-15
+// root.render(
+//   <MyHello />
+// );
+ 
+ 
+ 
+// Code 3-3-17
+// (1)PropTypes.instanceOf
+// root.render(
+//   // 올바른 예
+//   // <TypeProp prop1={new Member()} />
+//   // 잘못된 예
+//   <TypeProp prop1="foo" />
+// );
+// // 결과: Warning: Failed prop type: Invalid prop `prop1` of type `String` supplied to `TypeProp`, expected instance of `Member`.
+ 
+ 
+ 
+// Code 3-3-19
+// (2)PropTypes.oneOf
+// root.render(
+//   // 올바른 예
+//   // <TypeProp prop2="남성" />
+//   // 잘못된 예
+//   <TypeProp prop2="foo" />
+// );
+// // 결과: Warning: Failed prop type: Invalid prop `prop2` of value `foo` supplied to `TypeProp`, expected one of ["남성","여성","기타"].
+ 
+ 
+ 
+// Code 3-3-21
+// (3)PropTypes.oneOfType
+// root.render(
+//   // 올바른 예
+//   // <TypeProp prop3="홍길동" />
+//   // 잘못된 예
+//   <TypeProp prop3={new Member()} />
+// );
+// // 결과: Warning: Failed prop type: Invalid prop `prop3` supplied to `TypeProp`, expected one of type [string, number, boolean].
+ 
+ 
+ 
+// Code 3-3-23
+// (4)PropTypes.arrayOf
+// root.render(
+//   // 올바른 예
+//   // <TypeProp prop4={[15, 30]} />
+//   // 잘못된 예 
+//   <TypeProp prop4={[333, '홍길동']} />
+// );
+// // 결과: Warning: Failed prop type: Invalid prop `prop4[1]` of type `string` supplied to `TypeProp`, expected `number`.
+ 
+ 
+// Code 3-3-25
+// (5)ProtoTypes.objectOf
+// root.render(
+//   // 올바른 예
+//   // <TypeProp prop5={{ '홍길동': 15, '이순신': 30 }} />
+//   // 잘못된 예 
+//   <TypeProp prop5={{ '홍길동': 15, '이순신': '삼십' }} />
+// );
+// // 결과: Warning: Failed prop type: Invalid prop `prop5.이순신` of type `string` supplied to `TypeProp`, expected `number`.
+ 
+ 
+ 
+// Code 3-3-27
+// (6)PropTypes.shape
+// root.render(
+//   // 올바른 예
+//   // <TypeProp prop6={{ name: '홍길동', age: 35, sex: '남성', blood: 'A' }} />
+//   // 잘못된 예
+//   <TypeProp prop6={{ age: 35, sex: '남성' }} />
+// );
+// // 결과: Warning: Failed prop type: The prop `prop6.name` is marked as required in `TypeProp`, but its value is `undefined`.
+ 
+// (7)PropTypes.exact
+// root.render(
+//   <TypeProp prop7={{ name: '홍길동', age: 35, sex: '남성', blood: 'A' }} />
+// );
+ 
+ 
+ 
+// Code 3-3-28
+// root.render(
+//   <StateBasic init={0} />
+// );
+ 
+ 
+ 
+// Code 3-3-31
+// root.render(
+//   <StateParent />
+// );
+ 
+ 
+// Code 3-4-2
+// root.render(
+//   <EventMouse
+//     alt="로고 이미지"
+//     beforeSrc="https://www.web-deli.com/image/linkbanner_l.gif"
+//     afterSrc="https://www.web-deli.com/image/home_chara.gif" />
+// );
+ 
+ 
+ 
+// Code 3-4-5
+// root.render(
+//   <EventCompare />
+// );
+ 
+ 
+ 
+// Code 3-4-5
+// root.render(
+//   <EventError src="./image/wings.jpg"
+//     alt="샘플 이미지" />
+// );
+ 
+ 
+ 
+// Code 3-4-9
+// root.render(
+//   <EventObj />
+// );
+ 
+ 
+ 
+// Code 3-4-12
+// root.render(
+//   <EventPoint />
+// );
+ 
+ 
+ 
+// Code 3-4-14
+// root.render(
+//   <EventKey />
+// );
+ 
+ 
+ 
+// Code 3-4-16
+// root.render(
+//   <EventArgs />
+// );
+ 
+ 
+ 
+// Code 3-4-18
+// root.render(
+//   <EventArgs2 />
+// );
+ 
+ 
+ 
+// Code 3-4-21
+// root.render(
+//   <EventPropagation />
+// );
+ 
+ 
+ 
+// Code 3-4-23
+// root.render(
+//   <EventOnce />
+// );
+ 
+ 
+// Code 3-4-26
+// root.render(
+//   <EventPassive />
+// );
+ 
+// #endregion
+ 
+// #region ■■chap04■■
+ 
+// Code 4-1-2
+// root.render(
+//   <StateForm />
+// );
+ 
+ 
+ 
+// Code 4-1-4
+// root.render(
+//   <StateFormUC />
+// );
+ 
+ 
+ 
+// Code 4-1-6
+// root.render(
+//   <FormTextarea />
+// );
+ 
+ 
+ 
+// Code 4-1-8
+// root.render(
+//   <FormSelect />
+// );
+ 
+ 
+ 
+// Code 4-1-10
+// root.render(
+//   <FormList />
+// );
+ 
+ 
+ 
+// Code 4-1-12
+// root.render(
+//   <FormRadio />
+// );
+ 
+ 
+ 
+// Code 4-1-12
+// root.render(
+//   <FormCheck />
+// );
+ 
+ 
+ 
+// Code 4-1-16
+// root.render(
+//   <FormCheckMulti />
+// );
+ 
+ 
+ 
+// Code 4-1-18
+// root.render(
+//   <FormFile />
+// );
+ 
+ 
+ 
+// Code 4-2-2
+// root.render(
+//   <StateNest />
+// );
+ 
+ 
+ 
+// Code 4-2-4
+// root.render(
+//   <StateNestImmer />
+// );
+ 
+ 
+ 
+// Code 4-2-6
+// root.render(
+//   <StateNestImmer2 />
+// );
+ 
+ 
+ 
+// Code 4-2-8
+// root.render(
+//   <StateTodo />
+// );
+ 
+ 
+ 
+// Code 4-3-2
+// root.render(
+//   <FormBasic />
+// );
+ 
+ 
+ 
+// Code 4-3-7
+// root.render(
+//   <FormYup />
+// );
+ 
+ 
+ 
+// Code 4-3-14
+// root.render(
+//   <FromKorean />
+// );
+// #endregion
+ 
+// #region ■■chap05■■
+// Code 5-1-2
+// root.render(
+//   <LazyBasic />
+// );
+ 
+ 
+ 
+// Code 5-1-4
+// root.render(
+//   <LazyMulti />
+// );
+ 
+ 
+ 
+// Code 5-1-7
+// root.render(
+//   <SuspenseSimple />
+// );
+ 
+ 
+// Code 5-1-12
+// root.render(
+//   <SuspenseResult />
+// );
+ 
+ 
+ 
+// Code 5-1-15
+// root.render(
+//   <ProfilerBasic />
+// );
+ 
+ 
+ 
+// Code 5-2-14
+// root.render(
+//   <StyledComp />
+// );
+ 
+ 
+// Code 5-2-16
+// root.render(
+//   <>
+//     <MyButton>버튼</MyButton>
+//     <MyStyledButton>버튼</MyStyledButton>
+//   </>
+// );
+ 
+ 
+ 
+// 5-2-19
+// root.render(
+//   <StyledCommon />
+// );
+ 
+ 
+ 
+// Code 5-2-19
+// root.render(
+//   <>
+//     <GlobalStyle />
+//     <StyledComp />
+//   </>
+// );
+ 
+ 
+ 
+// Code 5-2-23
+// root.render(
+//   <StyledProps />
+// );
+ 
+ 
+// Code 5-2-25
+// root.render(
+//   <EmotionJsx />
+// );
+ 
+ 
+ 
+// Cod 5-2-27
+// root.render(
+//   <EmotionComp />
+// );
+ 
+ 
+ 
+// Code 5-2-28
+// const global = css`
+//   body {
+//     background-color: Yellow;
+//   }
+// `;
+ 
+// root.render(
+//   <>
+//     <Global styles={global} />
+//     <EmotionJsx />
+//   </>
+// );
+ 
+ 
+ 
+// Code 5-3-3
+// root.render(
+//   <>
+//     <div id="dialog"></div>
+//     <PortalBasic />
+//   </>
+// );
+ 
+ 
+ 
+// Code 5-3-6
+// root.render(
+//   <ErrorRoot />
+// );
+ 
+ 
+ 
+// Code 5-3-9
+// root.render(
+//   <ErrorRetryRoot />
+// );
+ 
+ 
+ 
+// Code 5-3-14
+// root.render(
+//   <ErrorEventRoot />
+// );
+// #endregion
+ 
+// #region ■■chap06■■
+// Code 6-1-2
+// root.render(
+//   <MaterialBasic />
+// );
+ 
+ 
+ 
+// Code 6-1-5
+// root.render(
+//   <MaterialDrawer />
+// );
+ 
+ 
+ 
+// Code 6-1-7
+// root.render(
+//   <MaterialGrid />
+// );
+ 
+ 
+ 
+// Code 6-1-10
+// root.render(
+//   <ThemeProvider theme={theme}>
+//     <CssBaseline />
+//     <MaterialBasic />
+//   </ThemeProvider>
+// );
+ 
+ 
+ 
+// Code 6-1-12
+// root.render(
+//   <MaterialMode />
+// );
+ 
+ 
+ 
+// Code 6-1-15
+// root.render(
+//   <FormMui />
+// );
+ 
+ 
+ 
+// Code 6-3-2
+// root.render(
+//   <QueryPre />
+// );
+ 
+ 
+ 
+// Code 6-3-4
+// const cli = new QueryClient();
+// root.render(
+//   <QueryClientProvider client={cli}>
+//     <QueryBasic />
+//   </QueryClientProvider>
+// );
+ 
+ 
+ 
+// Code 6-3-6
+// Suspense 모드 활성화
+// const cli = new QueryClient({
+//   defaultOptions: {
+//     queries: {
+//       suspense: true,
+//     },
+//   },
+// });
+ 
+// root.render(
+//   <Suspense fallback={<p>Loading...</p>}>
+//     <ErrorBoundary fallback={<div>오류가 발생했습니다.</div>}>
+//       <QueryClientProvider client={cli}>
+//         <QuerySuspense />
+//       </QueryClientProvider>
+//     </ErrorBoundary>
+//   </Suspense>
+// );
+// #endregion
+ 
+// #region ■■chap07■■
+ 
+// Code 7-1-2
+// root.render(
+//   <StateEffect init={0} />
+// );
+ 
+ 
+ 
+// Code 7-1-5
+// root.render(
+//   <HookTimer init={10} />
+// );
+ 
+ 
+ 
+// Code 7-1-7
+// root.render(
+//   <HookEffect init={10} />
+// );
+ 
+ 
+ 
+// Code 7-2-2
+// root.render(
+//   <HookRefNg />
+// );
+ 
+ 
+ 
+// Code 7-2-4
+// root.render(
+//   <HookRef />
+// );
+ 
+ 
+ 
+// Code 7-2-7
+// root.render(
+//   <HookRefForward />
+// );
+ 
+ 
+ 
+// Code 7-2-11
+// root.render(
+//   <HookCallbackRef />
+// );
+ 
+ 
+ 
+// Code 7-3-2
+// root.render(
+//   <HookReducer init={0} />
+// );
+ 
+ 
+ 
+// Code 7-3-4
+// root.render(
+//   <HookReducerUp init={0} />
+// );
+ 
+ 
+ 
+// Code 7-3-6
+// root.render(
+//   <HookReducerInit init={0} />
+// );
+ 
+ 
+ 
+// Code 7-4-3
+// root.render(
+//   <HookContext />
+// );
+ 
+ 
+// Code 7-4-6
+// root.render(
+//   <MyThemeProvider>
+//     <HookThemeButton />
+//   </MyThemeProvider>
+// );
+ 
+ 
+ 
+// Code 7-5-3
+// root.render(
+//   <RecoilRoot>
+//     <RecoilCounter />
+//   </RecoilRoot>
+// );
+ 
+ 
+ 
+// Code 7-5-6
+// root.render(
+//   <RecoilRoot>
+//     <RecoilTodo />
+//   </RecoilRoot>
+// );
+ 
+ 
+ 
+// Code 7-5-9
+// root.render(
+//   <RecoilRoot>
+//     <RecoilTodoUp />
+//   </RecoilRoot>
+// );
+ 
+ 
+ 
+// Code 7-6-3
+// root.render(
+//   <HookMemo />
+// );
+ 
+ 
+ 
+// Code 7-7-3
+// root.render(
+//   <HookTransition />
+// );
+ 
+ 
+ 
+// Code 7-7-8
+// root.render(
+//   <HookDeferred />
+// );
+ 
+ 
+ 
+// Code 7-7-10
+// root.render(
+//   <HookDeferredTransition />
+// );
+ 
+ 
+ 
+// Code 7-8-3
+// root.render(
+//   <HookCustom />
+// );
+// #endregion
+ 
+// #region ■■chap08■■
+ 
+// Code 8-1-2
+// 리액트 라우터 활성화
+// root.render(
+//   <RouterProvider router={routesBasic} />
+// );
+ 
+ 
+ 
+// Code 8-2-3
+// root.render(
+//   <RouterProvider router={routesLink} />
+// );
+ 
+ 
+ 
+// Code 8-3-2
+// root.render(
+//   <RouterProvider router={routesParam} />
+// );
+ 
+ 
+ 
+// Code 8-3-23
+// root.render(
+//   <HelmetProvider>
+//     <RouterProvider router={routesHandle} />
+//   </HelmetProvider>
+// );
+ 
+ 
+ 
+// Code 8-4-2 (8-3-2)
+root.render(
+  <RouterProvider router={routesParam} />
+);
+ 
+ 
+ 
+// Code 8-5-4
+root.render(
+  <RouterProvider router={routesMyLink} />
+);
+ 
+ 
+ 
+// Code 8-5-8
+root.render(
+  <RouterProvider router={routesScroll} />
+);
+// #endregion
+ 
+// #region ■■column■■
+// root.render(
+//   <MyStore />
+// );
+// #endregion
+ 
+ 
+ 
+// 성능 모니터링 도구 활성화
+reportWebVitals();
+// reportWebVitals(console.log);
+ 
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/reportWebVitals.js.html b/modern-react/my-react/coverage/lcov-report/src/reportWebVitals.js.html new file mode 100644 index 0000000..338e33f --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/reportWebVitals.js.html @@ -0,0 +1,124 @@ + + + + + + Code coverage report for src/reportWebVitals.js + + + + + + + + + +
+
+

All files / src reportWebVitals.js

+
+ +
+ 0% + Statements + 0/8 +
+ + +
+ 0% + Branches + 0/4 +
+ + +
+ 0% + Functions + 0/2 +
+ + +
+ 0% + Lines + 0/8 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14  +  +  +  +  +  +  +  +  +  +  +  +  + 
const reportWebVitals = onPerfEntry => {
+  if (onPerfEntry && onPerfEntry instanceof Function) {
+    import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
+      getCLS(onPerfEntry);
+      getFID(onPerfEntry);
+      getFCP(onPerfEntry);
+      getLCP(onPerfEntry);
+      getTTFB(onPerfEntry);
+    });
+  }
+};
+ 
+export default reportWebVitals;
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/store/atom.js.html b/modern-react/my-react/coverage/lcov-report/src/store/atom.js.html new file mode 100644 index 0000000..faa80e6 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/store/atom.js.html @@ -0,0 +1,223 @@ + + + + + + Code coverage report for src/store/atom.js + + + + + + + + + +
+
+

All files / src/store atom.js

+
+ +
+ 0% + Statements + 0/5 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { atom, selector } from 'recoil';
+ 
+export const counterAtom = atom({
+  key: 'counterAtom',
+  default: 0
+});
+ 
+// 할 일 목록 정의
+export const todoAtom = atom({
+  key: 'todosAtom',
+  default: [
+    {
+      id: 1,  // id 값
+      title: '우진이 사료 주문하기',  // Todo 본체
+      isDone: false,  // 실행 완료 여부
+    },
+    {
+      id: 2,
+      title: '수영 다녀오기',
+      isDone: true,
+    },
+    {
+      id: 3,
+      title: '모험의서 읽기',
+      isDone: true,
+    },
+    {
+      id: 4,
+      title: '소금빵 만들기',
+      isDone: false,
+    },
+    {
+      id: 5,
+      title: '창문 청소하기 ',
+      isDone: false,
+    },
+  ],
+});
+ 
+export const todoLastIdSelector = selector({
+  key: 'todoLastIdSelector',
+  get: ({ get }) => {
+    // 할 일 목록 마지막 할 일 가져오기
+    const todo = get(todoAtom);
+    return todo.at(-1)?.id ?? 0;
+  },
+});
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/store/atomUp.js.html b/modern-react/my-react/coverage/lcov-report/src/store/atomUp.js.html new file mode 100644 index 0000000..7961ac9 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/store/atomUp.js.html @@ -0,0 +1,217 @@ + + + + + + Code coverage report for src/store/atomUp.js + + + + + + + + + +
+
+

All files / src/store atomUp.js

+
+ +
+ 0% + Statements + 0/20 +
+ + +
+ 0% + Branches + 0/4 +
+ + +
+ 0% + Functions + 0/7 +
+ + +
+ 0% + Lines + 0/15 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { atom, atomFamily, selector } from 'recoil';
+ 
+// id 값 관리를 위한 Atom
+export const idsAtom = atom({
+  key: 'idsAtom',
+  default: []
+});
+ 
+// 개별 Todo 항목을 별도의 Atom으로 관리하기
+export const todoAtom = atomFamily({
+  key: 'todoAtom',
+  default: null
+});
+ 
+// 할 일 항목을 목록으로 묶어 조작할 수 있는 선택기
+export const todoListSelector = selector({
+  key: 'todoListSelector',
+  // 현재 할 일 목록 가져오기
+  get: ({ get }) => {
+    const ids = get(idsAtom);
+    return ids.map(id => get(todoAtom(id)));
+  },
+  // 할 일 목록에 추가 / 완료 / 삭제 작업
+  set: ({ set, reset }, { type, id, newItem }) => {
+    switch (type) {
+      // 새로운 Todo 항목(todoAtom)을 생성한다.
+      case 'add' :
+       set(todoAtom(newItem.id), newItem);
+       set(idsAtom, ids => [...ids, newItem.id]);
+       break;
+      // 기존 Todo 항목(id가 todoAtom인 Todo 항목)의 isDone 속성을 true로 설정한다.
+      case 'done' :
+        set(todoAtom(id), todo => ({ ...todo, isDone: true }));
+        break;
+      // 기존 Todo 항목(id인 todoAtom) 삭제 및
+      // id군(idsAtom)에서 해당 id 값을 삭제한다.
+      case 'remove' :
+        reset(todoAtom(id));
+        set(idsAtom, ids => ids.filter(e => e !== id));
+        break;
+      default :
+        throw new Error('Type is invalid.');
+    }
+  }
+});
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/store/index.html b/modern-react/my-react/coverage/lcov-report/src/store/index.html new file mode 100644 index 0000000..d93e223 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/store/index.html @@ -0,0 +1,131 @@ + + + + + + Code coverage report for src/store + + + + + + + + + +
+
+

All files src/store

+
+ +
+ 0% + Statements + 0/25 +
+ + +
+ 0% + Branches + 0/6 +
+ + +
+ 0% + Functions + 0/8 +
+ + +
+ 0% + Lines + 0/20 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
atom.js +
+
0%0/50%0/20%0/10%0/5
atomUp.js +
+
0%0/200%0/40%0/70%0/15
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/stories/Button.jsx.html b/modern-react/my-react/coverage/lcov-report/src/stories/Button.jsx.html new file mode 100644 index 0000000..6328df3 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/stories/Button.jsx.html @@ -0,0 +1,235 @@ + + + + + + Code coverage report for src/stories/Button.jsx + + + + + + + + + +
+
+

All files / src/stories Button.jsx

+
+ +
+ 0% + Statements + 0/5 +
+ + +
+ 0% + Branches + 0/4 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/5 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from 'react';
+import PropTypes from 'prop-types';
+import './button.css';
+ 
+/**
+ * Primary UI component for user interaction
+ */
+export const Button = ({ primary, backgroundColor, size, label, ...props }) => {
+  const mode = primary ? 'storybook-button--primary' : 'storybook-button--secondary';
+  return (
+    <button
+      type="button"
+      className={['storybook-button', `storybook-button--${size}`, mode].join(' ')}
+      style={backgroundColor && { backgroundColor }}
+      {...props}
+    >
+      {label}
+    </button>
+  );
+};
+ 
+Button.propTypes = {
+  /**
+   * Is this the principal call to action on the page?
+   */
+  primary: PropTypes.bool,
+  /**
+   * What background color to use
+   */
+  backgroundColor: PropTypes.string,
+  /**
+   * How large should the button be?
+   */
+  size: PropTypes.oneOf(['small', 'medium', 'large']),
+  /**
+   * Button contents
+   */
+  label: PropTypes.string.isRequired,
+  /**
+   * Optional click handler
+   */
+  onClick: PropTypes.func,
+};
+ 
+Button.defaultProps = {
+  backgroundColor: null,
+  primary: false,
+  size: 'medium',
+  onClick: undefined,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/stories/Button.stories.js.html b/modern-react/my-react/coverage/lcov-report/src/stories/Button.stories.js.html new file mode 100644 index 0000000..0039748 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/stories/Button.stories.js.html @@ -0,0 +1,229 @@ + + + + + + Code coverage report for src/stories/Button.stories.js + + + + + + + + + +
+
+

All files / src/stories Button.stories.js

+
+ +
+ 0% + Statements + 0/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 0% + Lines + 0/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { fn } from '@storybook/test';
+import { Button } from './Button';
+ 
+// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
+export default {
+  title: 'Example/Button',
+  component: Button,
+  parameters: {
+    // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
+    layout: 'centered',
+  },
+  // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs
+  tags: ['autodocs'],
+  // More on argTypes: https://storybook.js.org/docs/api/argtypes
+  argTypes: {
+    backgroundColor: { control: 'color' },
+  },
+  // Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args
+  args: { onClick: fn() },
+};
+ 
+// More on writing stories with args: https://storybook.js.org/docs/writing-stories/args
+export const Primary = {
+  args: {
+    primary: true,
+    label: 'Button',
+  },
+};
+ 
+export const Secondary = {
+  args: {
+    label: 'Button',
+  },
+};
+ 
+export const Large = {
+  args: {
+    size: 'large',
+    label: 'Button',
+  },
+};
+ 
+export const Small = {
+  args: {
+    size: 'small',
+    label: 'Button',
+  },
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/stories/Header.jsx.html b/modern-react/my-react/coverage/lcov-report/src/stories/Header.jsx.html new file mode 100644 index 0000000..1be26d6 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/stories/Header.jsx.html @@ -0,0 +1,262 @@ + + + + + + Code coverage report for src/stories/Header.jsx + + + + + + + + + +
+
+

All files / src/stories Header.jsx

+
+ +
+ 0% + Statements + 0/4 +
+ + +
+ 0% + Branches + 0/2 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from 'react';
+import PropTypes from 'prop-types';
+ 
+import { Button } from './Button';
+import './header.css';
+ 
+export const Header = ({ user, onLogin, onLogout, onCreateAccount }) => (
+  <header>
+    <div className="storybook-header">
+      <div>
+        <svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
+          <g fill="none" fillRule="evenodd">
+            <path
+              d="M10 0h12a10 10 0 0110 10v12a10 10 0 01-10 10H10A10 10 0 010 22V10A10 10 0 0110 0z"
+              fill="#FFF"
+            />
+            <path
+              d="M5.3 10.6l10.4 6v11.1l-10.4-6v-11zm11.4-6.2l9.7 5.5-9.7 5.6V4.4z"
+              fill="#555AB9"
+            />
+            <path
+              d="M27.2 10.6v11.2l-10.5 6V16.5l10.5-6zM15.7 4.4v11L6 10l9.7-5.5z"
+              fill="#91BAF8"
+            />
+          </g>
+        </svg>
+        <h1>Acme</h1>
+      </div>
+      <div>
+        {user ? (
+          <>
+            <span className="welcome">
+              Welcome, <b>{user.name}</b>!
+            </span>
+            <Button size="small" onClick={onLogout} label="Log out" />
+          </>
+        ) : (
+          <>
+            <Button size="small" onClick={onLogin} label="Log in" />
+            <Button primary size="small" onClick={onCreateAccount} label="Sign up" />
+          </>
+        )}
+      </div>
+    </div>
+  </header>
+);
+ 
+Header.propTypes = {
+  user: PropTypes.shape({
+    name: PropTypes.string.isRequired,
+  }),
+  onLogin: PropTypes.func.isRequired,
+  onLogout: PropTypes.func.isRequired,
+  onCreateAccount: PropTypes.func.isRequired,
+};
+ 
+Header.defaultProps = {
+  user: null,
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/stories/Header.stories.js.html b/modern-react/my-react/coverage/lcov-report/src/stories/Header.stories.js.html new file mode 100644 index 0000000..b56eaeb --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/stories/Header.stories.js.html @@ -0,0 +1,169 @@ + + + + + + Code coverage report for src/stories/Header.stories.js + + + + + + + + + +
+
+

All files / src/stories Header.stories.js

+
+ +
+ 0% + Statements + 0/2 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 0% + Lines + 0/2 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { Header } from './Header';
+import { fn } from '@storybook/test';
+ 
+export default {
+  title: 'Example/Header',
+  component: Header,
+  // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs
+  tags: ['autodocs'],
+  parameters: {
+    // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout
+    layout: 'fullscreen',
+  },
+  args: {
+    onLogin: fn(),
+    onLogout: fn(),
+    onCreateAccount: fn(),
+  },
+};
+ 
+export const LoggedIn = {
+  args: {
+    user: {
+      name: 'Jane Doe',
+    },
+  },
+};
+ 
+export const LoggedOut = {};
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/stories/Page.jsx.html b/modern-react/my-react/coverage/lcov-report/src/stories/Page.jsx.html new file mode 100644 index 0000000..73ebf6c --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/stories/Page.jsx.html @@ -0,0 +1,292 @@ + + + + + + Code coverage report for src/stories/Page.jsx + + + + + + + + + +
+
+

All files / src/stories Page.jsx

+
+ +
+ 0% + Statements + 0/6 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/6 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import React from 'react';
+ 
+import { Header } from './Header';
+import './page.css';
+ 
+export const Page = () => {
+  const [user, setUser] = React.useState();
+ 
+  return (
+    <article>
+      <Header
+        user={user}
+        onLogin={() => setUser({ name: 'Jane Doe' })}
+        onLogout={() => setUser(undefined)}
+        onCreateAccount={() => setUser({ name: 'Jane Doe' })}
+      />
+ 
+      <section className="storybook-page">
+        <h2>Pages in Storybook</h2>
+        <p>
+          We recommend building UIs with a{' '}
+          <a href="https://componentdriven.org" target="_blank" rel="noopener noreferrer">
+            <strong>component-driven</strong>
+          </a>{' '}
+          process starting with atomic components and ending with pages.
+        </p>
+        <p>
+          Render pages with mock data. This makes it easy to build and review page states without
+          needing to navigate to them in your app. Here are some handy patterns for managing page
+          data in Storybook:
+        </p>
+        <ul>
+          <li>
+            Use a higher-level connected component. Storybook helps you compose such data from the
+            "args" of child component stories
+          </li>
+          <li>
+            Assemble data in the page component from your services. You can mock these services out
+            using Storybook.
+          </li>
+        </ul>
+        <p>
+          Get a guided tutorial on component-driven development at{' '}
+          <a href="https://storybook.js.org/tutorials/" target="_blank" rel="noopener noreferrer">
+            Storybook tutorials
+          </a>
+          . Read more in the{' '}
+          <a href="https://storybook.js.org/docs" target="_blank" rel="noopener noreferrer">
+            docs
+          </a>
+          .
+        </p>
+        <div className="tip-wrapper">
+          <span className="tip">Tip</span> Adjust the width of the canvas with the{' '}
+          <svg width="10" height="10" viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg">
+            <g fill="none" fillRule="evenodd">
+              <path
+                d="M1.5 5.2h4.8c.3 0 .5.2.5.4v5.1c-.1.2-.3.3-.4.3H1.4a.5.5 0 01-.5-.4V5.7c0-.3.2-.5.5-.5zm0-2.1h6.9c.3 0 .5.2.5.4v7a.5.5 0 01-1 0V4H1.5a.5.5 0 010-1zm0-2.1h9c.3 0 .5.2.5.4v9.1a.5.5 0 01-1 0V2H1.5a.5.5 0 010-1zm4.3 5.2H2V10h3.8V6.2z"
+                id="a"
+                fill="#999"
+              />
+            </g>
+          </svg>
+          Viewports addon in the toolbar
+        </div>
+      </section>
+    </article>
+  );
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/stories/Page.stories.js.html b/modern-react/my-react/coverage/lcov-report/src/stories/Page.stories.js.html new file mode 100644 index 0000000..796652a --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/stories/Page.stories.js.html @@ -0,0 +1,169 @@ + + + + + + Code coverage report for src/stories/Page.stories.js + + + + + + + + + +
+
+

All files / src/stories Page.stories.js

+
+ +
+ 0% + Statements + 0/9 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/1 +
+ + +
+ 0% + Lines + 0/9 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import { within, userEvent, expect } from '@storybook/test';
+ 
+import { Page } from './Page';
+ 
+export default {
+  title: 'Example/Page',
+  component: Page,
+  parameters: {
+    // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout
+    layout: 'fullscreen',
+  },
+};
+ 
+export const LoggedOut = {};
+ 
+// More on interaction testing: https://storybook.js.org/docs/writing-tests/interaction-testing
+export const LoggedIn = {
+  play: async ({ canvasElement }) => {
+    const canvas = within(canvasElement);
+    const loginButton = canvas.getByRole('button', { name: /Log in/i });
+    await expect(loginButton).toBeInTheDocument();
+    await userEvent.click(loginButton);
+    await expect(loginButton).not.toBeInTheDocument();
+ 
+    const logoutButton = canvas.getByRole('button', { name: /Log out/i });
+    await expect(logoutButton).toBeInTheDocument();
+  },
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov-report/src/stories/index.html b/modern-react/my-react/coverage/lcov-report/src/stories/index.html new file mode 100644 index 0000000..8f16930 --- /dev/null +++ b/modern-react/my-react/coverage/lcov-report/src/stories/index.html @@ -0,0 +1,191 @@ + + + + + + Code coverage report for src/stories + + + + + + + + + +
+
+

All files src/stories

+
+ +
+ 0% + Statements + 0/30 +
+ + +
+ 0% + Branches + 0/6 +
+ + +
+ 0% + Functions + 0/7 +
+ + +
+ 0% + Lines + 0/30 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
Button.jsx +
+
0%0/50%0/40%0/10%0/5
Button.stories.js +
+
0%0/4100%0/0100%0/00%0/4
Header.jsx +
+
0%0/40%0/20%0/10%0/4
Header.stories.js +
+
0%0/2100%0/0100%0/00%0/2
Page.jsx +
+
0%0/6100%0/00%0/40%0/6
Page.stories.js +
+
0%0/9100%0/00%0/10%0/9
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/modern-react/my-react/coverage/lcov.info b/modern-react/my-react/coverage/lcov.info new file mode 100644 index 0000000..6897684 --- /dev/null +++ b/modern-react/my-react/coverage/lcov.info @@ -0,0 +1,3129 @@ +TN: +SF:src/App.js +FN:6,App +FNF:1 +FNH:1 +FNDA:1,App +DA:8,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/AppClass.js +FN:8,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:9,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/config-overrides.js +FNF:0 +FNH:0 +DA:1,0 +DA:2,0 +LF:2 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/index.js +FNF:0 +FNH:0 +DA:132,0 +DA:1256,0 +DA:1263,0 +DA:1270,0 +DA:1284,0 +LF:5 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/reportWebVitals.js +FN:1,(anonymous_0) +FN:3,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +DA:1,0 +DA:2,0 +DA:3,0 +DA:4,0 +DA:5,0 +DA:6,0 +DA:7,0 +DA:8,0 +LF:8 +LH:0 +BRDA:2,0,0,0 +BRDA:2,0,1,0 +BRDA:2,1,0,0 +BRDA:2,1,1,0 +BRF:4 +BRH:0 +end_of_record +TN: +SF:src/chap03/Download.js +FN:3,Download +FNF:1 +FNH:0 +FNDA:0,Download +DA:4,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap03/EventArgs.js +FN:1,EventArgs +FN:3,(anonymous_1) +FN:20,(anonymous_2) +FN:21,(anonymous_3) +FN:22,(anonymous_4) +FNF:5 +FNH:0 +FNDA:0,EventArgs +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +DA:3,0 +DA:4,0 +DA:5,0 +DA:7,0 +DA:8,0 +DA:10,0 +DA:11,0 +DA:13,0 +DA:14,0 +DA:17,0 +DA:20,0 +DA:21,0 +DA:22,0 +LF:13 +LH:0 +BRDA:5,0,0,0 +BRDA:5,0,1,0 +BRDA:5,0,2,0 +BRF:3 +BRH:0 +end_of_record +TN: +SF:src/chap03/EventArgs2.js +FN:1,EventArgs2 +FN:2,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,EventArgs2 +FNDA:0,(anonymous_1) +DA:2,0 +DA:3,0 +DA:4,0 +DA:5,0 +DA:7,0 +DA:8,0 +DA:10,0 +DA:11,0 +DA:13,0 +DA:14,0 +DA:17,0 +LF:11 +LH:0 +BRDA:5,0,0,0 +BRDA:5,0,1,0 +BRDA:5,0,2,0 +BRF:3 +BRH:0 +end_of_record +TN: +SF:src/chap03/EventBasic.js +FN:1,EventBasic +FN:3,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,EventBasic +FNDA:0,(anonymous_1) +DA:3,0 +DA:4,0 +DA:6,0 +DA:8,0 +DA:9,0 +DA:11,0 +DA:12,0 +DA:14,0 +DA:15,0 +DA:19,0 +LF:10 +LH:0 +BRDA:6,0,0,0 +BRDA:6,0,1,0 +BRDA:6,0,2,0 +BRF:3 +BRH:0 +end_of_record +TN: +SF:src/chap03/EventCompare.js +FN:4,EventCompare +FN:7,(anonymous_1) +FN:7,(anonymous_2) +FN:8,(anonymous_3) +FN:8,(anonymous_4) +FNF:5 +FNH:0 +FNDA:0,EventCompare +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +DA:5,0 +DA:7,0 +DA:8,0 +DA:9,0 +LF:4 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap03/EventError.js +FN:3,EventError +FN:6,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,EventError +FNDA:0,(anonymous_1) +DA:4,0 +DA:6,0 +DA:7,0 +LF:3 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap03/EventKey.js +FN:1,EventKey +FN:3,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,EventKey +FNDA:0,(anonymous_1) +DA:3,0 +DA:4,0 +DA:5,0 +DA:9,0 +LF:4 +LH:0 +BRDA:4,0,0,0 +BRDA:4,0,1,0 +BRDA:4,1,0,0 +BRDA:4,1,1,0 +BRF:4 +BRH:0 +end_of_record +TN: +SF:src/chap03/EventMouse.js +FN:3,EventMouse +FN:7,(anonymous_1) +FN:8,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,EventMouse +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:5,0 +DA:7,0 +DA:8,0 +DA:9,0 +LF:4 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap03/EventObj.js +FN:1,EventObj +FN:3,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,EventObj +FNDA:0,(anonymous_1) +DA:3,0 +DA:4,0 +LF:2 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap03/EventOnce.js +FN:3,EventOnce +FN:8,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,EventOnce +FNDA:0,(anonymous_1) +DA:5,0 +DA:7,0 +DA:8,0 +DA:10,0 +DA:11,0 +DA:13,0 +DA:17,0 +LF:7 +LH:0 +BRDA:10,0,0,0 +BRDA:10,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src/chap03/EventPassive.js +FN:4,EventPassive +FN:5,(anonymous_1) +FN:7,(anonymous_2) +FN:10,(anonymous_3) +FNF:4 +FNH:0 +FNDA:0,EventPassive +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:5,0 +DA:6,0 +DA:7,0 +DA:8,0 +DA:9,0 +DA:10,0 +DA:11,0 +DA:15,0 +LF:8 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap03/EventPoint.js +FN:4,EventPoint +FN:11,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,EventPoint +FNDA:0,(anonymous_1) +DA:5,0 +DA:6,0 +DA:7,0 +DA:8,0 +DA:11,0 +DA:12,0 +DA:13,0 +DA:14,0 +DA:15,0 +DA:18,0 +LF:10 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap03/EventPropagation.js +FN:3,EventPropagation +FN:4,(anonymous_1) +FN:5,(anonymous_2) +FN:6,(anonymous_3) +FNF:4 +FNH:0 +FNDA:0,EventPropagation +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:4,0 +DA:5,0 +DA:6,0 +DA:8,0 +LF:4 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap03/ForFilter.js +FN:3,ForFilter +FN:4,(anonymous_1) +FN:7,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,ForFilter +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:4,0 +DA:5,0 +DA:8,0 +LF:3 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap03/ForItem.js +FN:3,ForItem +FNF:1 +FNH:0 +FNDA:0,ForItem +DA:4,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap03/ForList.js +FN:4,ForList +FN:8,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,ForList +FNDA:0,(anonymous_1) +DA:5,0 +DA:9,0 +LF:2 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap03/ForNest.js +FN:3,ForNest +FN:6,(anonymous_1) +FNF:2 +FNH:2 +FNDA:1,ForNest +FNDA:5,(anonymous_1) +DA:4,1 +DA:7,5 +LF:2 +LH:2 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap03/ForSort.js +FN:3,ForSort +FN:4,(anonymous_1) +FN:7,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,ForSort +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:4,0 +DA:5,0 +DA:8,0 +LF:3 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap03/ListTemplate.js +FN:3,ListTemplate +FN:6,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,ListTemplate +FNDA:0,(anonymous_1) +DA:4,0 +DA:7,0 +LF:2 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap03/MyHello.js +FN:29,MyHello +FNF:1 +FNH:0 +FNDA:0,MyHello +DA:30,0 +DA:36,0 +LF:2 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap03/SelectStyle.js +FN:4,SelectStyle +FNF:1 +FNH:0 +FNDA:0,SelectStyle +DA:5,0 +LF:1 +LH:0 +BRDA:7,0,0,0 +BRDA:7,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src/chap03/StateBasic.js +FN:3,StateBasic +FN:8,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,StateBasic +FNDA:0,(anonymous_1) +DA:5,0 +DA:7,0 +DA:8,0 +DA:10,0 +LF:4 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap03/StateCounter.js +FN:3,StateCounter +FN:5,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,StateCounter +FNDA:0,(anonymous_1) +DA:5,0 +DA:6,0 +LF:2 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap03/StateParent.js +FN:4,StateParent +FN:8,(anonymous_1) +FN:8,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,StateParent +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:6,0 +DA:8,0 +DA:9,0 +LF:3 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap03/StyledPanel.js +FN:1,StyledPanel +FNF:1 +FNH:0 +FNDA:0,StyledPanel +DA:2,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap03/TitledPanel.js +FN:19,TitledPanel +FN:20,(anonymous_1) +FN:21,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,TitledPanel +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:20,0 +DA:21,0 +DA:23,0 +LF:3 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap03/TypeProp.js +FN:3,Member +FN:4,TypeProp +FNF:2 +FNH:0 +FNDA:0,Member +FNDA:0,TypeProp +DA:5,0 +DA:6,0 +DA:9,0 +LF:3 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap03/books.js +FNF:0 +FNH:0 +DA:1,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap04/FormBasic.js +FN:3,FormBasic +FN:19,(anonymous_1) +FN:20,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,FormBasic +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:5,0 +DA:14,0 +DA:19,0 +DA:20,0 +DA:22,0 +LF:5 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap04/FormCheck.js +FN:3,FormCheck +FN:10,(anonymous_1) +FN:18,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,FormCheck +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:5,0 +DA:10,0 +DA:11,0 +DA:18,0 +DA:19,0 +DA:22,0 +LF:6 +LH:0 +BRDA:19,0,0,0 +BRDA:19,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src/chap04/FormCheckMulti.js +FN:3,FormCheckMulti +FN:10,(anonymous_1) +FN:26,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,FormCheckMulti +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:5,0 +DA:10,0 +DA:11,0 +DA:13,0 +DA:14,0 +DA:16,0 +DA:19,0 +DA:26,0 +DA:27,0 +DA:31,0 +LF:10 +LH:0 +BRDA:13,0,0,0 +BRDA:13,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src/chap04/FormFile.js +FN:3,FormFile +FN:8,show +FNF:2 +FNH:0 +FNDA:0,FormFile +FNDA:0,show +DA:5,0 +DA:9,0 +DA:11,0 +DA:12,0 +DA:13,0 +DA:14,0 +DA:18,0 +LF:7 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap04/FormList.js +FN:3,FormList +FN:10,(anonymous_1) +FN:28,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,FormList +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:5,0 +DA:10,0 +DA:12,0 +DA:14,0 +DA:15,0 +DA:16,0 +DA:17,0 +DA:21,0 +DA:28,0 +DA:29,0 +DA:32,0 +LF:11 +LH:0 +BRDA:16,0,0,0 +BRDA:16,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src/chap04/FormRadio.js +FN:3,FormRadio +FN:10,(anonymous_1) +FN:18,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,FormRadio +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:5,0 +DA:10,0 +DA:11,0 +DA:18,0 +DA:19,0 +DA:23,0 +LF:6 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap04/FormSelect.js +FN:3,FormSelect +FN:10,(anonymous_1) +FN:18,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,FormSelect +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:5,0 +DA:10,0 +DA:11,0 +DA:18,0 +DA:19,0 +DA:22,0 +LF:6 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap04/FormTextarea.js +FN:3,FormTextarea +FN:10,(anonymous_1) +FN:18,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,FormTextarea +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:5,0 +DA:10,0 +DA:11,0 +DA:18,0 +DA:19,0 +DA:22,0 +LF:6 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap04/FormYup.js +FN:311,(anonymous_0) +FN:313,(anonymous_1) +FN:314,(anonymous_2) +FN:355,FormYup +FN:368,(anonymous_4) +FN:369,(anonymous_5) +FNF:6 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,FormYup +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +DA:311,0 +DA:312,0 +DA:313,0 +DA:315,0 +DA:316,0 +DA:317,0 +DA:318,0 +DA:321,0 +DA:328,0 +DA:356,0 +DA:368,0 +DA:369,0 +DA:371,0 +LF:13 +LH:0 +BRDA:317,0,0,0 +BRDA:317,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src/chap04/FromKorean.js +FN:27,FormYup +FN:37,(anonymous_1) +FN:38,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,FormYup +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:5,0 +DA:28,0 +DA:37,0 +DA:38,0 +DA:40,0 +LF:5 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap04/StateForm.js +FN:3,StateForm +FN:11,(anonymous_1) +FN:19,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,StateForm +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:5,0 +DA:11,0 +DA:12,0 +DA:19,0 +DA:20,0 +DA:23,0 +LF:6 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap04/StateFormUC.js +FN:3,StateFormUC +FN:9,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,StateFormUC +FNDA:0,(anonymous_1) +DA:5,0 +DA:6,0 +DA:9,0 +DA:10,0 +DA:14,0 +LF:5 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap04/StateNest.js +FN:3,StateNest +FN:14,(anonymous_1) +FN:22,(anonymous_2) +FN:33,(anonymous_3) +FNF:4 +FNH:0 +FNDA:0,StateNest +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:5,0 +DA:14,0 +DA:15,0 +DA:22,0 +DA:23,0 +DA:33,0 +DA:34,0 +DA:37,0 +LF:8 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap04/StateNestImmer.js +FN:3,StateNestImmer +FN:14,(anonymous_1) +FN:15,(anonymous_2) +FN:21,(anonymous_3) +FN:22,(anonymous_4) +FN:27,(anonymous_5) +FNF:6 +FNH:0 +FNDA:0,StateNestImmer +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +DA:5,0 +DA:14,0 +DA:15,0 +DA:16,0 +DA:21,0 +DA:22,0 +DA:23,0 +DA:27,0 +DA:28,0 +DA:31,0 +LF:10 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap04/StateNestImmer2.js +FN:3,StateNestImmer2 +FN:12,(anonymous_1) +FN:15,(anonymous_2) +FN:25,(anonymous_3) +FNF:4 +FNH:0 +FNDA:0,StateNestImmer2 +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:4,0 +DA:12,0 +DA:14,0 +DA:15,0 +DA:17,0 +DA:18,0 +DA:20,0 +DA:25,0 +DA:26,0 +DA:29,0 +LF:10 +LH:0 +BRDA:17,0,0,0 +BRDA:17,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src/chap04/StateTodo.js +FN:6,StateTodo +FN:12,(anonymous_1) +FN:16,(anonymous_2) +FN:41,(anonymous_3) +FNF:4 +FNH:0 +FNDA:0,StateTodo +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:5,0 +DA:8,0 +DA:9,0 +DA:12,0 +DA:13,0 +DA:16,0 +DA:18,0 +DA:29,0 +DA:42,0 +LF:9 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap04/yup.kr.js +FN:6,(anonymous_0) +FN:7,(anonymous_1) +FN:10,(anonymous_2) +FN:11,(anonymous_3) +FN:12,(anonymous_4) +FN:13,(anonymous_5) +FN:14,(anonymous_6) +FN:15,(anonymous_7) +FN:18,(anonymous_8) +FN:19,(anonymous_9) +FN:20,(anonymous_10) +FN:21,(anonymous_11) +FN:22,(anonymous_12) +FN:23,(anonymous_13) +FN:24,(anonymous_14) +FN:27,(anonymous_15) +FN:28,(anonymous_16) +FNF:17 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +FNDA:0,(anonymous_8) +FNDA:0,(anonymous_9) +FNDA:0,(anonymous_10) +FNDA:0,(anonymous_11) +FNDA:0,(anonymous_12) +FNDA:0,(anonymous_13) +FNDA:0,(anonymous_14) +FNDA:0,(anonymous_15) +FNDA:0,(anonymous_16) +DA:4,0 +DA:6,0 +DA:7,0 +DA:10,0 +DA:11,0 +DA:12,0 +DA:13,0 +DA:14,0 +DA:15,0 +DA:18,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:23,0 +DA:24,0 +DA:27,0 +DA:28,0 +DA:33,0 +LF:19 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap05/EmotionComp.js +FN:14,EmotionComp +FNF:1 +FNH:0 +FNDA:0,EmotionComp +DA:5,0 +DA:15,0 +LF:2 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap05/EmotionJsx.js +FN:4,EmotionJsx +FNF:1 +FNH:0 +FNDA:0,EmotionJsx +DA:5,0 +DA:14,0 +LF:2 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap05/ErrorEvent.js +FN:1,ErrorEvent +FN:2,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,ErrorEvent +FNDA:0,(anonymous_1) +DA:2,0 +DA:3,0 +DA:5,0 +LF:3 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap05/ErrorEventRoot.js +FN:4,ErrorEventRoot +FN:5,(anonymous_1) +FN:6,(anonymous_2) +FN:17,(anonymous_3) +FNF:4 +FNH:0 +FNDA:0,ErrorEventRoot +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:5,0 +DA:6,0 +DA:7,0 +DA:17,0 +DA:18,0 +LF:5 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap05/ErrorFallback.js +FN:1,ErrorFallback +FN:2,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,ErrorFallback +FNDA:0,(anonymous_1) +DA:2,0 +DA:3,0 +LF:2 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap05/ErrorRetryRoot.js +FN:4,ErrorRetryRoot +FN:6,(anonymous_1) +FN:7,(anonymous_2) +FN:19,(anonymous_3) +FNF:4 +FNH:0 +FNDA:0,ErrorRetryRoot +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:6,0 +DA:7,0 +DA:8,0 +DA:19,0 +DA:21,0 +LF:5 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap05/ErrorRetryThrow.js +FN:1,ErrorRetryThrow +FNF:1 +FNH:0 +FNDA:0,ErrorRetryThrow +DA:3,0 +DA:4,0 +DA:6,0 +LF:3 +LH:0 +BRDA:3,0,0,0 +BRDA:3,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src/chap05/ErrorRoot.js +FN:4,ErrorRoot +FNF:1 +FNH:0 +FNDA:0,ErrorRoot +DA:5,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap05/ErrorThrow.js +FN:1,ErrorThrow +FNF:1 +FNH:0 +FNDA:0,ErrorThrow +DA:3,0 +DA:4,0 +LF:2 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap05/HeavyUI.js +FN:1,sleep +FN:7,HeavyUI +FNF:2 +FNH:0 +FNDA:0,sleep +FNDA:0,HeavyUI +DA:2,0 +DA:3,0 +DA:8,0 +DA:9,0 +LF:4 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap05/LazyBasic.js +FN:4,(anonymous_0) +FN:4,(anonymous_1) +FN:6,(anonymous_2) +FN:6,(anonymous_3) +FN:8,LazyBasic +FNF:5 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,LazyBasic +DA:4,0 +DA:6,0 +DA:10,0 +LF:3 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap05/LazyButton.js +FN:1,LazyButton +FNF:1 +FNH:0 +FNDA:0,LazyButton +DA:2,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap05/LazyButton2.js +FN:1,LazyButton2 +FNF:1 +FNH:0 +FNDA:0,LazyButton2 +DA:2,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap05/LazyMulti.js +FN:3,(anonymous_0) +FN:3,(anonymous_1) +FN:6,(anonymous_2) +FN:6,(anonymous_3) +FN:7,(anonymous_4) +FN:7,(anonymous_5) +FN:9,LazyMulti +FNF:7 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,LazyMulti +DA:3,0 +DA:6,0 +DA:7,0 +DA:10,0 +LF:4 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap05/MyLoading.js +FN:1,MyLoading +FNF:1 +FNH:0 +FNDA:0,MyLoading +DA:2,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap05/PortalBasic.js +FN:5,PortalBasic +FN:9,(anonymous_1) +FN:9,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,PortalBasic +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:7,0 +DA:9,0 +DA:11,0 +LF:3 +LH:0 +BRDA:17,0,0,0 +BRDA:17,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src/chap05/ProfilerBasic.js +FN:4,ProfilerBasic +FN:6,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,ProfilerBasic +FNDA:0,(anonymous_1) +DA:6,0 +DA:8,0 +DA:9,0 +DA:10,0 +DA:11,0 +DA:12,0 +DA:13,0 +DA:16,0 +LF:8 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap05/StyledCommon.css.js +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap05/StyledCommon.js +FN:14,StyledCommon +FNF:1 +FNH:0 +FNDA:0,StyledCommon +DA:4,0 +DA:15,0 +LF:2 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap05/StyledComp.js +FN:13,StyledComp +FNF:1 +FNH:0 +FNDA:0,StyledComp +DA:4,0 +DA:14,0 +LF:2 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap05/StyledComp2.js +FN:4,MyButton +FNF:1 +FNH:0 +FNDA:0,MyButton +DA:5,0 +DA:13,0 +LF:2 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap05/StyledGlobal.js +FNF:0 +FNH:0 +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap05/StyledProps.js +FN:8,(anonymous_0) +FN:9,(anonymous_1) +FN:12,StyledProps +FNF:3 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,StyledProps +DA:3,0 +DA:8,0 +DA:9,0 +DA:13,0 +LF:4 +LH:0 +BRDA:8,0,0,0 +BRDA:8,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src/chap05/SuspenseResult.js +FN:4,SuspenseResult +FNF:1 +FNH:0 +FNDA:0,SuspenseResult +DA:5,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap05/SuspenseSimple.js +FN:4,SuspenseSimple +FNF:1 +FNH:0 +FNDA:0,SuspenseSimple +DA:5,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap05/ThrowPromise.js +FN:1,ThrowPromise +FN:2,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,ThrowPromise +FNDA:0,(anonymous_1) +DA:2,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap05/ThrowResult.js +FN:6,ThrowResult +FN:12,getInfo +FN:13,(anonymous_2) +FN:15,(anonymous_3) +FNF:4 +FNH:0 +FNDA:0,ThrowResult +FNDA:0,getInfo +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:4,0 +DA:7,0 +DA:8,0 +DA:13,0 +DA:15,0 +DA:16,0 +DA:17,0 +DA:19,0 +LF:8 +LH:0 +BRDA:16,0,0,0 +BRDA:16,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src/chap05/wrapPromise.js +FN:1,wrapPromise +FN:9,(anonymous_1) +FN:14,(anonymous_2) +FN:21,(anonymous_3) +FNF:4 +FNH:0 +FNDA:0,wrapPromise +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:3,0 +DA:7,0 +DA:10,0 +DA:11,0 +DA:15,0 +DA:16,0 +DA:20,0 +DA:22,0 +DA:24,0 +DA:26,0 +DA:28,0 +DA:30,0 +LF:12 +LH:0 +BRDA:22,0,0,0 +BRDA:22,0,1,0 +BRDA:22,0,2,0 +BRDA:22,0,3,0 +BRF:4 +BRH:0 +end_of_record +TN: +SF:src/chap06/FormMui.js +FN:5,FormMui +FN:16,(anonymous_1) +FN:17,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,FormMui +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:6,0 +DA:13,0 +DA:16,0 +DA:17,0 +DA:19,0 +LF:5 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap06/MaterialBasic.js +FN:3,MaterialBasic +FNF:1 +FNH:0 +FNDA:0,MaterialBasic +DA:4,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap06/MaterialDrawer.js +FN:14,MaterialDrawer +FN:18,(anonymous_1) +FN:27,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,MaterialDrawer +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:7,0 +DA:16,0 +DA:18,0 +DA:20,0 +DA:28,0 +DA:29,0 +LF:6 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap06/MaterialGrid.js +FN:4,MaterialGrid +FNF:1 +FNH:0 +FNDA:0,MaterialGrid +DA:5,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap06/MaterialMode.js +FN:6,MaterialMode +FN:13,(anonymous_1) +FN:13,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,MaterialMode +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:11,0 +DA:13,0 +DA:14,0 +DA:17,0 +DA:40,0 +LF:5 +LH:0 +BRDA:14,0,0,0 +BRDA:14,0,1,0 +BRDA:21,1,0,0 +BRDA:21,1,1,0 +BRF:4 +BRH:0 +end_of_record +TN: +SF:src/chap06/MyButton.js +FN:91,MyButton +FNF:1 +FNH:0 +FNDA:0,MyButton +DA:100,0 +DA:102,0 +DA:120,0 +LF:3 +LH:0 +BRDA:92,0,0,0 +BRDA:93,1,0,0 +BRDA:94,2,0,0 +BRDA:95,3,0,0 +BRDA:100,4,0,0 +BRDA:100,4,1,0 +BRDA:107,5,0,0 +BRDA:107,5,1,0 +BRF:8 +BRH:0 +end_of_record +TN: +SF:src/chap06/MyButton.stories.js +FN:11,(anonymous_0) +FN:12,(anonymous_1) +FN:16,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:10,0 +DA:11,0 +DA:12,0 +DA:15,0 +DA:16,0 +LF:5 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap06/QueryBasic.js +FN:4,(anonymous_0) +FN:4,(anonymous_1) +FN:7,(anonymous_2) +FN:15,QuerBasic +FNF:4 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,QuerBasic +DA:4,0 +DA:7,0 +DA:9,0 +DA:10,0 +DA:11,0 +DA:12,0 +DA:17,0 +DA:19,0 +DA:20,0 +DA:23,0 +DA:24,0 +DA:27,0 +LF:12 +LH:0 +BRDA:11,0,0,0 +BRDA:11,0,1,0 +BRDA:19,1,0,0 +BRDA:19,1,1,0 +BRDA:23,2,0,0 +BRDA:23,2,1,0 +BRF:6 +BRH:0 +end_of_record +TN: +SF:src/chap06/QueryPre.js +FN:4,(anonymous_0) +FN:4,(anonymous_1) +FN:7,(anonymous_2) +FN:16,QueryPre +FN:23,(anonymous_4) +FN:27,(anonymous_5) +FN:29,(anonymous_6) +FN:31,(anonymous_7) +FNF:8 +FNH:5 +FNDA:1,(anonymous_0) +FNDA:1,(anonymous_1) +FNDA:1,(anonymous_2) +FNDA:1,QueryPre +FNDA:1,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +DA:4,1 +DA:7,1 +DA:9,1 +DA:10,1 +DA:11,0 +DA:13,0 +DA:18,1 +DA:19,1 +DA:20,1 +DA:23,1 +DA:24,1 +DA:25,1 +DA:27,0 +DA:29,0 +DA:31,0 +DA:35,1 +DA:36,1 +DA:40,0 +DA:41,0 +DA:45,0 +LF:20 +LH:12 +BRDA:11,0,0,0 +BRDA:11,0,1,0 +BRDA:35,1,0,1 +BRDA:35,1,1,0 +BRDA:40,2,0,0 +BRDA:40,2,1,0 +BRF:6 +BRH:1 +end_of_record +TN: +SF:src/chap06/QuerySuspense.js +FN:4,(anonymous_0) +FN:4,(anonymous_1) +FN:6,(anonymous_2) +FN:15,QuerySuspense +FNF:4 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,QuerySuspense +DA:4,0 +DA:6,0 +DA:8,0 +DA:10,0 +DA:11,0 +DA:12,0 +DA:16,0 +DA:19,0 +LF:8 +LH:0 +BRDA:11,0,0,0 +BRDA:11,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src/chap06/theme.js +FNF:0 +FNH:0 +DA:4,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap07/HookCallbackRef.js +FN:3,HookCallbackRef +FN:6,(anonymous_1) +FN:10,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,HookCallbackRef +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:4,0 +DA:6,0 +DA:8,0 +DA:10,0 +DA:11,0 +DA:12,0 +DA:16,0 +LF:7 +LH:0 +BRDA:11,0,0,0 +BRDA:11,0,1,0 +BRDA:28,1,0,0 +BRDA:28,1,1,0 +BRF:4 +BRH:0 +end_of_record +TN: +SF:src/chap07/HookContext.js +FN:12,HookContext +FNF:1 +FNH:0 +FNDA:0,HookContext +DA:5,0 +DA:7,0 +DA:14,0 +LF:3 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap07/HookContextChild.js +FN:4,HookContextChild +FN:12,HookContextChildGrand +FNF:2 +FNH:0 +FNDA:0,HookContextChild +FNDA:0,HookContextChildGrand +DA:5,0 +DA:13,0 +DA:14,0 +LF:3 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap07/HookCustom.js +FN:3,HookCustom +FNF:1 +FNH:0 +FNDA:0,HookCustom +DA:4,0 +DA:5,0 +LF:2 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap07/HookDeferred.js +FN:3,HookDefered +FN:8,(anonymous_1) +FN:16,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,HookDefered +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:4,0 +DA:6,0 +DA:8,0 +DA:9,0 +DA:10,0 +DA:13,0 +DA:16,0 +LF:7 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap07/HookDeferredTransition.js +FN:6,HookDeferredTransition +FN:12,(anonymous_1) +FN:15,(anonymous_2) +FN:22,(anonymous_3) +FNF:4 +FNH:0 +FNDA:0,HookDeferredTransition +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:7,0 +DA:8,0 +DA:9,0 +DA:10,0 +DA:12,0 +DA:13,0 +DA:14,0 +DA:15,0 +DA:18,0 +DA:23,0 +LF:10 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap07/HookEffect.js +FN:4,(anonymous_0) +FN:12,HookEffect +FN:16,(anonymous_2) +FN:22,(anonymous_3) +FN:23,(anonymous_4) +FNF:5 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,HookEffect +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +DA:4,0 +DA:5,0 +DA:7,0 +DA:8,0 +DA:13,0 +DA:16,0 +DA:18,0 +DA:19,0 +DA:22,0 +DA:23,0 +DA:26,0 +LF:11 +LH:0 +BRDA:8,0,0,0 +BRDA:8,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src/chap07/HookMemo.js +FN:5,(anonymous_0) +FN:10,HookMemo +FN:14,(anonymous_2) +FN:14,(anonymous_3) +FN:15,(anonymous_4) +FN:15,(anonymous_5) +FN:18,(anonymous_6) +FNF:7 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,HookMemo +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +DA:5,0 +DA:6,0 +DA:7,0 +DA:11,0 +DA:12,0 +DA:14,0 +DA:15,0 +DA:18,0 +DA:19,0 +DA:20,0 +DA:23,0 +LF:11 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap07/HookMemoChild.js +FN:3,(anonymous_0) +FN:13,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +DA:3,0 +DA:5,0 +DA:6,0 +DA:13,0 +DA:15,0 +DA:16,0 +LF:6 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap07/HookReducer.js +FN:3,HookReducer +FN:7,(anonymous_1) +FN:22,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,HookReducer +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:5,0 +DA:8,0 +DA:10,0 +DA:12,0 +DA:22,0 +DA:23,0 +DA:26,0 +LF:7 +LH:0 +BRDA:8,0,0,0 +BRDA:8,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src/chap07/HookReducerInit.js +FN:4,initCounter +FN:11,HookReducerInit +FN:13,(anonymous_2) +FN:24,(anonymous_3) +FNF:4 +FNH:0 +FNDA:0,initCounter +FNDA:0,HookReducerInit +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:5,0 +DA:6,0 +DA:12,0 +DA:14,0 +DA:16,0 +DA:18,0 +DA:24,0 +DA:25,0 +DA:27,0 +LF:9 +LH:0 +BRDA:14,0,0,0 +BRDA:14,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src/chap07/HookReducerUp.js +FN:3,HookReducerUp +FN:5,(anonymous_1) +FN:23,(anonymous_2) +FN:24,(anonymous_3) +FN:25,(anonymous_4) +FNF:5 +FNH:0 +FNDA:0,HookReducerUp +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +DA:4,0 +DA:6,0 +DA:9,0 +DA:12,0 +DA:15,0 +DA:23,0 +DA:24,0 +DA:25,0 +DA:27,0 +LF:9 +LH:0 +BRDA:6,0,0,0 +BRDA:6,0,1,0 +BRDA:6,0,2,0 +BRF:3 +BRH:0 +end_of_record +TN: +SF:src/chap07/HookRef.js +FN:3,HookRef +FN:7,(anonymous_1) +FN:9,(anonymous_2) +FN:9,(anonymous_3) +FN:12,(anonymous_4) +FNF:5 +FNH:0 +FNDA:0,HookRef +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +DA:4,0 +DA:5,0 +DA:7,0 +DA:8,0 +DA:9,0 +DA:12,0 +DA:13,0 +DA:14,0 +DA:16,0 +LF:9 +LH:0 +BRDA:8,0,0,0 +BRDA:8,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src/chap07/HookRefForward.js +FN:4,HookRefForward +FN:7,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,HookRefForward +FNDA:0,(anonymous_1) +DA:5,0 +DA:7,0 +DA:8,0 +DA:11,0 +LF:4 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap07/HookRefNg.js +FN:3,HookRefNg +FN:9,(anonymous_1) +FN:12,(anonymous_2) +FN:12,(anonymous_3) +FN:16,(anonymous_4) +FNF:5 +FNH:0 +FNDA:0,HookRefNg +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +DA:5,0 +DA:6,0 +DA:9,0 +DA:11,0 +DA:12,0 +DA:16,0 +DA:17,0 +DA:18,0 +DA:21,0 +LF:9 +LH:0 +BRDA:11,0,0,0 +BRDA:11,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src/chap07/HookThemeButton.js +FN:5,HookThemeButton +FNF:1 +FNH:0 +FNDA:0,HookThemeButton +DA:6,0 +DA:7,0 +LF:2 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap07/HookTimer.js +FN:4,HookTimer +FN:7,(anonymous_1) +FN:9,(anonymous_2) +FN:10,(anonymous_3) +FN:13,(anonymous_4) +FNF:5 +FNH:5 +FNDA:2,HookTimer +FNDA:1,(anonymous_1) +FNDA:1,(anonymous_2) +FNDA:1,(anonymous_3) +FNDA:1,(anonymous_4) +DA:5,2 +DA:7,2 +DA:9,1 +DA:10,1 +DA:13,1 +DA:14,1 +DA:18,2 +LF:7 +LH:7 +BRDA:20,0,0,0 +BRDA:20,0,1,2 +BRF:2 +BRH:1 +end_of_record +TN: +SF:src/chap07/HookTransition.js +FN:84,HookTransition +FN:91,(anonymous_1) +FN:95,(anonymous_2) +FN:96,(anonymous_3) +FN:104,(anonymous_4) +FNF:5 +FNH:0 +FNDA:0,HookTransition +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +DA:85,0 +DA:86,0 +DA:88,0 +DA:91,0 +DA:92,0 +DA:93,0 +DA:95,0 +DA:96,0 +DA:100,0 +DA:105,0 +LF:10 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap07/HookTransitionChild.js +FN:6,(anonymous_0) +FN:11,BookDetails +FN:12,(anonymous_2) +FN:24,(anonymous_3) +FN:30,(anonymous_4) +FN:36,CommentItem +FNF:6 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,BookDetails +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,CommentItem +DA:6,0 +DA:7,0 +DA:8,0 +DA:12,0 +DA:13,0 +DA:24,0 +DA:26,0 +DA:28,0 +DA:30,0 +DA:37,0 +DA:38,0 +LF:11 +LH:0 +BRDA:19,0,0,0 +BRDA:19,0,1,0 +BRDA:26,1,0,0 +BRDA:26,1,1,0 +BRF:4 +BRH:0 +end_of_record +TN: +SF:src/chap07/MyTextBox.js +FN:1,MyTextBox +FNF:1 +FNH:0 +FNDA:0,MyTextBox +DA:2,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap07/MyThemeProvider.js +FN:7,MyThemeProvider +FN:12,(anonymous_1) +FN:13,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,MyThemeProvider +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:8,0 +DA:10,0 +DA:13,0 +DA:14,0 +DA:18,0 +DA:39,0 +LF:6 +LH:0 +BRDA:14,0,0,0 +BRDA:14,0,1,0 +BRDA:22,1,0,0 +BRDA:22,1,1,0 +BRF:4 +BRH:0 +end_of_record +TN: +SF:src/chap07/RecoilCounter.js +FN:48,RecoilCounter +FN:52,(anonymous_1) +FN:53,(anonymous_2) +FN:59,(anonymous_3) +FNF:4 +FNH:0 +FNDA:0,RecoilCounter +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:49,0 +DA:50,0 +DA:52,0 +DA:53,0 +DA:56,0 +DA:59,0 +LF:6 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap07/RecoilTodo.js +FN:6,RecoilTodo +FN:12,(anonymous_1) +FN:14,(anonymous_2) +FN:25,(anonymous_3) +FN:26,(anonymous_4) +FN:38,(anonymous_5) +FN:39,(anonymous_6) +FN:56,(anonymous_7) +FNF:8 +FNH:0 +FNDA:0,RecoilTodo +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +FNDA:0,(anonymous_7) +DA:7,0 +DA:9,0 +DA:10,0 +DA:12,0 +DA:14,0 +DA:15,0 +DA:25,0 +DA:26,0 +DA:27,0 +DA:28,0 +DA:33,0 +DA:38,0 +DA:39,0 +DA:40,0 +DA:44,0 +DA:57,0 +LF:16 +LH:0 +BRDA:27,0,0,0 +BRDA:27,0,1,0 +BRDA:58,1,0,0 +BRDA:58,1,1,0 +BRF:4 +BRH:0 +end_of_record +TN: +SF:src/chap07/RecoilTodoUp.js +FN:6,RecoilTodoUp +FN:13,(anonymous_1) +FN:16,(anonymous_2) +FN:30,(anonymous_3) +FN:38,(anonymous_4) +FN:56,(anonymous_5) +FNF:6 +FNH:0 +FNDA:0,RecoilTodoUp +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +DA:7,0 +DA:9,0 +DA:10,0 +DA:13,0 +DA:16,0 +DA:18,0 +DA:19,0 +DA:30,0 +DA:31,0 +DA:38,0 +DA:39,0 +DA:45,0 +DA:57,0 +LF:13 +LH:0 +BRDA:18,0,0,0 +BRDA:18,0,1,0 +BRDA:58,1,0,0 +BRDA:58,1,1,0 +BRF:4 +BRH:0 +end_of_record +TN: +SF:src/chap07/StateEffect.js +FN:3,StateEffect +FN:8,(anonymous_1) +FN:11,(anonymous_2) +FN:16,(anonymous_3) +FNF:4 +FNH:0 +FNDA:0,StateEffect +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:4,0 +DA:5,0 +DA:8,0 +DA:9,0 +DA:11,0 +DA:13,0 +DA:16,0 +LF:7 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap07/ThemeContext.js +FN:5,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +LF:0 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap07/UseCounter.js +FN:3,useCounter +FN:6,(anonymous_1) +FN:21,(anonymous_2) +FN:22,(anonymous_3) +FN:23,(anonymous_4) +FNF:5 +FNH:0 +FNDA:0,useCounter +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +DA:5,0 +DA:7,0 +DA:9,0 +DA:11,0 +DA:13,0 +DA:21,0 +DA:22,0 +DA:23,0 +DA:24,0 +LF:9 +LH:0 +BRDA:7,0,0,0 +BRDA:7,0,1,0 +BRDA:7,0,2,0 +BRF:3 +BRH:0 +end_of_record +TN: +SF:src/chap07/books.js +FNF:0 +FNH:0 +DA:1,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap07/comments.js +FNF:0 +FNH:0 +DA:1,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap08/AboutPage.js +FN:14,AboutPage +FN:18,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,AboutPage +FNDA:0,(anonymous_1) +DA:16,0 +DA:18,0 +DA:20,0 +LF:3 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap08/ArticlePage.js +FN:1,ArticlePage +FNF:1 +FNH:0 +FNDA:0,ArticlePage +DA:2,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap08/BookFormPage.js +FN:30,BookFormPage +FN:36,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,BookFormPage +FNDA:0,(anonymous_1) +DA:31,0 +DA:33,0 +DA:36,0 +LF:3 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap08/BookNest.js +FN:5,BookListPage +FN:9,(anonymous_1) +FN:21,BookDetailsPage +FN:24,(anonymous_3) +FNF:4 +FNH:0 +FNDA:0,BookListPage +FNDA:0,(anonymous_1) +FNDA:0,BookDetailsPage +FNDA:0,(anonymous_3) +DA:6,0 +DA:10,0 +DA:22,0 +DA:24,0 +DA:26,0 +LF:5 +LH:0 +BRDA:22,0,0,0 +BRF:1 +BRH:0 +end_of_record +TN: +SF:src/chap08/BookPage.js +FN:46,BookPage +FNF:1 +FNH:0 +FNDA:0,BookPage +DA:47,0 +DA:49,0 +DA:50,0 +DA:53,0 +LF:4 +LH:0 +BRDA:47,0,0,0 +BRDA:49,1,0,0 +BRDA:49,1,1,0 +BRF:3 +BRH:0 +end_of_record +TN: +SF:src/chap08/BookQueryPage.js +FN:3,BookQueryPage +FNF:1 +FNH:0 +FNDA:0,BookQueryPage +DA:5,0 +DA:8,0 +LF:2 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap08/BookStatePage.js +FN:3,BookStatePage +FNF:1 +FNH:0 +FNDA:0,BookStatePage +DA:5,0 +DA:7,0 +LF:2 +LH:0 +BRDA:5,0,0,0 +BRF:1 +BRH:0 +end_of_record +TN: +SF:src/chap08/CommonErrorPage.js +FN:3,CommonErrorPage +FNF:1 +FNH:0 +FNDA:0,CommonErrorPage +DA:5,0 +DA:7,0 +DA:9,0 +DA:11,0 +DA:13,0 +DA:15,0 +DA:17,0 +DA:21,0 +LF:8 +LH:0 +BRDA:7,0,0,0 +BRDA:7,0,1,0 +BRDA:9,1,0,0 +BRDA:9,1,1,0 +BRDA:9,1,2,0 +BRDA:9,1,3,0 +BRF:6 +BRH:0 +end_of_record +TN: +SF:src/chap08/FirstPage.js +FN:18,FirstPage +FNF:1 +FNH:0 +FNDA:0,FirstPage +DA:19,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap08/InfoPage.js +FN:3,InfoPage +FNF:1 +FNH:0 +FNDA:0,InfoPage +DA:4,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap08/InvalidParamsPage.js +FN:3,InvalidParamsPage +FNF:1 +FNH:0 +FNDA:0,InvalidParamsPage +DA:5,0 +DA:6,0 +LF:2 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap08/MyHeader.js +FN:4,MyHeader +FNF:1 +FNH:0 +FNDA:0,MyHeader +DA:9,0 +DA:11,0 +DA:12,0 +DA:13,0 +DA:14,0 +LF:5 +LH:0 +BRDA:6,0,0,0 +BRDA:7,1,0,0 +BRDA:8,2,0,0 +BRDA:9,3,0,0 +BRDA:9,3,1,0 +BRF:5 +BRH:0 +end_of_record +TN: +SF:src/chap08/MyLink.js +FN:4,MyLink +FNF:1 +FNH:0 +FNDA:0,MyLink +DA:6,0 +DA:7,0 +DA:10,0 +LF:3 +LH:0 +BRDA:10,0,0,0 +BRDA:10,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src/chap08/NotFoundPage.js +FN:3,NotFoundPage +FNF:1 +FNH:0 +FNDA:0,NotFoundPage +DA:4,0 +DA:5,0 +LF:2 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap08/RouterApp.js +FN:3,RouterApp +FNF:1 +FNH:0 +FNDA:0,RouterApp +DA:4,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap08/RouterCustom.js +FN:4,RouterCustom +FNF:1 +FNH:0 +FNDA:0,RouterCustom +DA:5,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap08/RouterNav.js +FN:4,RouterNav +FNF:1 +FNH:0 +FNDA:0,RouterNav +DA:5,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap08/RouterParam.js +FN:380,RouterParam +FNF:1 +FNH:0 +FNDA:0,RouterParam +DA:382,0 +DA:385,0 +DA:387,0 +LF:3 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap08/RouterScroll.js +FN:29,RouterScroll +FN:32,(anonymous_1) +FNF:2 +FNH:0 +FNDA:0,RouterScroll +FNDA:0,(anonymous_1) +DA:30,0 +DA:32,0 +LF:2 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap08/SearchPage.js +FN:3,SearchPage +FNF:1 +FNH:0 +FNDA:0,SearchPage +DA:4,0 +DA:5,0 +LF:2 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap08/SecondPage.js +FN:3,SecondPage +FNF:1 +FNH:0 +FNDA:0,SecondPage +DA:4,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap08/TopPage.js +FN:50,TopPage +FNF:1 +FNH:0 +FNDA:0,TopPage +DA:51,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap08/WeatherLazyPage.js +FN:4,(anonymous_0) +FN:4,(anonymous_1) +FN:7,loader +FN:22,Component +FN:35,ErrorBoundary +FNF:5 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,loader +FNDA:0,Component +FNDA:0,ErrorBoundary +DA:4,0 +DA:8,0 +DA:9,0 +DA:10,0 +DA:11,0 +DA:13,0 +DA:15,0 +DA:17,0 +DA:23,0 +DA:24,0 +DA:32,0 +DA:36,0 +DA:37,0 +DA:38,0 +DA:40,0 +DA:42,0 +DA:44,0 +DA:46,0 +DA:49,0 +DA:56,0 +LF:20 +LH:0 +BRDA:10,0,0,0 +BRDA:10,0,1,0 +BRDA:11,1,0,0 +BRDA:11,1,1,0 +BRDA:11,1,2,0 +BRDA:37,2,0,0 +BRDA:37,2,1,0 +BRDA:38,3,0,0 +BRDA:38,3,1,0 +BRDA:38,3,2,0 +BRDA:38,3,3,0 +BRF:11 +BRH:0 +end_of_record +TN: +SF:src/chap08/WeatherPage.js +FN:3,WeatherPage +FNF:1 +FNH:0 +FNDA:0,WeatherPage +DA:5,0 +DA:6,0 +LF:2 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap08/books.js +FNF:0 +FNH:0 +DA:1,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap08/routesBasic.js +FNF:0 +FNH:0 +DA:9,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap08/routesHandle.js +FNF:0 +FNH:0 +DA:7,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap08/routesLink.js +FNF:0 +FNH:0 +DA:7,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap08/routesMyLink.js +FNF:0 +FNH:0 +DA:7,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap08/routesParam.js +FN:680,(anonymous_0) +FN:711,(anonymous_1) +FN:715,(anonymous_2) +FN:725,(anonymous_3) +FNF:4 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:680,0 +DA:681,0 +DA:683,0 +DA:690,0 +DA:691,0 +DA:698,0 +DA:699,0 +DA:701,0 +DA:705,0 +DA:712,0 +DA:713,0 +DA:716,0 +DA:717,0 +DA:725,0 +LF:14 +LH:0 +BRDA:693,0,0,0 +BRDA:693,0,1,0 +BRDA:694,1,0,0 +BRDA:694,1,1,0 +BRF:4 +BRH:0 +end_of_record +TN: +SF:src/chap08/routesScroll.js +FNF:0 +FNH:0 +DA:6,0 +LF:1 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/chap09/MyUtil.js +FN:1,getTriangleArea +FNF:1 +FNH:1 +FNDA:1,getTriangleArea +DA:2,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/column/MyStore.js +FN:3,MyStore +FN:5,(anonymous_1) +FN:7,(anonymous_2) +FN:9,(anonymous_3) +FNF:4 +FNH:0 +FNDA:0,MyStore +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:4,0 +DA:6,0 +DA:7,0 +DA:9,0 +DA:11,0 +LF:5 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/store/atom.js +FN:42,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:3,0 +DA:9,0 +DA:40,0 +DA:44,0 +DA:45,0 +LF:5 +LH:0 +BRDA:45,0,0,0 +BRDA:45,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src/store/atomUp.js +FN:19,(anonymous_0) +FN:21,(anonymous_1) +FN:24,(anonymous_2) +FN:29,(anonymous_3) +FN:33,(anonymous_4) +FN:39,(anonymous_5) +FN:39,(anonymous_6) +FNF:7 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +FNDA:0,(anonymous_4) +FNDA:0,(anonymous_5) +FNDA:0,(anonymous_6) +DA:4,0 +DA:10,0 +DA:16,0 +DA:20,0 +DA:21,0 +DA:25,0 +DA:28,0 +DA:29,0 +DA:30,0 +DA:33,0 +DA:34,0 +DA:38,0 +DA:39,0 +DA:40,0 +DA:42,0 +LF:15 +LH:0 +BRDA:25,0,0,0 +BRDA:25,0,1,0 +BRDA:25,0,2,0 +BRDA:25,0,3,0 +BRF:4 +BRH:0 +end_of_record +TN: +SF:src/stories/Button.jsx +FN:8,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:8,0 +DA:9,0 +DA:10,0 +DA:22,0 +DA:45,0 +LF:5 +LH:0 +BRDA:9,0,0,0 +BRDA:9,0,1,0 +BRDA:14,1,0,0 +BRDA:14,1,1,0 +BRF:4 +BRH:0 +end_of_record +TN: +SF:src/stories/Button.stories.js +FNF:0 +FNH:0 +DA:23,0 +DA:30,0 +DA:36,0 +DA:43,0 +LF:4 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/stories/Header.jsx +FN:7,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:7,0 +DA:8,0 +DA:48,0 +DA:57,0 +LF:4 +LH:0 +BRDA:30,0,0,0 +BRDA:30,0,1,0 +BRF:2 +BRH:0 +end_of_record +TN: +SF:src/stories/Header.stories.js +FNF:0 +FNH:0 +DA:20,0 +DA:28,0 +LF:2 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/stories/Page.jsx +FN:6,(anonymous_0) +FN:13,(anonymous_1) +FN:14,(anonymous_2) +FN:15,(anonymous_3) +FNF:4 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +FNDA:0,(anonymous_3) +DA:6,0 +DA:7,0 +DA:9,0 +DA:13,0 +DA:14,0 +DA:15,0 +LF:6 +LH:0 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/stories/Page.stories.js +FN:18,(anonymous_0) +FNF:1 +FNH:0 +FNDA:0,(anonymous_0) +DA:14,0 +DA:17,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:22,0 +DA:23,0 +DA:25,0 +DA:26,0 +LF:9 +LH:0 +BRF:0 +BRH:0 +end_of_record diff --git a/modern-react/my-react/cypress.config.js b/modern-react/my-react/cypress.config.js new file mode 100644 index 0000000..ab30c91 --- /dev/null +++ b/modern-react/my-react/cypress.config.js @@ -0,0 +1,11 @@ +const { defineConfig } = require("cypress"); + +module.exports = defineConfig({ + e2e: { + // 기본 경로 정의 + baseUrl: 'http://localhost:3000', + setupNodeEvents(on, config) { + // implement node event listeners here + }, + }, +}); diff --git a/modern-react/my-react/cypress/e2e/myReact.cy.js b/modern-react/my-react/cypress/e2e/myReact.cy.js new file mode 100644 index 0000000..5ca0ac9 --- /dev/null +++ b/modern-react/my-react/cypress/e2e/myReact.cy.js @@ -0,0 +1,23 @@ +describe('Cypress Sample', () => { + it('MyReact App Test', () => { + // 홈페이지 바로가기 + cy.visit('/'); + + // 도서 등록 양식으로 이동하여 아무것도 입력하지 않고 [등록하기] 버튼을 클릭한다. + cy.get('a[href="/book/form"]').click(); + cy.get('[type="submit"]').click(); + cy.get('ul').should('have.length', 2); + + // 도서명, 가격(잘못된 값)을 입력한 상태에서 [등록하기] 버튼을 클릭한다. + cy.get('#title').type('모험의 서'); + cy.get('#price').type('-18000'); + cy.get('[type="submit"]').click(); + cy.get('form li:eq(0)').should('contain', '양수'); + + // 모든 항목에 올바른 값을 입력한 후 [등록하기] 버튼을 클릭한다. + cy.get('#price').clear().type('18000'); + cy.get('#published').type('2024-02-29'); + cy.get('[type="submit"]').click(); + cy.url().should('equal', 'http://localhost:3000/'); + }); +}); \ No newline at end of file diff --git a/modern-react/my-react/cypress/e2e/myapp.cy.js b/modern-react/my-react/cypress/e2e/myapp.cy.js new file mode 100644 index 0000000..f8afa82 --- /dev/null +++ b/modern-react/my-react/cypress/e2e/myapp.cy.js @@ -0,0 +1,5 @@ +describe('template spec', () => { + it('passes', () => { + cy.visit('https://example.cypress.io') + }) +}) diff --git a/modern-react/my-react/cypress/fixtures/example.json b/modern-react/my-react/cypress/fixtures/example.json new file mode 100644 index 0000000..02e4254 --- /dev/null +++ b/modern-react/my-react/cypress/fixtures/example.json @@ -0,0 +1,5 @@ +{ + "name": "Using fixtures to represent data", + "email": "hello@cypress.io", + "body": "Fixtures are a great way to mock data for responses to routes" +} diff --git a/modern-react/my-react/cypress/fixtures/profile.json b/modern-react/my-react/cypress/fixtures/profile.json new file mode 100644 index 0000000..b6c355c --- /dev/null +++ b/modern-react/my-react/cypress/fixtures/profile.json @@ -0,0 +1,5 @@ +{ + "id": 8739, + "name": "Jane", + "email": "jane@example.com" +} \ No newline at end of file diff --git a/modern-react/my-react/cypress/fixtures/users.json b/modern-react/my-react/cypress/fixtures/users.json new file mode 100644 index 0000000..79b699a --- /dev/null +++ b/modern-react/my-react/cypress/fixtures/users.json @@ -0,0 +1,232 @@ +[ + { + "id": 1, + "name": "Leanne Graham", + "username": "Bret", + "email": "Sincere@april.biz", + "address": { + "street": "Kulas Light", + "suite": "Apt. 556", + "city": "Gwenborough", + "zipcode": "92998-3874", + "geo": { + "lat": "-37.3159", + "lng": "81.1496" + } + }, + "phone": "1-770-736-8031 x56442", + "website": "hildegard.org", + "company": { + "name": "Romaguera-Crona", + "catchPhrase": "Multi-layered client-server neural-net", + "bs": "harness real-time e-markets" + } + }, + { + "id": 2, + "name": "Ervin Howell", + "username": "Antonette", + "email": "Shanna@melissa.tv", + "address": { + "street": "Victor Plains", + "suite": "Suite 879", + "city": "Wisokyburgh", + "zipcode": "90566-7771", + "geo": { + "lat": "-43.9509", + "lng": "-34.4618" + } + }, + "phone": "010-692-6593 x09125", + "website": "anastasia.net", + "company": { + "name": "Deckow-Crist", + "catchPhrase": "Proactive didactic contingency", + "bs": "synergize scalable supply-chains" + } + }, + { + "id": 3, + "name": "Clementine Bauch", + "username": "Samantha", + "email": "Nathan@yesenia.net", + "address": { + "street": "Douglas Extension", + "suite": "Suite 847", + "city": "McKenziehaven", + "zipcode": "59590-4157", + "geo": { + "lat": "-68.6102", + "lng": "-47.0653" + } + }, + "phone": "1-463-123-4447", + "website": "ramiro.info", + "company": { + "name": "Romaguera-Jacobson", + "catchPhrase": "Face to face bifurcated interface", + "bs": "e-enable strategic applications" + } + }, + { + "id": 4, + "name": "Patricia Lebsack", + "username": "Karianne", + "email": "Julianne.OConner@kory.org", + "address": { + "street": "Hoeger Mall", + "suite": "Apt. 692", + "city": "South Elvis", + "zipcode": "53919-4257", + "geo": { + "lat": "29.4572", + "lng": "-164.2990" + } + }, + "phone": "493-170-9623 x156", + "website": "kale.biz", + "company": { + "name": "Robel-Corkery", + "catchPhrase": "Multi-tiered zero tolerance productivity", + "bs": "transition cutting-edge web services" + } + }, + { + "id": 5, + "name": "Chelsey Dietrich", + "username": "Kamren", + "email": "Lucio_Hettinger@annie.ca", + "address": { + "street": "Skiles Walks", + "suite": "Suite 351", + "city": "Roscoeview", + "zipcode": "33263", + "geo": { + "lat": "-31.8129", + "lng": "62.5342" + } + }, + "phone": "(254)954-1289", + "website": "demarco.info", + "company": { + "name": "Keebler LLC", + "catchPhrase": "User-centric fault-tolerant solution", + "bs": "revolutionize end-to-end systems" + } + }, + { + "id": 6, + "name": "Mrs. Dennis Schulist", + "username": "Leopoldo_Corkery", + "email": "Karley_Dach@jasper.info", + "address": { + "street": "Norberto Crossing", + "suite": "Apt. 950", + "city": "South Christy", + "zipcode": "23505-1337", + "geo": { + "lat": "-71.4197", + "lng": "71.7478" + } + }, + "phone": "1-477-935-8478 x6430", + "website": "ola.org", + "company": { + "name": "Considine-Lockman", + "catchPhrase": "Synchronised bottom-line interface", + "bs": "e-enable innovative applications" + } + }, + { + "id": 7, + "name": "Kurtis Weissnat", + "username": "Elwyn.Skiles", + "email": "Telly.Hoeger@billy.biz", + "address": { + "street": "Rex Trail", + "suite": "Suite 280", + "city": "Howemouth", + "zipcode": "58804-1099", + "geo": { + "lat": "24.8918", + "lng": "21.8984" + } + }, + "phone": "210.067.6132", + "website": "elvis.io", + "company": { + "name": "Johns Group", + "catchPhrase": "Configurable multimedia task-force", + "bs": "generate enterprise e-tailers" + } + }, + { + "id": 8, + "name": "Nicholas Runolfsdottir V", + "username": "Maxime_Nienow", + "email": "Sherwood@rosamond.me", + "address": { + "street": "Ellsworth Summit", + "suite": "Suite 729", + "city": "Aliyaview", + "zipcode": "45169", + "geo": { + "lat": "-14.3990", + "lng": "-120.7677" + } + }, + "phone": "586.493.6943 x140", + "website": "jacynthe.com", + "company": { + "name": "Abernathy Group", + "catchPhrase": "Implemented secondary concept", + "bs": "e-enable extensible e-tailers" + } + }, + { + "id": 9, + "name": "Glenna Reichert", + "username": "Delphine", + "email": "Chaim_McDermott@dana.io", + "address": { + "street": "Dayna Park", + "suite": "Suite 449", + "city": "Bartholomebury", + "zipcode": "76495-3109", + "geo": { + "lat": "24.6463", + "lng": "-168.8889" + } + }, + "phone": "(775)976-6794 x41206", + "website": "conrad.com", + "company": { + "name": "Yost and Sons", + "catchPhrase": "Switchable contextually-based project", + "bs": "aggregate real-time technologies" + } + }, + { + "id": 10, + "name": "Clementina DuBuque", + "username": "Moriah.Stanton", + "email": "Rey.Padberg@karina.biz", + "address": { + "street": "Kattie Turnpike", + "suite": "Suite 198", + "city": "Lebsackbury", + "zipcode": "31428-2261", + "geo": { + "lat": "-38.2386", + "lng": "57.2232" + } + }, + "phone": "024-648-3804", + "website": "ambrose.net", + "company": { + "name": "Hoeger LLC", + "catchPhrase": "Centralized empowering task-force", + "bs": "target end-to-end models" + } + } +] \ No newline at end of file diff --git a/modern-react/my-react/cypress/screenshots/2-advanced-examples/misc.cy.js/my-image (1).png b/modern-react/my-react/cypress/screenshots/2-advanced-examples/misc.cy.js/my-image (1).png new file mode 100644 index 0000000000000000000000000000000000000000..77c5d1a8015aea81428985defa1bb39bc164834f GIT binary patch literal 248090 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≪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≪N30uQ|pJrnfzJFN#u0f6h`_fO2#9kfSk)Tk|xvu8R5tiUtGsnW`*|$#{*=YfaqQh9#O0c)9&6$^7hUe!?rrhrIN7Mj7W~*soMuLV9p~S!mDTP9I zGbpI=8>9PZo*gS0>{r{<5ki^z{%IUXIbaF)Zf^?QSdh7yC-6i>(j2%yW8Lp+ETU_m@E z&jBaME@J}YlF;n7Coi|>>x8e~rkCrrMFNLt@^P9`1!fwBpe*95vD!avogEsgF^R=S*R4 z08Qrc5$Dx6eLh>xiHQSkzCTLTayRT}BUKl=6b{Cwl&~4Xf3Y1V+>>u9wVuANRx@j4 zxp3~99D~uk1+~~Wwi5e~NiaV_8*C7=%QSzC2LoBm?li-w#LCn$Tm9~MzW$qK|N4jy z8rlO`59Ck{I^071^%Ec*^wfipYT{~i=gAdg$`EBl1Kh^WY;+Ms*Ez>SCQLbL)1~=B zzX%kNvPTCoJbB_K1|D!>(oh=ey0<1U12z~}@*d~@HD4Im*v_Bvx=gYvk*QZ!D<`k{ zJicauzIQGtDPdu(&clLEydw}`9R>n-K$5^VW{RKkiq!!U!v;y``spuXo*gjW$}Dsa zIB5~-?X7woYVu!K9YYc~u4n1tMJPrJl2!N2IM*@;pPR0r5!4DBy6-KGOn_rxvZPs& z-5k*|1dn{{mxu$RRU-*s10wv_l~MO!6|RVuaxhKjM@FB?!arp#B4UzFk0gA)@ZR^` zUY(R;To6$cNSRzYkwmxSEXFSchT;JZsyR86FEsSX0G2bZ(5%U|4Z3%H;U7}cgu@w= zS2F`;eWYo|UVX9NydK$L!K5vaLf>Fqx;cfu6sh3It1d!<8O~QS#Fb|YhoVHY%GFu+ z6JifIS~NQ! zi{}F->VwT3!*S&?7hmP=hHa%w5mK6?9Tuds4;falUx1Nk1U&c?y342TD^9R5xMCgA zLqeHlEf%m{F>Rd5QXz;2qwwOQTgwp5@-6JTsUL*rUTL8=`bAB^!)3maxrC+=Yo7ix z)YEa}Ha4xfS8zy1pFv2Y%=cbJzw{`ydC**x>Oz}>>&(1R5!?`FTz_wh47BGHl=iGrzox ziXauEYu*}5s>t^g1g$z+W=8`($cA6t5F3FHBz7fp!GZb-d559eHG$$Fhn?iU3fHa$ zL-kHlsX!nbd&Pb}@L^Z3P+U2U;l?eZz=ru+d+XkQ&{E6iq)%w6{=lC^A7m4i8?W9D z=SmKmQcr<7-h4deB*xYHxwPg$s^7${{*z4QpeSjj*0BI83{dP>VC4Br*d^Kk zENnQw5?g-G#V1O&!=GoGx5j^X=6{sLtL<#8JP_2;E=&BBks{$fi3jbJCi{5)DD46p zUut|77F2bIJoYUo=XhXFlep6L?WtYSuU{^j&OH)l>!qW}hB=IiBX8f5$JdsJYh1TB zbMaTTD?&r4`vV{RZn@=J2jb34NU*UMQv<>MSCW!9Rc2cxML><7?rhUfSC3c9|tRFA6v=B<`Vk*uLM#; zGjP2BZ!(kg)U?yUhi?dEwEl&*jF{86(yB! ztJq4c;jPTI{pthC_?V{$|G+(OSnOA8!=-Wh$j~iYrR?eQPn70&NZ0*Wxe(sSJV6uY ze5bf6CLo9|?fO9|sZ#m+bp zGkC6=n5C8$)fBW`D0OBwfpsR!{Xk8}^<}9{-^)-CYiQ}`kvB#-?b;p!s!*J^n zjGxSx9u|Yu^(Uyh1*QdKcKHD#1OS_%g;cq5Jx3V^QV#d<)}7LnSfwtq5?xJQ`Sl&N zHe$dFc2@M^ArCu+VCwCnF&N;%1D6JUK6_9&6HXrA06o39ZeueSw{}h?$VdxE-)_B_5;M|k-^s7e$%LZ{F?@SnL9Ws2^Y?_evIGO zcKc*aCT#5*9oFOqFbK01FN+fiWFVvVZC3sc6&3=@t$(k5zF_fNo>;(wB48g|9?Sh! z&84nyMkV$RVlChnT#8Sbq;g(%zR7$$`G2tY=HXnnZQJO5H>yNQGS5RI8A_%ogvt<- zA!L?9rc8-DV`Nr_Ol3@Eu8bvQN=PbmW|D+dDCOJF>UqBPuJ3)nwYF`2>yNdz@7>;e zd*tW3u5&ofQdJgA_ zJ}d|x5$U(cI#>rnj5A`xdwdW2~pqA1_MI&Z$Iy33tNa3bph|Y z(zWdISY&}&)ZTN2gZO2TmR5C7KP^kK>R;Ff{!Q&bDYUdj_?;Qxuz- z!G%TKE8l=xkt0d#R#g)&a3!a+_-AM$|BK3ZHG`mBqD~aA<=^d6lo@c@LVn1iyJZ)= zN6}=>K`q*V?yii=X8=P_~S%G~VNy}a~JeT^^TWk{OC$);5q)Ji>)TaD;dcLCbem;7?E7Emc#Ui)y zWPdBk_zNYMCiy#IdWOcAc1=l(6GZvz-bjm;%(S2Hy&jrov#X9ut{e5Wj9XpYKIc}B zS23c@1Mi-z77^)qVS4iBY;Xo8%iShblv1jjyw!i%)60rv&=098PMc9wg2fa)Hec=9ae?A;=DynIszmfIHaKY+l*E|QG zKvD?u22EP~-en1t41QMp`dDlHnPs!edNCGk&e3=Ld6y;zBpCkFZRHzj{7fI+eAZkX zW_u$GVJs&16~jTs5VcPwt_rmV83#rl!AvAGvXY$MTzftdBf-d^pruA9o2TnpGJkZ& z)yY=f+w<8zn0lOU>a%a*o4uH&{rb7T?4^rgh^q^?r)Q>In4kH6nkSxuON}S}%#EXk zwHgn#tpBpvDc;l+k}*QTfy_&$0_XZls8@^ME7^TdYFXt!Qa8B7Bt_Z!g5M>#JJ*e7UQC$-?l2 z<3=rcjjhM{5?T;gUxLJifdtl?)uLjeImNH2Nh^w!JqTU}H<5^a7^R@H@8c@CRR-Nx z4>`l?6ucN;d2R&23w2w+z>%qL}~)F7sWsKqQOA5as&?6U-)u&>0I~L5At`u&<^Xc06UXI9?VR&nS)dy zFm4G!ar7XtHCQ0JqXgX)iz3Dm^7*AacUg>Z=;2uv7VRGtYk<(Nul-`t+*!%20lF%K z(d}N$sO@2|7{Cf9c89!@?T)w)&e0YXn(rb&y#;CnYjs7%XJmq&um)-PKUx8+zNuu4gA>u z=F!5;vdMQbl=>Ubq<&B~FzQo%_`0q|B`9m1WXk8~QF*s*cxp`xHOGVw_ON_V>LDxUx?@mtAF|)DP!w_* z%7sayb1i=N_W# z&)R<(v}D>F?ZyQIp|MzMR-Rb(KTQbe!_ud}o%VE6`Ru2-5giuvCoN|#yW^WD;3W*= zPX&DTT(K7|uc=j8dm{p|=o5U>5}LIH+w#%zG~6WixCK2v7`C&zD2x}^)*shOOWye2XH>6BA-Mo&IR#+XN*xZzP!7Z1#xtI>>7vvVBE#iL+9-r?Kck? z&8{8x4C$|CrBMnAxV$R^wN2QHJcamXmJH-4r*5=bt2M2nG=1?-VC)QcV=~IpdJVmO zZ@oC0=cn9VUhnT>_>lFS;pQ`=Crm#oJU$O5s^Gw4P;@=NlgsG(Yu?|kd6ryT|VGnG5sdf1(F_!x>RaBD+wKFk=K4}rxZlNGidUs6A#k2sP z%UAv(>dPD96w7OCaon`uQy!lYQ0fsb2+8Z z3J?+DY-km)m2P4zr2Nfa7HpAM<|zm&H&y-9FNFWOQ9;9mNNOsRqb(eH43VLO){eOK-2 z4x>{(wU-2bUIt+hk^hY@NI{`gCk#MyDLx2XaT6d?lo(lc!G;=aMv*vok zC4tU%$$cvDritB0pS>WJM!rv|Si=edB7)SvOReYqMv-ZThOL5~ykuI8momNFs&}9z z(RKYr6?%ShxU#ez*QIS+He0%Y2=k7L+F4?+DvrgYe0rPOC#)GL6IGuT)gIv=MGe(a zlyu>_Jup0qMhSE=4t3FjKSUn&RfBm9ECHW@Wkzsj3~CP*JB;ebqg?R-6qcjVD*#Un zKh8G-@}G1XAipHORz4^KGj50$cR@j7z`pz+q_-B_;&pJ72((5&&Z6vVK6QqVZ=^O# z0Xu{Zp-%pKflBrB)}wW#|4UQVuxd^hvEFKa>T8K!%4y~Bmbw^guS6DeBMf6a$tln* zrmuWSM18a{yrc{@bdvJDyK}w(#Abrn!RrhXz3(XB7GIA6*nWl#6cd7M25LEs4zcA;SfeN^$2e8;Nf!RvgS6%JCUy(YE#)%TDnamo+3(6I)p z&tkd!hg!I$Zb2eShlM*!Zdjij2)xX0`R=o_@3L82Gg1Xo$H1h~A?jWB>D&hfIr*5X zB%n5wnY5ELR^FMl!)D^%es(js66qC9YhiGS$>5Hkl0C$L0my-Ps4h! zN=;8O$G_vc7DC#_(&9_KNAhtH2q@O0-FA`JlOb5G{hdIyHA0*!DF!%&WE8c?7Q3Y6+Fjhza#D>25bBcswgZw5(xsXI4ct% z*pd$jHW)hWp|VoGAlI~5mlC&?V&mRD6W4c-Ph2#%0)1!V=8PmIgvI-3y7_8kb2s$s z(xoC@Y6th2a*DK|y@_t@Bw9J(I8vlO3;n8ET?scANzg~22P8tBrJ_VmfjjvL$~}TU zRP#T!KMkYZ!_pn%Vp0@gRBdl-wW;~j1e#xjgsvw4REcD>^;yTUrnsyatt2&ED4dF2 zO@x0}g75tKBmd=gRx94>U}UzFH72}ZUL)-3Eu@9J8}dx{ix&r2E;;MzNbHEKQ}^L+ zq<$#pw`J8Nt}5~;;%?t8oKZt)zid)QvCmN|s1P7()$AOhyY?LKjr1g7O(lIm#ybU%+5V0V2XPlw6YfsX?Do(qZa{mSC zqQH6_eHa&R%VYOWkm5uU4pYjcCW>y2Un}y|6kl#YrTHFzf(H7nK%1m~cl`v4$Eriz z>B<)trWXN+P`Er?_8JHRD+auTD2RZdAhA9D;CvCf2vOZPk$Jw*lY(ZQMq&ShF9WJo z%Y`La`-K-Xe!93w<8a9Dr#wlw*TJ)02JSziq$=!SfkerT2(%m4udki1d|AO_1JsUQ zGSj`Xhuz%$Z4sosTH28Hpl5Tr>^vV~|HRj=i{7$aMM)Xnu*G+T;c8H+^@KC( zI$-1XE;Z*kjDap7b3hLEvi{Z&6v03T<-HJYAg#YID&ffhf>BU%JAaW8JJ7MtjxrS4EvBiy&Vpur5m4QiBnmR5#=gku%-P6` zu0K;W-v7_efW+47m7F~^qv>;8XiG%6$AKbC;CLVa%+L%q%RvME<8A2Bh&29SgM~yb zCjYr)ayR`i+sz{NbU7NuL#C)(0S%!kzfy8`tK)&DIka|teEX9!%4HS$F##{0FX(RB zuT|+{A;7S1U9k<5NYUTAqyLJbbElkR}yFv~(c^eMo+nDJ}DS4y_*CNSyW-KLeqF*uxba?!59- z7hgmWiy3@MEIKi$SMxYIi~tSAX2T9=DERZTOV3T6r^q$~P(-SqeQ=&8G-wIEN7%sM z1BySgV_k!}i7?aZ>bd`0XUDs2VLNae3>ob=qILLxR5)z( z4RYL2pPhJ|T=}L1--nQAj|8{XjYvC>V~rZ5NJ1!$8ec)eZo+7FZeRIFUu0{icHe_9 z`?0=oakz)}O^*%rwO;wt{OH&k@px>#3Eql1@hThzx{#6Kf#V^x49pKk2R~Ghc#ru8 z<7i59)r32O>q_MWkBjMXw5BSx%K(AQP<}Me0vcwOnPn^&j!)FC$3k|gokUjU)Ydu> zGaderZ!#j(9Nm&zZd;%}laXQtJ_Ba~?V0SIABVuVlA9iCBkSN|(no9~5jw%5p2a^kQ!Zy?iA4Ju)`=C6JCRR4dj7lu245 z8$jiKe*B5@(=XhZFKV*kmrWj5`Qn72fWx4nI^S5mA8pJ_MxDHzlWWk=M)tK@R~{wb zwoB3;Al+ZO>W@;|^~y^%GYzDj?1q@M z;}g4;{z86=HWNMC!=~ZcSK?Df-+iVp22lb=OG?2He`qy=WObg-(Zcf@D%&w=W~t4V zvPpflOl6-Ll0Hg%y%_AXD;4~-Tqf@9zV)-u9W#u;C1hIqsDxJ z%!g%B#|nGp-}Unc*L-ujlgLQ1_iA0uKkxFci5uU%R~Yy(g=u;9x~DFdI@Ln4$#0d; ziG5c!(K@=WqS-mY$9?ytCcohs`$1a;o;a>ojEV!dEp{1RNV2;gCc?9bkOpc^=#9Ksb#t#N*2#Mj6$&qA3}vzjXWWa>~a4HL~FFFo#t zJ+vcnbWsNn88O5O;I?gz+~GzNew`B|T4wS!!5bYTbx(zyjxT}T~bdEEnHFj^#15=`?G^i84_l}o5Kd52ACP9&^^wHk92s+Nh6_i zF{Ni*sYg_h&eN@Y9b4onXR7=*<%Mv~C<=Rqwn$IKOm8 zKvW`>b!#wlj;zAf&X()EPk&82TqiZNZmRwoJ>6lot1(J$Vt6sz&QR8!duplG%$+g8?x zwyJSZ*i(_)DdQXEZsYwd?fYa{vnzr(>h8AVkv6-s(beJpH%gY*6&?E|`qjwlPjUbI z*Qa@&)2R-qH(lFnJXl$L0I4 zQ)^cELO?WFNkh!~y+Gv5x@IG$l|h9b%ik;W@#pe(Ma8_6ZWpR9OIK{p&dZEiUm}>1 zn{bI&n4ib5f2^$1>D{(G7q-wuzdAG1`m81QOVFDT((Rme_g;A<7{av6!)c=opsyZiqz z*Rksgsq9Ys3h<_q60AF?@_17s(d#kIaS5u^jQxM zU*vat&H2g5M4=})t2?-1;;`cA*%Pl%C>J-hR6p~gV;fNM>#eIhA^uvc^QDTh9lvh* zaNw@rOZ0g2$^}m*^51E4m>Wv=3}vsjA7i{oY5K;bPj=5(*n-yfpq~3 zM)0juH+7dkuj(UH8JKLz=TSP)5_;r)gw0T)Mz`0`onqhno@QJ-C$d{|PLipW)k3MQ zUG)e{$Yfjg!-6aaYPol^(LR&nt2&gIq!*99b+tdn^6b$8W%F+t4%BQ(J@Qu19>~0y z;8i7;HU+maB)&=w`qm$6GryEBDD#z{OKQQi^`9B@9(~tnIacG^!P1X1$&Tx@R&QTg z=Do=CBdub#CbB}9<*sb))$ef~T%u8!T%Ak#Lw`(;y>2U+daVoQobCGfnAaJ;pDwk2 z@z0DN$b1_!T_#%kW%V_f_B^!@_@1O2I0zJ|$y zZg$Il)W2Udv~|PI)&KfQ;(!0N;s29s(CgFxnfA|nv1s(x{p%-(|NRrq|8Lene6%Pj z|Lo11_rpIi?wCuKKN9+|W48#+pO=L-n<@ysPyW)d*!-p={_XcAHJ9**9X)KaQjJl* zyR^1(?i9SswM)j|%||??z=Y|Kfv{Mz?|3~tH#{--?acHU)9uO|?+CY)=Iqbf^hNDn zUu@8yH-n7{M^b&Cy{a9L`_S(jWK{Zm?CIzBHyx!n4*YTHF4r!*H0C((`yi_sV)MSy zUQbYX?4nJ4lA8Tvi4)}A@c2I! zmX3%kno#7=N>%;X7N>lyD@wcO*78xBw3^a~7n$Yg`~6fd3g<3)&30cFvpwLI5>vN> zV$(y>f>VMW_U~FV?=6c`S2;2?#Rq;4<>IezUE0N$`jLNle5&HlWM6I-&pW>IsN{;S zu2n}*)(10j%N@l_vyv&v-Uqgt9*Pg&p;PRt%fSnTdLw!5qS5X1!=v4sY!5hvAC8FN z;cg6R8u>DJerCpWAy{i!=&y;pNw!^Xff@ADb`Ya-WfrJ@CC#((;+4%Yb!N9tpQXg- zqe(eg)vtZI_EP-Wq_3i-tHzRY#$R9Wj!&ymSZo^oxjdX#9r`Zr%H-hWMq}ghxU2fb z#s6>|81Z<2I?u9abAMq_mvC~vQ<39}{_>j{ehc#OkBl8L*)yy)M&_PoQm4ld5J zNF?^fN1Ll5gg zEzl^bt>zhb#(?RiSc=Dj5B1eLUw)2Vp(Q^(X|)gOv+$-;$9moH8<=5bKBTlDp*kWO zJ()N)?%g%<`Bw}qEmb;SR?bnNBUb-M940Jdn@PZ;lN?* z!Y4-Q7l%tGO+@Va#W^?QDFYWC4bR=RJ5zr`f2yW?wBF@XzPo67LwnEcOXH7K6?fWg z*L^dxABM4`qvY6LzBc2V4=|i%nzZTrbZpxL2Lb}E{=DZ;s-}K>efKN*bFIAlUwMCkVR&o1>7rei+dAu*#5Y*lg71p_c87ZuW(6u< zsGQ@`QD27r{Ch$C{`!VvFY~RQj`foHrei;)*J~HF41N?jAhJF7^<2>Q^*OgMw14>O zBvBQ8dQWcy4r-E=ZtcyFg@)mg>;i6KAA_5^N5{L}+%!*|jOZQVnNZ#5ywa&I#LLrq z`Sg+NF>f%r#S0oCe^xDn%hvGnN7jy*-9c@RkDoP7tZ)6abh-Hc^?kRf`5lK0^Q6yz zXdNhO)6yInhF2*bKR-O>qITs8t641`V`#ZLH~H?_C;1vj{}r-WOt%~i3|Ofx(3^Gk zUpF_d(J=dCCiCSjL%*S{t*KKC2r77&ZO(9Dma(UN>06$R z`!Ts?LAsx(={Aw0#E;>B3ELfS&}U4Qbmz(5`);c^4xRk>jt_rlGpv>|W}Dc>bo-9; z)&c&|)^^u>fdS{Wul61@)o0nwx~G2|*M<#6PW(Zi1eTVDr{h__{rtZ6Zl3?f`Ddl~0`E|jp-KHXj&y`u*CXLc?t4})Xvg)F5 zY`JXn`m0Q(G230YQS=x3#DiX`TP2s$wY~$cYw9bl)BS>t9S24{|GdV~ zNs=<7R_W_8vx5edSyi@@VL7MFxH}h)9{fGAQKzm*s$#vt00xDedlxi2yW|!1wj?uG z>k0mO0P2=b`kd3%iamaR;NFrr{h!ZNo-q6``3bn*rfyZ`*8QQMQY)zy0U zexnfGO{=#?t+Y(cz5HPN6d&)KFF&wXnrY6X^4GHscT+0w`LB^c%X-A+gu zGKD4mu1rK!xUA>WT-^?$UEsx3X-}=2_N|gL>F~svmflyYV;^m2mr7~#du!z?AZQV_ zUEt&|FQzNY^f!^A#Ov!z;~$*sjE;|2xrvw67eF4%P-sU~RMhdDe*btG4^eNt z&tHO>D#IKKW6+aGhvs1Tv)0!7AqNM^ys~jdR`fWUE52#3r4>4*urk4#zVE#ArtYf6%|B8+XfJl2n=M|`-FWGT+}zJ8m*Ml3tYxJ{ zT25Y`9Q-JO)Udxih5~k+IeV6I~WSo93d+=(cJa=VXmReE3nA>^dRz>O>DL)~3n%z4 zoTTxoynw7TkhkZJ$oh$)uXGXwSlIeJRem;E5H`Qc2LzLBCpyS2M)Wq z?AfE9wPUV1^w2!C#$JV=+|XIOBt%jdR5*~Ec#$N{4`kR^9zNib#4PPQR48G&QU7_Wjb4aB1PO@$pX(rF4KU0HmtRmc|o_da;lY zRR_`chGf)E0ReMp@<8o^2$Mi-AYuSRTY@%BnZwX3qNX`TbT(j|ks65nnR@z4}C+1Tvt)Pzi{F zI4fk@Fly>;eCngOf><%A@celw(Lzh(8KewFcAtKn1f_tvo^$!8Qc%@`);Ay2lprl6 zirW%FnB&K{Kq8@XuAT{6I6Juc_~v6$m;H&v*BjiRsimcE(!~iv$wcl2vXs69M6)KE z=NQF?4W`%$sDTXs7kf8AcV1g8ujr`!HZu`<-?{nnem%<7sSOIv0aEhA=4bBaq%m?y zTsg+SIKS(qRUZ}ICc6tM4y*Z2UyOV2C#gvNQTd{W3@cH!gp?xmElfUi6%uvEc)T5k z^}w@=na9nThKjoSI1ykK6Wdk=+a#+4(FJHCjmMs{H-&x89|mZ8&u^I*$cj1|;644D1FaNK*-cR5KgdT{` zBjS`qSDA=#&NZ+>4#iRA{G%^)Y?nT76|;J7fpKN?S*zRkxfzvq#S}bHisSsl(GD;LhFwx6GGxV6jLE$?-1}3q4b;XEt!X~5=e%s>|x?oE~Qy$qTPUOi|WwOkmBLPA~-|dpJGyp5Ev#Lb{dlB zu-oj)$|UkIs8K-U+kXJM*9rU2vqJyqm+CK+dh&~$C)A0Ewy&QbM3uc2%*;3;qOoZA zwlV<%d_?pW4xflOd7GM=5{3KIKi=ySoi-wX1jXNBw+~$+P(GQJcKtw4REMFLF$PIp zOCl171N;?gf9dz`QC2}dFq};;ylL8%2wItVLVB4-G4}`jPs12eJ(UYTO z5cO|hy%>tHT4d2g^LY1KALF|5Q*0)kKjf_EbE%I%v{~<6F|)E(dF97G@c}2f-kBx- zpz)uq8rovKh($rE7q3std4<|_SjDWoJ=$|NCnr6pGGvxD$1t>oRmpuJ@736N$5!ZN zjzg}*^xcbFGT%QGLtw?MxEoGw1TG~FLMX6y1W9&aSU zI%NpjIZ(c2tAYR+ktu?@8PPnN>@MabD&Wutizg8q&J*%WL?9;~DtQDAMcwra69{b> zF@=ab843nW6H_}h2;rUG919;tkfWtK>Y}p2v%vB~Ufb zg>Y@CzyBH{QmYEZr_q#)A5Ad|;%RDT$|h3Gp#}%xaEJq~gS)K-8aSe%VNJxtrCmc2 z!iNxB+eDzwgg69Iy46J09lDLs*Dgj#4QG+A$E7MqkD9e6NiMQTxm*cj+D}gRG8tX- zo~qE-XEUKEy>=7b;GBDbL9Q1TyldLk*kf$FAl)WJXn1%he#lt!@bU%{so4(y4cpG- zp04t)gjO~JF(8&6c=z=)NSG1#mIZAr;$ERHR1e9d(rZM%9)Z`?0Fs9luG5_G zz~^fwU4~txCZYcb9rY(>g~GsVszFpNoCr`$^ApY^Vf#e^w20I%Tx|jbxN`qNVeWQK82b$nMId$aST+K(@?#ckPtc4uHqV9r-X*4o%*I&cAUi+eBdeY(QfGUJNYwkn-39u*s z(O1Uc;NU*jUb|2h=~y6*NXYFC6J0H6IN6sZ%KezsfT&~?5hqw24aO5PC+Y|GM)8`9(R=g1t1MAF&h-v2M}7ja}c01yOW#C!^anN8YpcsGb3Yg$M)@qAx)PBe~hU@q3_8a z35ob-$CiDaCJzim4l5~{eOmI0M}&nC+z4Vq-3dKC75MUrwp2cT{@^!I8Wo26aKuCW z34^q&pm%?TTf>Rt#}A&vn#D6yt6no%P`9Q$_N#wv&@6oW^CGDRV$h zBBg}OoS_CuS^!Q1%gMJ*`kuCCRFqd7e`SnU_edf>(} zB1Q>wkLTp#5&;3E3N<7|+%R}rEeruNk()Pf_JXJ#?Q&XL8pKk^5<@~mN7u_O{*AL> z2`#JT*&sQK_pfsN{rw~3;({h2lb0lQVWak$Gdp47L}>MXT)#b^xHz4*qT(9flHM?W z820`9d*5DKFjB>OLub+%h74t|Mc!xPGn^8;qU)VA_j+rEv`y8GxM)6_p(q@vpwk{! z+drtHR!`fVE&V_;o0#RDAIiaH-di;NzL_1Rm-Ag-`LZ>4pKhl~(P4?wYlH99CEAkG zAGM|&xN7s_=Aru+mKPn(%*<3&Ri9eWuOo3EPUL>h_zy^!atwkXuQ5+0tF znHlf~;}Pz*760HWjnEnoAJE?3e*gacLATMytwiP*XAvJ%zv}8z0YK-i=vRlaWnH;K zp=w{kr0wl3n}s|MZMFD0sj6D{7_pX8OTmSK_an*^|h~@Q|hV3 zcH&Q#AGtp=hBZNPl9rB6OHc2L4bTuIGkfmj@2w(BnYZS6H5m3H9&Q?jgH7G;@kavQXsiS|EzJexvBttI}w`sk3#qjho@kJ8u$ z@LZ^WbwaZxb8pI?+P7njJ$D~Iq(iW}nM;)GYHH5x-n;jj&ou;B$AL==ntFPT2NwEj zsl8`cOVwbNN_q+)BrO zs;H<8LT`4_>@Xo2sN0hbfl9CJ+{jE?ZeA0OYmT?VAg7WgKyaP>NU}>mWWv&b$ zuW*z~CNRmzKl4}|(KdzDcbE+jqYI>}xw?@3dP6<(7*HZkDiIl0-cCnXgcREwK1&n{ zgDM9H$MS)F`}dD@!dyOQuB0~1}uSZ5cL2{>G z=ETFa-#+8sy-;L)1)v#vrUIGl2hT$j9e#rgpc&z9Ugzb@myM7Thk7*jx}6oe$vpT7 za6Xj?+#_;+8fz|#2R=3_=_M(JwA;r~+#Ya|xr3;(15>XorLHu=!?^>13Ww2)`1<%0 zu{x+s!+`;fj;BY+ra|lv2>c=e-f%g^UQ14Jl}pp-eVTO>pk?Uc;UQ>T84rnHqC*Mn zzbFNd00;p8eEaU*5g-^2j0<7FQ4+D9@FfDed81~~4sS%VBkA)~2D7!8e3`j;9jOMA z&tk_BC1^#GP?mM`Cc9E7JvpfWm_*1|%(}I}VMrdyMOi!?g_E;$Q*-kO=5@aT=nwhk zzr=fqz#YaaHQZOOMw`FHtb2qZmnW3zkbvV3+TY5|OUd7Mpj1xh zBDLnD6^hMkt@(c}AL}U!T(j+Zl==l%svRBfk3;L{EfqH(&3;5fLqo)OiHJ0GG~uyB z>aOnSfSfg)qR0=3vJT>hO62$_babK;5}M@Xq2w+CHN4|cN=5=D48_lvtT5gB`%puM zlWhjJQN~_)LxNB>MJD08fbK71QJ0lT_oj8~rPzs-i{WL?6K3Q@5~NsNU2XUr%Fu1a zZL-ZB8ggO$l9CA|tlqbxUl;c&o$bdJSQOTY8BTQN)1H+YJfR_z-~>YcfbD31bkU9I zs>3-WuE|}klRpP`1*(qmfN=#T)vItJk>cL54OtuE7m&Gm0N07ALF8WgW2qlWyg-Y5 z`Zkq6kN;wllAbRw%}@3`5J36Fw@H|iG+>yBQu=)@oq7D-9a8TJdu?c3E0Rf`f@jP^ ziqd&1x5TVauRu?5QD2bGfJw}X5@{4y)%X4x;eMZ$A70ldJF+2o{v3-&axM`O5tpeq zVM0dbCjY)_8JQZvX72MX`-vJh$z72WTUYz8B`VBGNuf<>1i4{KZ>S0ZT~Hp(2RyGK zi)epCbbOJ?f?MIh>andXHh_6z)rQP5NezB{?ud_$i6Jx#F!j^VkSUKMxgHp)Z5==W zWyr6~;&E__K(c)-pAy2myjs7{R7C(%-BnGMO@{U^p!^fxwVMihr)3rg{k)ill_;|& zs?_-=7S6}ae=iZ~)}{$&@!lPWH4whQ_#)9?WME`)kGCJcr-M(D^|3Po({FQ_f0is| zy!~-0G}6RCy5#G5?$9OH@K+X6!&pD-k9}p8P~wg!KpZy5AZ+p%$(P<%dLY-Nf^&un z?Q>8)XIg|QrE0JzBhYvq2V@^b2443WG|ie?VZBG5`~22zt}!c|)q$sXpRHaGEqgce zYqA@_?~AYBywQSsB;5J0R7oJBZb7b89=|mMqRBV_acswm{-;l$zR-j-M`oLro{kW6 zUm4U{VPT<*fAd%xg5KhyJ7w+QUBu!$ckWPZ+Ei;_(qZ82EQV11w4q@e1*9vV*4LZS zuOnF+w$&!Tr^mq8*B5`9egKp!;{NZ?r^leanwQ55{!AOnt{9Wc37|qE8xMhBOXx@& zhPF+lgAzr`DO5k^qUJ-c%az0RkqZCjGjVGtjRFH;ft0EqO^Ks{@x#zeX_A*4_q6<-QIE z2Y82LNEWxONY86!_12}M$ODp(*Juuh5dEb#-@5?jxf=m)Q~m8GBEM78{HIOMCks+ z*nw-vouM79coQ%XJn^i%%rBgC_5lrOJ5%~KA&35PmtiFplgGPRBZ3ajc|IyN6#8|w z(}hp&GWZ8J@3Pr1!h1mF*s)D`T>p!gFXeCks+BbEhxG53tx+@UA{rEa{|b};UsXQ& ze^i9=YQWJFszZin^y<~Cr+{z(UoNkJwsZ3G#?PJr7l~*~v|y1p5+cfc>P;@uTLwch zYxk_JjgOCSeN?lKu`y!O#ZsEliHVq)nA-h1xDYo1y|+dlWE>G427oK=xBuClBzx%w zt|p76yPj!)Bh~BEhTXe&_rZbOAN!p+PXhS@K#f*p6c$Fs@M*lvJ+&Xfg~bs>87@Q4 zFn$&=y%E&khRvIKcJ8Erdh*4+`}To5)qn%RsR!2*biO%9I~!nv3*70_S5nRa$Rkv{ z)ExvZ0(F~rmpJeU@beEX&W#X3_=D0H-qYf0@EG%I2*u=qBtLz9c8o0ti38+}w=psv zMM`I!ALk>^r;(BY&@X%G8@p}<;FF?a#t6-}ZDl>(i{T`B1C2}6eXmNo&$7eIaVP|` zujnEN#t}BOQ%{mOgjA+vz+0LH{FFKbsL#E*cPLK?3&jO6Zv4ozT@(2sm{hJ6cYq^M zB7hM!ay^J3SCAE=Dxo}jwgXWa&;0@1v?x?C$5II7hqZz{Hd#$c?`4Vp@(bjCU!gy4 z(Hy%Q_Z#`*iFLDFUYt`@QYvy9J4#f|Q)MsBo`R$_t|Xw%izTkP4%iHYT2)8xUXTN`H-qY09)^IH{@}P3AQAI4FRzb0_@7uRs z?$53E>}eR8+rrHJ9BBbO>DUx*b~4wXuGDel9RbbIP>zJ+G(x4w*y!jVnepGb0g6On z1K3W&Vu4-lvK3#qnepjAf3Fsv?ke>2^<4$dBFnNl*7OE6W!aW; z0QSmQ(yN99J6$P^lVm>cU*8Qz+6tr%x#;1M5r%zdX{mzz@_}twN$GFCReG+usfplD z>6ywHfKhM_lAfP;;tUNAngmj_se>`k0u6W^BGaU-0-#p_7TJ5TmhF=cd`WZM9%~4j z!?@ae2-*cBLh6z@d+B%XY(z@fVwG;)mO{xSP6MO=_qb(bl7?!7 zVn7=3%gLpp`1b;O?)>;I_)HoWmarV?egpXqyP>qUg@(qrY0PO3NG=9+H%hti)vsQi zKneBmMN4aI=g;pnVI;u8lx(s|NCH&Bx8J;Z^Dm6crn|^89`!FJWMk8g!%sIL6(zCu zzuO*3%>kpMF+1=)k37Gafnkm(!$-mf;dEp!m=jjR6iW6e$ra#KVKao{u7W1KbN4R7 zILS7Vv3{DLC$%#eaePf}Euo-5b;P6OpoRh{z$SQb8aB2zoGAwh=6GO^ZtNAF;2#(W z&__WuM<=gT{rr+o zO2`g_2OqEenCU3C)&PpZTEHL(jkSzXp(cLw;=;%K4XExxHrxag#E==YJDTE7dj~g7 zeZiTR2h)Ol8Xh%ydD)B9bhm>~`u5od>|S+a6j#o@dl~6U;ml2N7B(p8k2$sXfDIY1toGSjYX8n5evyh4h#oPJf#X$s~ffL#4 z$)zZV0w3N#sih?k>duzB_)Zt9;kga%y&sD&=du2@NoBaPMlDLQvt15jnZ?1sO84V$w_88?<53A6I95-enqCHwhO5`KRSD2pkx~9089twzXM6`S?_OqZl9ZH8lJTI?R!~?Cx2c(~)DA0xOMqF9qQ*e120a{vn|k?D z3#TLq#U2DJLe>!K|IMlMB&Gr@%KrGQy^O!cls=>90aTfmv9Y?kI+ZuduK=XNsGI;O z0BhZU=rM1F>w$8{aXlC>Az;JC>$QW@CTRPBd24BF+cb~NIRJ{lSSdDd&U^$KgK%Us z1F4~*lpt9N)l6tpghYRkg%GGG>>N55_)tB`cZQ$9;$ZS=aF;zj2Dk#~B(toHp$gFD zMY=L|Ud2Z#%G#T^Z&MH|6?J9o>I(o1%u!jn?&;G=a7?>6gb&lUNXqa;8&0xk5chY%8=JzcpY^Vkm0uOFHMHtm>g25AKpgL|MDN6-Rx2&J!O@ zjW$U4A=mmVT_AT^Mj~{aB=7LVbQq0lPmZ$KOiwTHKp9bpPEnC*~^U zI{Y-(Ink$wTdm`BYGU6TwVu!75%nG1AGz(UUnVMV>vgnkU~P6{wms4%D*tW+9R-Jf zq!BSJnlDt<)J#PaBDsSnCvC=0 zfz=~m02r>Z=s5^H5my zZq(G#IgFEwz&<)YE-EXlE>&Jp5yc%0)-5YL8z$6Pq^hAoJx@y2uxK>5MC478=hHJV z+`4)5pVxPFi$PU5IXRWmAh$#gW*bTZ+= z0l}g;n?(`buEoY`>FCsb_#nuyqoaeamcX(yNz^ytQ{834vuxiZcg(-Jy5x+`bdSeIz42 zJA1u;tc{&rCL#r)Fzx$8Ox@k-jXJw4J;V@Ck*#b$tVvH#&wf}(2PZ9>TN7syZsbPR zttqKM%p1Q91ZR326&P-s>f;zRnmMq7z`ZD51viYGxuFz-YEWKYIPfA`lo;698n#3< zY*@1jye@LPuJQ{4MS^0fc~kGo!?};#zVi$`?Upr%wyYVdHy!5Pf8anExCIo<>RjC1 z(x;>l%?*RQyY(qCJVD?{%Hr3|25azP@!<({DFSNZ~QwvDzic&gWQAxIh z_OK@YLC?#_*Yx~3cP4(5dEdTY%D0-Gl>Gt`l)>Q!wpfikD(bdH{Fy_RASNRd+GJq{ z8@gv$Mx(HkRz8|rNm=;_X|u5^c02$g4VWf9JzbG=>s~c;2ZzX}rX!$8j}-P!t3>-( z4>{bNl3J(M@nY|0qfT%;96WMzY-$}UxSj_$5RsNXR*s$*1#4@*TgR__{AdsSi0D_l zg(?Wg8F%0i5ZH7inqr+_r7nIyfe`QxW1>3v)rvo-y^H)7aeBmNKy=uw#-tN(Jwao{UdUt|Rel44#(z zNDVH1aUuEI+qcHy%#yy{w!A2aI!J_aB&fouCz0{6AJ(KzYu`CZ5mbxE;fl!X*8{kZ ztnoV(E02ZM(V^Q$u|}Ar!NX2vFF^* zi})5R^ta)j^wCY+MS|vpq5r+IS53{#Rw)=8v-0EIED^k^th}BywG;_zqqhbL+8;YJ z8RqTm?hbCTsvVgtI4+tn3UUvrp7{fVG8&<{O|^@Q5_j$t#ZzB;r$Bn|KxxwI$L8F* zWA->Wc!PS1OzqNh@7_L&FiQpJ3+m=ciV+3zXfQ=V?S@q28F$hb&;yPI4#e0b#;}&u_5CHULgHz;O>sou1#!F;-)c0GG@5> zml0>c#_7^`ZVXoR6(9wtSFdP?9MBW>#^Gb11_mZ3b2KbufYe#`mgB#5oWiIR=1TwEN(}d-g_|nJ+5`?EJYzFP7QRcOxdy{T zCOS9L5Uj}A=QeN&=_mG*wA|<(jpoME&jjR6sYEM=)DArv{Nf3~*B~q=<|o(;Q>!46 ziF2##$G)cP(UuJ8I(Yt^k{`!4qj~C!sFc(*ECi{+1P&~Z?|)aWE(LrYI5+2bLTBtK z3;1JjyY>~+;*`_V)Bf@tE=Cgu#Rj=p0WJAkTgvlLdeYyBxC^I1Hv;noD+8kyfmw-) ziRp)OAHk@~(SUXo(2Zn*fnUG6{`tf&!79(n&Ry6qq7dqS9JgW1^`?M=W$B# ziXgVRD16x|YQFF}Z>w;hgv(J zAAY81&Hz4aw9vPbMRJDY24{gehTOS>_5b$$J83w)ku~(ilVrJ*Akc7%zkT}_pOA1X zKR-g?x+?Dx-WdA5YFr7bX*P_30B87HkpxwoWsV~>O%~BEdV+ND8b5ygz~WG`NImt6 z6EaG}weB+N!1gd;1<{13$Bm3|?qPT|R6#Jb&kGA;A|i*Ruu{Y$&n$>ZNT>+YTZmu* zu(C=@N^m)6Zq!%kqc`L7LA-zZc5ZIn%tE>iBOGr=dPc??*olvi94zMe&ZmG(aIJ!C zaV(JioH;{Li$wnjj6k_#Z+Uq+MSwiBjQbWpkcG#QNWheBZ9{W%_yYq2RpRQ*(0wC{ z!GL|j(^XYf!Cv@r0IJsl(&184+cDg%qr3U!G^%Fg97xsC5W)(`>*ID9@WW25iC_85tRo%|KBWh_!(BQuG5R2Qx7R?2_2K53Yrw|4>s>d&i&J|KF_J#5B(K! zt*z=(($XS$BDw|jb^+E=QcX&5 z1@sS1Ha>rzfmU^7sSarIAZ!NM;XsgCWXVAS3nMPxxN$>;^wG_J|MB_Dm-c~yh(ocK z_@yvzYKEXmc(2Ar3NkQomCnx28MSC$17!lf=sSK0{JC z^p!indZFY>Dw7-QIvyr zlbHq5Ctd)!6691ti|+ma(`62h6^OU0Rw+KURO| z77BC);Jp%=bis-MGpH7ZA#Xm0J0cT4YI7rSU`AP!7LhNS+mQ!n0Wc0Las4Q73?dm2 zPN_kZiob(|D(nbv73Q(Bwg!q-jJ14we$G7!PQ=w!yhyP4)n2t)jHgf!1Q>Bo#l^)y zB?u44>|9-A0YWVF$A3Qz!{0>41?L#7cwFZ?H7DZo7vN6)UE8*8J8|+PCzd>8=0kTe z*qWjfu(eLV;KXZSPeI$mZP0;yAOyEn@tm=K?n$8Fc`!SU;Ijazk;547zWX`^wnarnOASKO2A#@?pFuA6NgeQH+SU01nVn{WDlhCu?`MW6Y%IL4rr3F8zZt@h_^5ER^HT9Jn!8YAk{ zMl>KslChwZk>l4j00S)z{ti0gwq5_Q_wB^k7T#Xm^XqPs<#}RKQb#Xdl*UG)eHD-- zzHMT@5G{bf2c(S{ZWQUwA@`N|U-XE1F!>NS&EI0UA;42C^ z^)P zH<$nYkWzk}G&Qx&_+kJvk|Xlv6`!RzpP`wbA7{EAoZAt2>lTOikEzqeZZpQ%OH`Fe zsR{<8RbO8ZZvE#$fM+yJc;Sl;*&tEt5D6XO$4U1#KrNX*_!$l^uGM&~sZGM4smX4^ zhvzHj*2yh3X{b!TdpCIX^fD)DrsszTyZ_)p6v0{(vI~-QAxh~mwjiHx**=_Oq!de< z-4Rg$ZxG-7GygS{#e?LV7x;iQ{$sKZ?_cph{*rs1^q2yY@`I)uId=LR4Q~v3E!};= zF13Sv#oqH{9rx~iD%K`bi`JGVYq{_GW`*=}-`XSG$FA#=?{6T(Qoz9Vq8vBH6M;3uT>3g`~w=NTN_ARJO?|%NT`9B_UfHvQ;XnEbXYY zJg>W)|9}4f|D5Z2p6hz9=Um4bXXy9)em~2-yzlq@zK`RI1kvufzxyfB0g%gflY*k7 zkL}&t0t5g){z<|z8~_FvRN9vN#tQQY7cXk?=LAM1jhyNWLk*la3tQn<_S%A&TGtL! zRoaaH{MT$Q_9bAmbQ>8#*}-on!xy* zD?22wIPmA6!-w0XbEzgf))H!6=2UZ9fEA{vL>P&`14ba)iFIE7@Mw=#O)fyIwVwR< zpR?+}Bi@`PB2-&uX(_pj*GVil_y%5JXZP1r2uCVnTe{x-5FYc8AX4JbLd+Z&+I_{) z-C-Y2;`n)1cVknRgYxSDc{_V0+qSUJ*zRQahXVtJ?y33?fRsoZL{iJsOnpkfc3C9! z!np}Z5Q+^s2uSW3sMMfEEM09^qBsgjnYK!lHHvBo82b(x;wwbx&JPF|DanvS6^-|q zqCz-8zJMK>wvr>G5fEy_u>#T^DXmJ-)%uY!kk6>~CH5)K znj`_MzR#5XmL2_)b_8Kg^}20r$Zr95=FBD5sz2^o4YH_3V3mL@7xdddMb0_F2Nc+o z**FgFPU~hn$hg@u&L!1@TaS~IV|lB3-s3VT`t91cHzzLVuTsrGM;m_fllHrG9r4T9 zjd*-6!2rq0@LykU&!n&jg6pH(a|=NzKg`*lh09-QV{-;@3RZGkugSDgWeMj}eb}%B zS_a4wlsNYr($*>N4sNwecZH43@>Q#vEl#C3&?<3nSA1(a@C~faSyY$7joeA)Kq@sp zrbl(AI0D`>MOyNRVqVkYrJ$f-OH}|j;P3B`syE2%+24Nakpq4#S%IHl;+r?!$#{gM zw=$&*-%1rJgDB-68S`RK0)$dFttYb-s-Oz zh9i$Tz3-2|yZ};p%LgHF}#3is!2BjmTBH)eU+4z^$uAI3-9RBx85~*-o&=tWMWh- ztdb-avD+GNgaf2Og8cH;tHVc*Oh{da3wv>KX=9Gbw$m$x8zm6nmMuS$wqn(U3kJ#} zt%mX%QwjP=DBjRQl(=Si>5P#hM`~{<=(0=qr+DdQ$Xu%Y4NS75(h}DSaeYJt)Q=RT zl|cv@-ET?>=UX-2fq;w)kqCc_^~1igE1W)J2iKV6@YrS%cwXO#r6e`&!EvOJK>nuw zdR^*b0X~kLE~bo4c^qt1U^oC~1$;TlHXtX*6tEIVa!Y(>_pba^TBM-IcWTtA5ec5Z zL7#%?Z`KfXFG1nm2`bn zaE>qPz(wD^Q1j$q;T>2$P<%n$y0?0B%5TYpI!FquxyQ>Z6SgunH6XjX1darOtIl;3 zM<{P2i3rF!dF#7(@4oXnIN{Qca`YIjOYExJ5K@_lWJq4B<3(%wQ9H2+cp(MdT@ayr6CROd)UB^+ILa1 zx9b7!?USdJGg)p8$nTHIm8o|2Cq<$jy`2KbMSLc28bbkC-!JR~PF32;h%F%~&oMS8 zOyHTQb(uYf<47DVX|Qky_Ht1PpoHBAA7#(py_lpaO&e_^rk9l?5|f{@#VKIJSFT#s zvr7wmcowr97WeJuZBLTOjTJ8ima#Y$Y^8g{(XGRgEXnVri@*S~+zl`99IJ)6g__s2a_A^P&^6(~}dvCjVg`20^!eHh89 zz-a*azhFt=*1(Pxk8MbqS(Ko!`bM(a~j(Q+%QUgt*8iY7$T{R#l=R_zKWgbu|yGbn}L@ zIGyN^FOYT-P6aGi4Tp8>NUa~y##??zZ!9U88IZzBoVu7~vTr%~geYX-=H-t)#_I9_ zG)vGrQNO@&1$s0|4G8Wh;S}&HSNoA^Rf1^|%|4Gwe(_TRZ{nMZxd+E_9$P_T>wO6Nv+oq))A-n-aj{ty>MLUhnbtuD8HS%NCse?YE}-KK{p!y~CoO+_Ps7 zMVgyLR2n7`wm(Ap8mXcW=AKoo?T%^2=L*%2l#Bob(?0A5H!#1?9 zy|zmlqy+y(okhXp!T`atNQ<8mxhVA<>SP@5oe37yaCn-F^A+&EQe{wr`r-+_BlFYM z40#s0V6R?zs_4TkQqO=o(oaq8G+~%DEdsCz#8dd^E9+hm1`ZHd<0~mpfQk~VhlUDJ zsM-Ot^FAMgK5HXQ#4}b9|D~?0dmR$8ao6U|?M)ss5%810pTVI6cUeXWM=35-ov4J` zR8Z)E{8@7kV#pML9F-{TB@gu?HsMV)@Oe&~HZ9=Bg5u$cIxr6Cm(Ig&NiRrLSHO`_ z=jITvO97;Jt0wyb0;XZ0I(YJ-1l2q!zN>#|=o8vPgZ}uV-L{ncTbZ_xQ&J{UEagm* zI2E&L{tkQ*7wTUnIaT0#N$=hT)YTu0gIc=m1awhYx^yYK>Pz7gcP(wNoC0DlDe}oX zX9bc;TL7C-nF$S5RjI2Vk~9+kK(V`}PJsywf_8xUs*_baOq@HnPoF;Q5f9=V0{}qJP~qEFS3hhqkvJziJ6lfE@Bl9i6-SqkX_D%BcUcyG?gT{`;=ka2 zoIi@<8zrP*KluiVm&72pktPi5qxr}luS`gTA7W9#_W>9<{zA7G+RdsfK6vHCZ0Xc9 z1E!|bw%^ZBkKkx`u%J+?gW76E)@KZ$9IB_UU+=s)6_@jNDwPC@vA8^S(253UXBHcb z;l(*o-5j4Xlmkdfx-V@birm>*|FaU-VPUlMh~|{pn=Uv6{<;Go$Q?A8)7GE158V(W z&Q{^AdPe26K}+lW#xwMz$w1DvB-yfhq* z`?+7gX>dgAYM4n$7*s0zlKRG)?Gq4FP&p|X(`WXaoUd!wuF};^ts6E!`Mr66JRde- zN`DB9jCut(asctZyf33r%02OteXs{F*4##0b7x|<>dAi1B;Fx~(TCx^$ylwcxde;TcL~}8aki@@865xR4{Pl(us#;|^XJd1 zZ%Zp65)m&E4@=xTc9PNjJDfq_vAIxDW%t#48z^29}=i;PXSXSA2Vsny3xn|3wCA{ zIUm>48G|%MC63r(!3tp34H!Bq77il?-Y+Drug45kdmj#XPJ9YIOQP++5gPi}CI7^P zAcPW+8`A>j4`4v#C}B5FL-inL9~(=-h;kb_qXy~u6G$pMf}*0j;>~;Re*@fs$$`YO z>dF&h8~h$PGiHX8ufE5tPaq>6WEGl(kE6TEO$27$=Mxa%Nhc$iK7IX=teSTvq$4Q| zn&_cUY*S+W&mT7euJ@8~Mc=!+#9WjIC{hYtno=_KIzGl74E-9mk93PD7@PuIa1y*r z_L0~KI0P5LKs{2Ea~yx%7{zACs3lM+xI(y-Cqznu&=9o|L}_Sh#yOLukrl8clJihh zZ8vu=cY%75khDnSKYX?$?0eEXNfVo{@XIge5_A_f<_us;%*-}pv)w&Bs2=IgoqNb9 zG?ZYRYzJR>5`V@iqJS!q5jek7l$@kfGdVYuOxLaB`6Wc91z}qdC@}V{QRBw!B7s>pY1sCO08RXP`Q^lV`V2nn!7hCJh&@hKFkr2DY}5ZhlX<6;jm17nwl!8 zG0>hz5Wy8z0HarT_|?vE!zop~eECuxyFfA<(FP}lHLM`^qRM)T;&F8JSOqecv!PRA z3h{FmJ;2+c1>})VL9SE6{Lsh)YCx0@k}EYfHUu7Q_pZd?RRlO@G;E#}YEp&3na0M7 z(!r-e&X;@Kt=mM3y#xvs^1=E(q}@U1&wHWz;)6>jeNqx|gEKgVMkn%6pC_+gP1~?R ziz^J14zps{nceM4a#0aMD(q{TDXDe3Q{BxZ6R zS3_N9&2al+|54ML<(ZfbazM<5JwDgENkgzTkjW0ab$eoX*(~bP!g~P6#n97+5bI1F za&&~fyPjPXC1LwPY^flAJ=Q)Aqz}ym4d)@^Ug` zTqYYgb;W-z`+?*WdR$NA0#7VA!y%cp2u8Rx9x|@4bnNXGE9p^*G99Sm@HlgxMHjOd_xXV5^$cGtXIG zS%^_p6_z5AikkSqtFI#G)yLecMOo?!h(zHn_`l+LS+jwycj-z}53LDf!jeRG!^%e* z)z<`5A%abwJ6BEi2p+;bI5yu)aK=f?H1|XFsIz2oUU9dk->d(!qokwTJ3peXOnzla zokT=2NRz@`1pKQti?!gFT0PQ)+#73+@JVmdJgsK zS=ov)P%KYxb{{rL0(`-fH@-W(yx)KUSql+=ud{qFuQb2>!eAsJoizMLz+)r7*iZs- z8db7MR0fT+m1{DU=Yup#?eRX5vcI9r``ONgn=(R31S_JyTnR5mkZ0zl79&d^;}n=diz4+q5YDcxI%4Fc*wGwQ(g~|K!9PT6-;nV=n@`XIpBE3{pH_J$o8)RO*4<| zO0WD);-)McUYrG73$8_ z&96SWaC+x~X|eruDj!Y!sN=Y|`BK06--4W@Yv(u5>Am3O$5Gn%4PBEHcBSjvy&m4J zX8s_zFTZ`h5#UxH>$HQL_~%R;6Ws%NwaNxnGwM z>vcbxR($k$G1GLyy-BA2I^SZ}+vk-l&F!X@QC>29Uih6}U1MkNQLg&K_fM^dZJH#k zNdK5=6CKfh!=Zx?PeC()OJRT>b{Jh#o=yB#^k!R2%?#0Hcy={9LC`!*y_CKCORf3B zi#2tnm}9P$E2(uh^@tx`a;KM44G`f`)RKIjym)bULv(3ZoQD+Ek5~S626QK0O0>cd z60s{eekY}vOQE1eyc9}-XUgv{A4?$HzWNn+$<&=w@m9*vAQKJUyb{AO%<*GN0ouL^BZCw;zoJ#{T z-p15?h*5X`uqY$0@N219n8D7O%|$iC_wFrcNU!mNTv`wi6gpS04;?r+?AC8X6eFvj zHCuRfQ0^j~HMz%Yzx4XJ=|h(or)UowH<+TPjwko8P`#_CTrtdVtH!%;ZpX&Xc-47% z#n-~u`s)uJTx#PTa;HsykL!u$uTz&~Wqx~B;x*W2Vrr(>L-QxakshgScl9p6ZyIx_ z>!^9QwO!AtFI&D)<5t^Foo)JOhSw%~7_~cm#?(2$ur{YqyQnJUZN#riGsTg$O`oGH3=@8C&siZCgr`c;f2xePLv0pzbzY@Eui z)A{z|5m`~zIn(L^jpoihT=+Gnc8qDoJ!8s`xz{tQ)d+vd7X_>Zd@V{VboIkay%R30 z@S&wbty3P`(osaWo`$<7Xhj$QG7D#>PN;p!AB_WZ=-Y4XU-@ak5FtlHVL13k<$V$IzjKDyw) zY2iGd;~#GBGuH^Rdev{>LyKsi35sqddY=`%D@Uw**Yi}u0;PxEm3P;^no@C2CvAK1 z9p{=9uhC^YmKQ(V&cEH*H{18eC7bMb>RhuQmT9}kR{Qp#VLL`&zV01UnKJ$P?^X)C zRoB{ln3_)Wa#I+?C(q%6kJpr)0lO1_mhSXn&@soXrgTEb!k*Rup#xn8#FIdYFo*b3 z3LyNjXN4>o-AEdE^{U2cX=!p2C}sdi;dL~qXzJ8t>wHI_<-TfWKz4Pwi2#u=^B!H&M1FBHvOcGp=GxS}vmt+Q&Yxy#0g`wF z$+Q$5$tcmyE81n~{L}a7D`JVk>s$Cck-($s;E$Ncapc&}ITw4HzRmG7Jq;_9CK}(p z$BuQI7iOZrJ2AUQ@52U~!-h$nhn}V0Imn0tyFHnUWC>eLxgT6=s+H%~1l6VL0hR{4 z4OD!(cRhY%!=RA1KXxlueq`pDcWjt*MeTFl(*qmC7u`|4YTa+5PkC*};|h=6o+ViX zUsNf4SLJ`)V{EPJ`hdght|a)k>lkk`bjH;9BR$(qx_#kw_U*^^t9E}<{!%pK_UWxk zRt=1<&DgWw?yFuX(HXn;WEj*hVyXOvcw(v8iz**r0f~Dy$Jse&psD$9k`t3FQ!+WZ z8ip4fwb)PV+qUpH9Dd?JW-(TuJ^%Q8=br6{aOqf#O06K9V!gZS7g-I#|pZmV?>%AOpS9I5^RQA$82+^w4T;WegT-ZWHuKXPqV z?T6CCKkD4K{l%}#z26RB+O>b5;%>+8{jAO(v`kGMe)Z2kKRKHDy|cb2MP=96=FJ|LCMKlJ|1zQ3rsn4yt4@8orK{xlCT#!NxUEtB zM?39Jf4w2mFrskp@gkR@opyz(H6Bx)KX`|NLfPBPUkk_kyt$d#X}I;^)7O1-ytKPO zNDO{&GBDI!<41=x3Xh*y7o5EQgHG4b18a@$>vz4~k}#K)ygeEOWq@P1rMLGzju3{& z9QZGaiiseASgSYt^}3nUT?w4DMe^ooAC;zXP7;8G4r?Idj?#2uVil zt4Y-NuHiCZZ2V+FkQVAY&cyM~=+BB~o?A`najC!ol6y)gRerv{DQ(SdkW?TE%5eQQ zh!)s?r58_6fQgOY&6!b@O?|+FlSBr4gI>SV}r{-Hr@wanRelCE7|>@bR|q z*Z~j^!?R8M_B&$DXo=iO5cEX3>!BIX)@W~E^~AqP&p7A2foIxYyY?~S`KJ~mM}4|; zY5U|}zSpmA&1=#iGia>BuCj^Y_KD9{CR$qEn;HFl@jX4aG4~g*)as?*=K5D-^-V9; zD+ib_>le9c;FQ32+hSrHSZ?m@({S5_8zUTo51oG3V&U|8WACU1pILv|>z73{)Ccw7 zy)Iy{rpgoVeccVOb>8r*`=P3}T6)voH);OmcB-Da?M|&?ou-+-4-$8F`WSC$-EGR} zih0evk7l3AkIz3x$MA_xBkWYh0O#$89Q>YO7ACQYG^5m1P81;yp)??xLloHMG+&F3FJf@6m90^;Q1I zj}TV=SUAXqW+%E)0ed#ne(yxa6lbPB6NPQS^L$wPUM#g}J3lt=!&=n$xT zEdzOybV#Ao(4ETnGBTv&xh~12lCUb-u4@2lP?9=0ii~?<)YqA(XbC=YWcM`G6a<&U zUsD|8gz9e4N^@u{5rK%QhSKX#xyRPte&T0TIhPI(Sb#8;8fR04vkK(JVIw7()>ax% zm^iWGRYr}wXFxz_R6fn9x1zzo`?&PhuTu6=Ne&DMxPQudk?okFndaL% zY4xMNm%o~|H@tD9tKWjzHd!?zuD;Ry)ne#ionc!n3tf_wYyN2bG;oNu)t5ia%buoP zwpeh(S#fsZBG32Aot4eaHXpmbe6LwX?5f)t70c(;u6@)mdW>xcMg6Tk_PaV?sOcVl zzPzzh;HcWq0UgT@j2`Z@Npo_M@*|s|v^CiQzqD-K;bTHT_>ASnov%lHRXm<)msn9=;%0cdlmJ4^3>>!eG0}da^f0F3Mzg2WR)NiD}q!eT#%X7m8mgS zbm^bv7IhrsG?Yac_cS1KYl!Xsip^2 z^qr4;D7*U0FBk*4&?IEd{_A31Pr_I}uz-ZDz06_w#hCxJFJvPw$o8F0h@odT3CoZTy=M+Y!Tt z9!~!7x_IUvWw$eJ?b26Rm~HNMe%|RAgHOXd1&nG^lA0Z~BL5r!4U(siGHPo!{PfdL z5v>QIW(QVYDhbIkQV|i=D$Ys}elKQXy{PCSNk*@9)+fb+W-)w7IJ$MO?q$%j6Z!Du8i$pPj7d2tvAU9lF=!ZCF>TJOu@N zQJK88Ofxe-f0v5B$vOTtz&TnCoA>R*0Y}tuv7VX@4~R4&uBCD(m{Z<$z^Sd?T~VR78y2{h_;D5xQ;GbD$u4T97KKj#>Uc!HWW)D#;&-s5F?>QVy*T1_3H?w zNk)14J}PWd#4}Jm6mjb70$Xi|t*F>fdr3Aqch}n8(4fCZT|sVpCihyhWQn7r;~Q!4 z=k{Z6sz!-?d3i-eF@OMZx^2|sdYreriLr1Jc_=|cs5IUd#jhNIEYXOmx=!cR*zz|G zXsz6uyh3-_(%T9m^nLZJ7K9D%M@iuVnR-BB zYw{HmSuCb#XNop9vTVW$Bm=-RdrS@q8ilK+Q9ybYd6miSTelu>NIUW9+Nx5TR7A{J zB5F?LO#JgjI%>epr_Z0S1O;LlikD|;ut|V;3uOG304pvjsW~?USu97;eOr-d^t^t3 zl#m4Fb$fNJk8?Biaw#fQA?9m|F7ypjdX?V2*Mi;8q5L6bRyb0=?1X`V0{k7|{g7)^ z{0N-0Te_7uKrK)D?SDrTh;m*Di=RB3bqYm$Vr~C(#^LX%{918U*3gBHnCQR#%uDlC zkB)Vz8(D!^%)5tyNl4Dn#&jAFb@0U+D^%x^tf05SHtI>wD*DXZ>ia|}QRn19{~`*{ zDk|I2vkChHm)NRRt8uJKT+Aa8N@&ugyQ=CQw*>SOrBsPPh{-vc5Os-ZxL_tTAjzXt zXQr-{ca9@Z^VLkUGSPfh%YogD6t8F+J)K8eIbm}s5(QL$CvV^@A=n0WLidqRksgf| zYu4xvL;dFVo{sTIPS}nBa)vN3JbD8(5|J{;1WMNp7C1uWD^M@GXK_(lXpyrVZwSrj zY*lr2}x{#z?68xnMdo;)d3?J#4_xLQbf7SKMW43vI1;?@)FeQF^3;mQIvysAG=~GeFa{b9BYK&ZiBJ z@0EUF1J7|JDX_-7k`hpuGMpT;pDh;k+DevBR1w%2-jhGW!=SBoR=Ou*&2Fw3`Xo7d zyqQ^d@_YQs9Ozsqul_*kCniRRcJ%_HE_j!*%QT6g@HV0)8ZFTR^^d2V8we$nj6^MK zE%FVP*g;J!u@p=%Hl)NSrOhiXVBY=M*^~1&as?PKppp-Vt$OuWVD8%D;Vs zAd(*j4~Ui-e)5uP+iu++Vu|uSd55)d8s^}f9G#prt?nx^f@tQiFD~ssv^y&+Yvv~! z6ad+1FK>-Z#_7}#MgRiRju2v}-9>Cr)3$xy1V3Gcx(meGZFoUH3arxZK+Iu8=s#p_ zmTt{l!uYe%j7UJ`uVlSgvyxl$U(j=>Z5WkqI$8$zX$2-BC_r(v4^p0&S^@3K=|L zWWwYb@naOq%bvnbmKjyw$H_2}qamRjzQFAA3tPDFG>D3wAYkO(C=_-i!-EQ=8=jhN zp?O$(S@Fz#$^L!&HX}$PIx4gffk1EvThplp3O|#;hj!u-=mVh7BbsPfL9?NqjAYya zk4tuk;S>!$Qmh$gLI#7`n7UR7)Ht-%5f3*5yZY2rHvTCjsw;D}_3Vh!~AiM=;^y2w`>aU|SKMI?J_@ zIT6yeEIp};iXkcaG}Ex2!72Gd^^x{D1hzbkc;2GJT`V2sqL0$%unFvD0>WdQLo(Qv5BW_898)3?5ip zTvQ|{4yuQEe#M2>wk$kOnm?nr_Za0w(R1K9ozy`iiFV?M$Vim1ZXzKj98sPeb*B(b zB?W@spaH07A|n79Hq>@xAOf2qsUM25UDQ`1Kn3w2C!Vh2;PoK-isrs8MLh8Aji{*N z($bK=+hWHd_!r8pf-B=4O8tq4B6y{~#ObK2suIBl$b$t14^P3;BXyU9j@a2*{;a%* zYzwX?3ZetEERq+~?f{LaVZ(;9-7nUV44~qRR${y*UWW+oggh*dPga`w>5~_lAEQT) zF5*FS1Rod~$U%9No9nTPK-pory3$ToZtkpEakR6pmHYuB7>pZ|7bJw(9hBK-{z8UC zyhj3rohy?mEm-#~5-Z#bew06oeuQC%Ss~37+||)z#%Oc`rE3B0)AGN31w6R9$PMAQ zCUcAP^Y7Bfk$>*_^Z7DhL?l1Gz3KZ?()Zcv<&}`|=#h6ifp*HXXOqW``++`d2%*Q1 zE92@|xYucEkq6+t;Kn%799OB2h9N{i0HN=GPWyvHfK`wQEZM971H?lZTNGEU*J5lv$VHl zw?WMpd4t~FyZ@jFPKd^w1XQrBB-r3~kK$kAn6zPJ5k9d<0+A8P-_B{%s?}ys;w(x} zXCbQ0gs(ypVB1td;nu1vS#mff=K*}oH3hiGM-%g$S`5?XKr%yNX!;s*q zJ9#yF$}L(8hJtX4n#Z$e^Jv;*FFl(!X>v1xrzRkg1PDr)$P}G9)0cGeEU9~*H=i)4 zJ}e3vOhhi4vewqt<>lq1-|s|J!r&fG~TbmU!PYQ-7>nP*4ESYDc39dZj{q z#8z^vi(UTtb*M!B@7HCrDW?N6-l^0NM8@R2Wjn&dMY>eF?`S?EF!WK$6wgmH`CCe+<)xxOy7*RG`9-gyB+VbiP)cHU()FT>?HpX3o$t)*|tAZYfkhfW}AbUAX2Tn zkKsRDkd|QIYY6+K(c;-NcRxSHYSAAiDBY00u`hrJN2UgRt{#yM47hdrWjck-VbZc;(PeoMAPnk@6nWhzi!a9hz6G?aF=YY=LL-moM*T$=M%> zX*b0Z7ft-RQKKh{+#F#SGRetTI#98TP9m1on+QveJQ-3U+1-`_NRYwYCFW1N^5>sSp_%}PG(A1tapT4ybP&o8&NxG` zT*3e#hy*kEGnY&(dvHJbG%O>Gc(w!jOR^%+B{xAMGDXDUdA@ri;OYj6bfw(+0xDkMKDapxOV7+p1kB-@ND0=tKo#RB4>F%RC<6n{l{jyMI1G-X!*?Nc5v#_N!#2VJ~KIJt+&+B;U%nW10G z@YKUPZeszEbQ&$Rp7}kt=-IP~utRPf373r3(z(S*FA+N9<*4P&!I)7`DsjQTA{%`I z@BoMvPev6@5kfY390&O^v8>H-zFvMgU}O=LAD1POS} z+;0??SFIW#lT4s=HU`9&y3c?~Mkr)TD?OnPM^=2+28gj5!2F&0D`QNs>?q<=^l^lI(%4;F1K# z)o)WhjFC75l1fZGOA7=LBh$*1=~484Y}vAfdW8nSJUV6ij0cfZE0{&vbgeX9NEY?! zKPjoYlENOmIIk|Je!~XZPE5GmG9ap5yA#yhmNF7S&LmPUm?p)xojZFbuUJNcO;Cqv z;(#5qzLwvI*pof1r?_qb6X@Nehp6~opyM2smMx9D5mID2`Ju9DVbN2LL?540H{15K z%Y>cgc8Dmm^f(cR<;nO#n$RH$eJu*ld;gw!NWh$I<|>{j%Y#_# z++9*B<$Dhv{K7+3o+HSw-(aagha?wGBysz!d_1;DK7rbXDBaDvD;Si z`E$-JnUv5l^ZjacHHpfDCVI%sr0?{Xs`)D=>~f!^r`NXro#YRyp5Ogmx@DWU+CKfi z`G0Zk=YXv|T{Wq^7DB${8r};yt*oO%uB~=IboellgU+2hC%Qca7;l!4qDmdU&SOsX zX>GlN&Mu+k4HOLs8U0B8@<~eMwc%qcKbSvEy|Py0{IByK&Kb7!%8RxAwe9xWd^wuA zD(}5rQO4@#6@^!JRDFFp;pNL;%TDK&ZuR zH4w_q;fu-=!Hmo4fyHr{?0&K49TR)sV!+GFvOEXVmy+~!9x*dj>-@X4Im4;5108j8 zLTVQA%TsjEM*cB85e;j2gZ0I)F1vC=cVUqoAwfAd7QbFUna^d0eax=A{l{n z31J`THKxhRfr0D0IlZ%wo9I$L^4s{Isz&!4?bOY3v-`OR52nY59}m#2c+uSX;`IZ{ zaStANu}7D9Dw$rLGt{ldd5)>e=k|UwIG3=@FW`aIQebc4B9`?THte7TDVQ*(#NE0= z=b9+s2C-%H9$ZazJn7%3&WGb2CU-PmseIxyLu>TRcBlmfQQU@)W%hU7m-kQbE{fw z9rbyhNex}wzDTFck#dsAZK_Q>q}pTT$Rk*00*yF;QkjHWjD4`wJS_Nx9D87H!FAxa zYck@|gdhWV)RO{A&2tt!)c(A4)w3=zS7!F^?Vb{t@G>DQC-UQ+L6!#2N-4i%vf~Y>uz?>jX8e$O3v*}It+f)yHDIW%XQ67YcDH2-EI2lP1)f- z>kH4lsZL$qL%%9qu5CP%fQ-?G&oV2tvt^m!JdE77ECFF0)Wz zC=)&D95_Rd1QQ=g`72qOf67)$I)Mf6=2B+F0o${RraJci1e>5J0)@gt;O>l{OJ58` zX)2ZGq`~-gDN7gpyHEd@LYMK@`@bOFu}*F%p8X=xfiUL;q$Nxj{)PmNp;1wRSP9wF zN|{1PnN2!kL7FJ9_37CY1GaY++zlz8(ID$3Q;=moce0+c1k1u&L>fX8{SxKcVmK4A zjRDevok+>#L&z0nq5(=CBB=^Y7K##~EIjs1WCZ)_R5TSxN>C#;7z1w(8ZQX~69&t< zCc``#YtjQq3~6YQ*e>#Rt7_n9IJROtU9mFsytIO`UhG6j@`}7LRKuwEsP!57`sRnh z(|eD6J#NF9djU;al&Ppb_w;;WI%m4=iN0>G_QMsA4Enw1Z7a3GRjz$AIvmYOebl!! zR@usEUD%GfZv9VO-yLdIb756WcsuDPnt`<@2e!`ZHRQ{muyTN7sw-5; zk{8oBhP}LHaZy%BTEv*jM8JD&Y-L_A=4FkM;l)hyw3YT0Nh+BhsOdvDVX`s|_O}cl z?g2K;))A4-XSz1v;#sb%D1j3L%J5?F0FjqWf?Y~BDy%zl5@w2yGsJS7m1%ehR3;>` z{|{%lKXMC$a*u(cYGUiqgxAHeAYE`);IbKKM2_q%0Up3N@c*u8DXOg*PWkpOz_?7U z6oQaZJLwo>lpe6VB-A~yi-Kn31UE=+KSa-)_L>Gny*!T5&kY;4>d--QTp~0WRIT|x zlS9V0XIc$)f7Xf<*1A)t-J!G#`r$1|lq3CREHf5Wcyy2=NU*bVbK@6Di{7}vO6Yro9XDGMS8AiVrDczUofNVIy8Uq)e|u_JhG^ zZ{PxL^8{Q3TP>3&8!E`!z*2(#Ca;)Dk5uITyW{YL` zE{V`Jafh%+^21O3Fh*|dEbGXP-7l#Im1sFWw*E6{QB$oWP0Xja4*w#@GlU+!$*@Yrb|TLt=kMYu&y_tty13wd!?J9u^+!D z5g4#7cC$2o@lFG%wff0S1evodWPXI`u~yTO5M{T&hrMwJgL4|?WM*!mSc3Hv?%NQC z%F{3>^+*BTM4~;7M6MWWaIh17FQT3Xu16UJG=lX@2?Rj{Ngu!nm0h7QN_hnMJLEB^ zB&7icq`}jZpAc%gihdUcYh%aPMgp|R+m~&acF+|T0Zvw7;iCkR zHhH8|d$jkoL;C^)r^5(R1KT;v8xstcoemD(N^bEafKmx~tlS=IQ4umC6{3Yudn*TW z#pW`^fVo2x*oxa2ihQ*J1DYL7UcoG(?dcL{Ipod!yY+i;bOb{jyI|w!-URs-Oi8#R zO0Ytqi1i^Z8pX#2UuU7&9dzDqGgdGSIvSHaYrgRl$PJeh0Py4FNt#sbVF$(02`7E+ zq|kemb&l020rd$O2+&71EA%rg8@M@bTkp88(j8yGzZI?(OiJ7=|DeY@-;>x<(3pAW z82i@@>j5~GmWISHDZeyEx)~f-dhlkZ&6171{O%p;fbsg6ZahA@xYYT0Y>)I?wJO`$ zpzJAY2d($;<BGwdGNfiiN1Ve%+?yOuNZP7Y>n|eA=%e}}$Jg^zaBEVY|C_pv=9*5w& zy=!8;`%vfS%v_V^&jptn`bm3S0p-*O#L$_&P2{!fRr3nxw}M!!A+J zGm0v?H&7a#Uo%GZti)2T(3L|VPQq%8;QGl=at35{slAk`E4kH_0HkFIUOFCpCc;nN zKv^bC%(+QVnRgPbyzQ%~F{&>7qltV9a4G+bhCoSN^TAL=UkH+X?%3$h*Ly~GY4Yp755Sroxn`4IWqP&~=Ykyt(?qQeMLe0J@(wYoO@WQgY zZJfZ91}r#~zY-G-x_n4=!PX>du2T%9Ym3;?3jP^RMPg@w6*w)4GI4?*Zq=^cEh<5h z(m-B9yLyi>wf6}j2FIA4J8LgZQkD7 zHR+TvcDeVg(oVkE8w%42s*9qC4c->vf4ur*-MWZMpZLm_%6nCl9CF{iyUnCj(S2dA z5D?!6PBLd)#*6)@H8@(k?c7Z$ROi9mxL`tzYqz5Sg{7Og(&c~JWb7sA*U?2=jIa&E zDw_;O$>R!J$8I(5g&IY_W`2v1j>Sj=+=M(`l|LOyjOb#D)?i|yN6jj&4Nv}h9eZ=! zm;&ogmGOUBhg^)@*4=GPx7~+ov=`1w9AmgUtj_-_3`o^;2@JjTA!aMz8Rft%I95S z2ja=ay|JA_k;_W(jD#S%7NKDA{*ydA?1zy6w{JMqn@()1-!z;Uq#AKzF2;CD<|X-g z&N!33YTv)sZjc1=m^}%D8Y?^R<5#PoT5=GA0PaQDy3^}ByVaJAdgkJ~=fajHzgJ|h zQ4{9rRHJsTw8Z~Ag6aR{odO&E`hS3!O$aAOh7FS~{Mj=))&1jIO1<=RoW-ZCoBQnz z40pdv-gwonH|yyg7~HQ+r5=|1K&;aj$g8B}U%l30LkCR=CpIE#(4%r&o?jlGalfwN zWV@SJ@`_uqBdH0R5ZCEXo7M}aQ4*7jWck5k65%@tyHn%;4b9Xp5<4sKhSh^3I|NSO z(cwGy@*2a)BAzk1#fLm$iOc7?6lZ9P4n~!WhvTGgk52y1bgk+qlYBmZNS#ez4YSf6 z-|p9&qOU)mE|f$Ph!>zL3gVRsGW?mdXgIpKA?Fs}gG_N`u7)&#z;lqB4@A)ADJ6mV*Btso z3KeoLK_HE}Hjfdr>ne1A&>@nAi;%b_aSny7Aea{hwB020CnxL5f8+u}=sdsgJ00BB zfda=}>D2{sN`Tz12U!f^bUjOEw=*zWTPFP1*Sale@1K;nzGG zU8+FDOpxVwjEGW3Y|BUkBx9}lL=`;k77HttVie{4bQ*DNLu~tUSfiq1)e`E3n5i6yRBB>^Pt9{HN zgCY|sDalY`CyX-~JZ>Vr=gmNKXa-$;;nR>-r|6e+RD z@HSzy@_Ft3nC49PpH6aTU~QpMO>4?T=L8^YC`2Ygb3kmiA0=GI`_0ANf&fO`CzkV+ z85~0Rq$FzuN1UP`DRd6`bqgCW56$CX89LAe& zk$`jnep?M>D$kOE$N&ZYj0+%m_$n$;GSE)!Ex_6V5&>GOJh;?XbUo{172CzhA3mQ2 zIg8-)jHm{FDM(AA99H*?%&7Zyc_8QVhMxz-9Fwa{C7vp~bLUnjU=v z10N9A3GIW{NBGD;&ZVM+q^U$%QjnyS0MCUvS2$RHBg}114pVY3B9JYlA%7aNrS>F~ zZ4Eh-(#x~V(z2ND{~aYIwcca2w|HMuFRH0MoMCXMOJpC#rYa5Fj8m|is@+hx_=oW` z*L>Qx`>&@HRxe5m9r$$N2kUPu#=L*}GCuUWW&7XHC;qf`ZgO|K9kv-iwprTbZM5%Q z1I@(CG1W2eY9Hye)SLOTN2N>5v^ridcN;Fv(Yp|I)Vbd>g^ZwPCw1H1vn3$qk#{iL z6%zyEAUP8pd3p76dWxl%i{O|{oEJz-ZX;-*#ru>qEqnINZOa_%o;{y@c#Y+uR7LOi zBQr`r5}44_)_ivNR%X&Jio^9M`w(RV{4RwG!R)#@7mXJ#nStDNVnTmBV;Vys0ox6Q zePjRX*Q-p$si1-6ez;rpY6Br9TVHK!rPQeJ5c_uq?Dd^NS6^>k2~}RnJr;dWCAd(O z?S0Law!{Aji~6!qY%^Lmo*f2dy;y!cM~V@&P~IF02ZJ~mvDKdKniaqGH7wy*mcz(M zqECNHwen`u@?u*5h#VG)<9_?Qd~Z{vSnP$3N^a(K4^86NuZ6!y@K`{qh9o9+MSD6~ zhp~vX&@M+LH7M76iO!U0kHdYw4EZd9L|l;az6{HP^gyq{4w@uoCa;YH2m*at=veLC zS!P9JIuj~Wy??1t7Exrxd@%?!B&Xvf;Gy!T3$+{~gYtQ998SlHp~VB>KaU6mLX^~6 zkN1G7e$ajpu;S{lNOvZ@iYSBAIT|;aHMx1`6dON!75O$3D6*zM4{sQg@kpL;=nB!0 zEkKqEcC6XUKUS8_;m!e&0|RiTXcFae7oWFrX&$dWzrH)CZWuDawGdkH{o& zdWB&g_b>@4Ls>@>InboD9GVKO%jOJ*a&{gqGfz)TF#*;^e*~Ar!goOM6CVW?FDAnq zLOJe7C`%9236o!Td#*O&B|j(Ve8YSl7@oY6%#yA^AAs#*k!Wc~OY^gAf57Bl>(W zMZV0ZC7>h$6BXqZ z86yholK}t>SDymsz*Tgd9`dpJhK9KYGWv`?V1f*%TSmkfkh3oZEc6GBnurODHEV@f zB;G0+tdQCs3BDlT?tO-OUHFS1dD7JL~;48tff2ENM40*DlLCrYX;g+jN{{<6&L ziJK5&qQRW70=w98_!@y;Alk`DO27ovte{u;!hc%7ez-X-V>Pzazt8j|y0}gAf%AU9 z`Ds0o=5($EZ&(+9B*8uB=vLfvzW_gfLQpGSAbT0XEDS*$Rq||P*WOUomGTyoQ7^!+ z<&n+7J&_xT<2yy88X-w(KE<$^tbbt%wMMuO67WE`=) zMnt?<22)8#0%5nXFEDb#%qE_p<~Zau@Bt6}fLIf>E@jn zPapu{MMlcb{&%mpT$6?=x;39O1JUDD69s9%yA47@}DHlx?esLYNHI6aK54Pyi#Lw$21iiPK3WZAC;%vjRJ6rN z>ptw;$kcwzxXtXZ%+_XY)8LdohQL62sNESH3oj`FliIbsp2TqZzu^=(Q`DP7n7M~K zTT1?0=!6b_a0Rf?c^NS}81U|@4DKav=#nJ@uYjsqr9!fZ-a z*Fdz}SFQw=-GbT2!}B3^v!3_1h{MW+O!n&8w{PRCuclL`U}p7rYD&b)pbS(8+hs8O{LGNDwq`WH6|2?PR zjHE!)KS8|+?j)!(F?tv=?HwGK5VKB872}xbO5zR9p6w@Pg;!Sx6S&bb?qq>qz$*&K z3isRM;!GwO=5w7`0JZBMHNV^Z#gS>&Sc~n9n!`vkgGww!24V{7!E|)pdRP_9bj(Bkg zKVRSY7fc&LA{Em^nk0X@jY1=h#m>bEV4o$FW6crXu;lR}h(A0?$CCk5;CxYTWz|@Q zOekjCiQ{4WY5T$vFrd2Ag^A%8_?zgn;dNpUAco*ipEQTd{w|u32M*{Oqo`6hIwttW zjiVPhRh&Q5d5n&LtW9^=Hg=7}(}!baOqI}|jo@kVr)YvF<@2!ob^H!^d>osL^!`!( zfB0GNeC(!@`*^uPq^u4V$U}E?rTXtB zUVgg_aKwMe@)n!~(iJTGbAlW$)SETD$iqW`*bM6=n0`1F9XoeZxQKWAy z|Dn2qLVS1b9>voVOMc|qE6`}H)yC3ytzp11=fX=X{lslj-=B}03W^w|y_D(;1_fV1Rqkd5bRV$1QbGAHpl zj+m0M5OjE4Hj%$2gxA@aD@LtxgxfVkx3WpYpZqJo7D@_&S3+|dH}@R&$k^j8Q}FgO z3y)(&J5GWHvyg0uW5kdzmAnWu!KaSVp!&i;A!p(wX($4s4<>6Ef>9uSK_285sTE5l z9i_D2Je&-qL25yu!Kk0{>PjlAt(u_1jXURl5aL_9b9mzaA~Au|*LnDwH_ODGQj;gjkYVV$#@J<~xG&=Ei9eA#{5P-a zJ%lcqzkSe&b7&8dpB;BDX$nFj#R-S@ojXrcS2{`9N{lD;$_;f3xw$_YoIHM`Z4z7T zEbB8o`ZRArB+(rObqwVO%r@_?0r(WXlggqHYe+Bm+@-QgjMf<%Cn21On#QZs+QAGz zi`{TXpG+HUi4XpLNz{=G%?IDur!EugA=U@hpTX|;naK&~Kq1}?PLaW3%^l!ooOd*? zZnA6%2;2!}^y0b?^Td3EAszL?vkTu+T4q-QH4%aQ#B_tZ+))DBDC7~l17 zdgsogyQxF8Aw0~TN|Hd%uyf~>NBE?DFk&JB4|X-|Y&u)wTCz#rd`2Idbs2}{m$M$; zAueD>U+id%B2%A%X!`<;O?Pk@y5B;n5#KYoUM6*fGMzM1%Gg9R=}~=J!AzOW*o&-b za2$ls0a78snquW!D33KD0^&!*cyBR|SjWr7!w!=q@N*0gE8KmE3Q-9;Y2 zHW~yB_Y%xZP~Hpj8|knY;as;rDD5#*aobArAE=XSlLlRVOjuL1AN*V!HOrnoqxSzI zkC{IgD`LiSKclY9@pKn0*#OWnNf*1lKo3uBWZx z=vWCd2|G4oqeR(7#D2yQ@nB1O$rxD4SU5CVuWcK&98*?@;?hmu>vw3;(oHOb6$gez zY{i>cjAYB??_jG1OE$5M{aG4^$)j8UNnwD%g{W4*k47a|{$$@kiz_xs+ydS0#O2Gr z1vBPcDN?ri7#tkBWA;kx;^G$&*jN#u5#>c%3|~-yT$~16UR9o` z(}x)k(kM(GO%^$37>O2H0s>%CH3cWP1+f?+qA05KZ%R|Lwe{(9B6BC=*fK4r142G- zHMwq=DB}P$c#xG&N5=8UbBax5t9rU8uMXL_E3ckhRntAqCA)Km8LFIsKx@@@Oy~hNFTs}RLvjR<-b4Qt zl(Fe@VO@!!@X@q_Ka% zN03rRF@0>1I!FXgoEsQ^!{-7aPKmVIQmb>ir>)uR(6;M$9PaGLz&iKnVQ7JT#^s8!fl!;W(%B&=5sZ(@(xgV%3LN#A}l0O9}Et z-baNCMS6v;(h~1^B-vQzW^^ch;%k3FZ&8Kbe23EcHJ{U0MjUn7xt-#?T6DPuy0$U4 zYB_w*16 zFO*RB0Hp};ByNdQes2&y5g^W!Nrp?12$U-S%Bu2W(WoU1kltNUq6HJ&xp(h7a5@Vh zb({>>t!`>3Za!X0iv*I``Y~b{LA_<#ENwrt*$tVzDMP5nK-M5*owaCD5-00!*y8I< z6RGQYcPZQidD{H~O|deU%|LFWfEFK-d+I}A0;I7Pz|-pC(YswYydFKTyt4t#>94CgOSI_J&AF1dw6@(hrMqHOlVEXVr0WlhH@djGR?Zn) zn4@f&^}OcwXT$7{hkWkB zlJr|1$2%-_DllE{qZO*W{L;#A8pqsDZBA<(sx(@CzjFGa#QRB&+J1Rb()IVWnQ;XT z<|^DbFuVIz&AjsM_@iFrBr+jM_dVly&olTbte@|?Q7z4~)HXB6}W+r+sb^Pc2(*bmP z(+G4C@|naL8VY@tFD*|Q}iTF^!*qpU*+6%~onn2@a! zWvi4Fs^@){>$Z|%q7 zI`{KVJ!(2mi>SauAj1V-F8gy)Ok5Iq+6{3^22qli4jxnXCyD-Ud>1L4Y5`diZ+x`u z5Q-GuE<5cbHl*O;+ji{edgtw@k7t9bcA*h1gC}?pDD~;zU$$_j>X2of0rp3jnvT1N zTf?Hi`htTel6$ltIJZI3wHhO;Tu}mHlJq63%a-N?<1WI+BoW_gBLX}8LWlzlSP(|e zh|e%2M@-A)g%A|d*q;`QIA1OVEgC5 zC((Q-vR=TBe$`|dqK6}c#x(50LDuQ<46muKDx{u2Ob#Fw64h2gR*XhCI1}}1IDLU} zuO&1~%SN(7TIl{reumRYj3nWr(XAfzfc&gZIM!Sy>n{-h6`q%l`b8D*J8BQ@Q9qLjcRD$jXRq>gFX|BK+>gkRbOm=B`uqYrA_HQyc9u> zJ|e8xkQ{Xy$c$)SW+H7m|NZ0hv?%=LX#Kyr!yF+CjDTQ9N+VcVP<3I@vdd5X!&eI=CX1B^WUDzEfWp#^(ocWb8HD3l$E7?Hf z6Bw4tbi{Z;H;Xt-DKNqBw*Ui59unE4|HbvEsNV@ojW6eH?Qoo-v|-OHn}>tbou)jZ z5^S7$=Z=sv&iV$tn>*4*H9~jp^w~`lH}<;qJ~%DY8`-}iS~+V!soo(WHTC|&+?zvGjVl@=<=<@P20+MRuwasJ$D{fjOm z+Wzw4%I5g`DnmO!Ht=K97W~Wo7lr)uE|ViWVwVn{L|P(%02Vh^aAp8!4vnL*Mhrj- zp}yem;s%ThmYBBo>IEv3Ac!|c6_)%LAV7gtFJXo*V>ehz#}~Tf5{-U??LcjI^n{4? zQf1~)ehUT6SsyrEB>Rqqgw$h^1sSasUbwn`ILQ(W`Y!F-bx13`ap?`2`-9*0 z>O``RNbl9<`Tf3?d)&)i{Qa$oewx&0fY#FWk&*y>{a+qRB)g*#7=8X?qB}hYOS=0M z8Het$rdN~p%Uq9?mJ*!lR-6KbI}0i|E`oj+UEt1LyBgYG$mYB{G?rX9f=2F$@w6tc z_NCY2N8$}>Vldqj$yPiNHur<9CVjEXb=VF7!;+>~lZ54r^B`=i2y%2{C`g!+*vC=! zi}$uP`H54P^dYdzPzpDMd(kCfzJ&`-nm-|uFXSdvew|s10y#?M3FDsWRk1yUpnS*+ z$mA@EITKRF*vF6PVnN59FqMfI0zE0ok7iPKfdZqBbfdLW1F=GEp_Hz|P~=gh_oy8} zuj#f5sr&&Fh;Yus8TmT9{L`^Vw&gqXLVA=+5%~VuxWAV4pPzj7=ewE%<2MwVTJ?E9 z%lO1!>UP;jRNPx0oUOBGm9c)p>*PR(#pQD^mG21obI`fc$JuKf7M9=t@ae3hb1$=- zEBwkk{yz8fhOu;8*y5U(`PPO*e-ke%xtBW>64S4`55+|}LU`R`s=-|KQ@?MIgD5gebeN=!1zH!j;7l(n0*D#H3GoMLlg90=S?a)3 z5xJkgR*GkVR32g8Mmx5pOxsSyL*_`Id0!ZU*7!z?9zs^B$_xW zEHBr0r<13jwQCkmq>(O{g{(O-SFCL<51f}IjtT92SWvd7rz;`9MS!^!z=TJ^o{7ZoGWeLKSo16wt!E^>rXDa_WB7~u%+y`K&Fc1U{5|XBnp5jseDd=}2{+-MZ>0Jy;6!Ud`VW8NDQ|PvR*=Z-*StzB(vi_O(gZPZWQU2T=S^v6|Q+t{VSpu?))4Tb5z&jhT`& zUf__RVlAs^e3gDWYii!@Teor`>%6AbmMetM*wpKJ-+Q~4J>T{NPKTA!lVh0>{|E{$pM?M8QS;fuo&j;G8qA2S^ljkvLPk!v zg1t?yZGANE=#{lsMkD)YnxhG_8EM_#3@uI@l=by9;pUL{o%EF$gqLYMu$$$##D#K>N03C zC1wm_kK_P@i5R6Oq)mHqI~aG%q~gs_oBPplXmrG^A^?jo#jc?ClL`9L0j9jUoMk!{^MI!$j@!Xt46G z@mmi~;X$JEBQpp~-Sax6v;&yhRCWjxvJ?FQvSquW3oFR*HuuAi_W0CtcF|m`Z48^f z)QGQTZSiki@Ba6{3T`(Hun}pIqx5KfK;lK*SE)g5$B!iuq*^wY#!9}hjvp_I!8-Pk z&uTV5q22uZce&ezwYv;)G!`Kxzd?)I!X?8idQ)`M#24X#j>1*8fr8q8>jthhr4n_< z27p;#PG_WYf6}c3tr;o^k9c=WG_R|t`DkBiWIpPqQ}HwKF$nrN43GC6JeW*8_{a6l zR(1bL=t@EiDRCX*FQfUS0(F;WdUsmG+4W>Vkwy(DNr2F0KT!1wgZCd-KR>U}3xeES z3IGG_{Av{egni4Tdo5HC8?jG^+4ZFNrfYX+4h6s=3&_MWME%bnQQQWDNfFbwMZikh zl{C0&-wn7xOjEa^>?5isj^P{;(Huz|ADuxeHTerpU|74a%r?qUK4+0M&pyzylhcbG zE*!+VzwS;O>~@-gi)CqpvV<88Jn&R?Ydq)|sntKPg_prW`@-d476=zn^p78+nfw3y zUv)*rOrE?`G&_o0chlXZBs|%=|N3!06P_gPEP%qa#ikR0CUHQ3#_NNuYA{Q2G z_tNw7n7M~Wo%~fcuHpT+SALr?_F>w=X7T4Lhj(8y_D$U@+57C)aJM!~&DZN04c$@r z<(G!bD+{WJge~!VR`F7)?)BXtraC(2V|=-efst|ejMXzt&1b|`?=$iHqf=zal|PVk zuk9JGU3{ofbM-|pd<=UGv3{0Pa%u4Wr{nskSiHD2W>dkzmkH+<{?hB1Rhr)`i;g$0 zUp?(&H7on}Fz5-*-UnUZwY>fi-;E=!7VA&Ab@jfRMVRwGRS%QiDqBBwUz}Gxc4fzt zN&8zB&8eP0QmJ%B!wNK9GYXaGTymT=xc;PhN_~b*xfx#H_g$Zp$qM}*{w3{>>ex)5 zJ?_x{MY2Bvk? zTc2NPuD$lk+aXP2uKe)*o@OpKeK`9sjeOs0osOPJnyS&rdrJ_uc9NJ~v;^oajji$#|>R##{vn2oN#z|KP zcJ~}+H*4F2Q`&uXH_VQURq?*(9XWg7&R@*S63Zf#o0r^8YGvW$l$m0&J^rO~gVoE^ z>P>a5-W7d&(Qm6S1n*yJaVuxHf4jMZ`fje8Uo~-7Wwyzsg^NEeFP>h%=6s>jH;SKYo6qy+b3d!5rvTUbP{x17+k$F{qcU; zpqOv(JKJ2CIcQgRz1=xGGE_HLxjz~l)ggOer@o6i_chEIGp)+U+OPRRz59=!ZLeM7 z+sgV6?yA{(lZcStbDe*(EghaZ}8#|b*j?XJCEqI&VD`rWzcR7K{EnmOe6nXkVa%xeh>k5ND zdwX2dZ5;UEx?-(M!{;?=Zt^Pge8Q~t7PKfg8a%5y+azIKX;oy?w9(gHZu&Ltm@)WS zzn(XzxLyo+ly|mgGbT^Hgnfb-NwINc-_Dz=)(zc(hSu@cQ%}9m~eH_5^WOZ z=`7r(}a(lv-&EHhfVlv_`?g~&64Z} zDec^S=3`pqBR^t6wl|IKH~D98+sT@3AFy}$v?k%o`F!`su+`mE_qW{{8F_Nksr?Na z%{&%+c=Mq1D*z7UuehCFN|DDuw>aRVZocZnLx<>Fsi7x$poAS)_jT;qLq+#uxAi=+ z#e0?Sys^74IA>fp9T)!lr7fq-tDXDYb?7j2wfnk+0K-n3%^o#f=ahN#Np)HB=4Kz- z-Kz;0>=%7I>Nlk|FO4tc?)oFcH~Dps-yda~n8kUXI#f2~l5_GXXUkb_XAU}Fsr1YC zRq0j>H*Pv*H@;Ebh26j0-gNY$H9c%fq8;24>;_$2nK0Z!Jt*kCdDPG;&qgotX_t9t zd427sO?qU$D$V3)C+C&sl~k5gd~?ZHZcrHYN95t?-A5ck&%}?Mw#3L-E|ce^9;D%Y zZ~V0C;d_YD3Ar;f$~Hqx>)SfFrbmmWUFyC$?x2@a;oFt1rp|aiYSkdi_wE?S{%W%kLW1ZKu&ib6a#NF0oHTcA}=mB@J;^^V+Zf9T%Uy9XCaui`vpHIdF*6mF-(uKzH^}Px!0oMDS(b z-^NzPH+d_654C{-&9xo;OlSIHCYA&)SEAP_*ZWJ*LBk#Tu7f~cCwAP`qgJjT{gEE!9Onkaoj~k zV?d|RUT-~<7Opz=<#3{P)ROSXV_s#4nz-*<-PSv#B;?$x*QXo|eqY%rV9dxhd8heI z-zOJ?wsiPh`XK9Idee6*qibf>bNIvl$oxe~ssW3aD9)cdtrxS)E4y^4)wAK}Z;pDN zqV90t`L1(t@Q;>!^v>81$ts_p?nthw&efb9biz#c)cDR-YkmrTbY%5`ldAR(XU=E* zc|Ymd6`jG3_g+s~UH?Jb4r{xud69Q4@9OfZ^y%-LPrc^s_sjV-zG&|e=MCd^?&S_t z7`3)6nxLzG@a=C7MRToG)Z<2`{l{Gv6pk`h&GL@N4}QTNxj-Ic4d4!WGP{W9mr zJ4WXY9%_GUw$a_NxYOJBe$&MkzToM0gG+^d6fsBJ6p#J2UMItWZ>PFMCESeCn)R)x zviGsi&vuNn+Sasue#W`L88u_n1B|bDZ0@%+dEQ{xlE4468(;Ov`%+@HZs@^ zE_T?O;oDG1LEx)-an5qeiT0 zpAq?Ur?}GmG0z^)++~-SVEe_ad`@DI%6E74J#U%c%TAr7-Qh~@qUImVmt;8mrbqsq zVPhAXc*i|3_rBZipy*L5JUs{Z_S0@B|6=YwMR{FMqgnd7VQ%SG`c_@^?^w9_`Fp(D zZIf~3{N?s(cYiPamV39sO1r}&b=SId?!ms+QRj09>g8*( zI=s3*e16?9Y;I-6iy5qT71hNF^B$*6|Nd}BSO-pt?y{u09t*%#v&Sf>9J(yAL~r%k`6aFa zOO`19IG1Bz*3}^WAK$TU(ZM5&QchNlh&?~M=Z^_L?pojS`$lh()u_!semTNr*#8s1 zHXNZ;Qr~&l%pt%2wtVQJZ8c*ayiH%TCahpe?bY4z`o&DC%evu?5j&?YYSQ0RC1dEp z#4#t%|8ya9OI;{h9;wvjhH^^A;~fQR=8O8&KJDD3V_i2_To4Ty5p@H5J@E*DRLEBC z2F!XnJKt$YY=+`+?D|h5hQ5z|ck)l$*Bi6b^!WZK1jJw&{Q z4$F8L8ba15gfj(@A5 z%QO>498Cpgr?&OUTezg#=k0@*lKL0zNP3V9dV4JC^s@^(phwPE{C711D1Q+c= zH(DCYLd-z>?#8w7+|rohH#z1n`ZYcmalCh&y=Bgm-?EiD8MbcyQ{Ah6oSA7!t8Z60 zsz!ndA~9&5=M?LTn3_<0;nS4DnmtLH6~0om{FclQH=X7l>Zv!Q9Tsd!!;jbJ?qfy>(GW82~B9@ zrcGd_24(3Zg(nj4ctOUe6pS^CAUil?6Duou*GsRIG?dAHnj$FJi3+&=GuOOkfR^I; z!GERc20wm;Jt*bsI$_W548t(OAo?zNiQTxju3T3X4p137J171}6drEE5|~a$m8l2x zzGOa6CVr6#7z;ZMzJ;LAz{k3PrT_IwOt5N`h6W=e3eE8j=?s5wSkV=qpPIC-wLu4q z6KaUa5sJc~1w0QJG(sI<#6>tMbSjx$yHfsmkuV$?ZIMPBlgdchn4XnUHVvaYG-*a# zS|U~;992Y#YRwVd$_nE5b^k@C1OsGXlW!7^J=#w^UwTDO+j~uvPnEah-pRZs4gQ)Oa z!bHd0_*;&$X!9VyG7qH(gb6EP(~5&2?4hZpk*Mgwq{ z0F}~1>yxuG_SDSiQ4ijhG;TH`Z>4^GvmLWMJ+ljMymtz5Tb*H5{zhM6)MbO~MKLEb z$tWydcK(l$f)zcZc6i2JYVI|Dbmzm%6*Cr`Ty(uh-}Z;S_1+);`dmXr_qFsAkXGU94 zMr+0RrQ?tmI5$Z!z2P-BzxO$8?ZifyQ32V^!kmS2lk|RNrax1UrLf|3?C*9Io(H=Z ziHqyDI?I`d7lA<5xqMvqF@0f;fWQ6xa2g*H5ad(9&-VBTzyS@3>P?hpp~}izOD4l zg>e)7i1`BXsTIB&bHw6+N0-(B4yfD=@U>93X+!A{)))s6Jr`GLjuVy+%fter6giCN zN{5op9aC@_(jJsP79*0P=pqK}NB}Xp?Ld$pjfxE$OPE7wT!`^0ER$rENl?Is%w5mB zZmtO{sMlh;sDF4jq4py>8>iv=Ao;+?yq<{b7evG(?jOgXPja0tBAP2A86x78H5J}9 zLckSkMY=0FCD6%g*#eAld=zU;8AiAIo0n3%EFmCEqg2RloCko>3YxXAggeEvmgvE| z_u0GGL=Te{dnLlUx$F!X8QD)1CQv85Ps3sLGPg%isagTsa%yyW}4=YiaFkJG2Tzi0P+e^BP6UpFMVm9!eF9P>gxSX^yB zv^@L45VgP(hqH>k*WTQ7UvV$dw#vQN*P;OP#H^dH=LRX}#zftGazXiUM&K^LywC-G zho<_9tP93H3EA0lu(eQE-wpUpBxBOY=<7ROQFP+ykSTJp;#Fs}%g{O0QE?Y1lF~2< zW?BIMAfcBURlZa)pxrE+68^Jj2*CvAKsBlJ2g+rTN8XgHsN6BgBQh08LO~FSKzp6x zNf|_t1Hp?Acqh=)re69zQV%_UdN9d+z=Z}#G9u27sbyba6S ztD!|M956KMuXC_C+{;F-5 zU3xuTcXMFS>>a7kZfD)A-jX_7U31}M)43X#4qkfFb==i5t<%o-6Ut`C>^W6tW0A4< zzxzXqhznPKDSfo_$;XHujjzoA!K?f02?z-Ne(Yd+`)&ypTH()HPQQ0>dG}{)KhG4S zRag-jFolBQ)QH#px7QxkJ;eD{(s(9B<73u+>O-szs8_$CG-$)3dW%CGBpDRhKZ}GG z8p?ZoeQ(O=3>r3Ve;wYiS5%a|Fk0mzsGOId&u83Cn7tOe>~zs)az(9GhJ7Tv<6BFF zGBO&u(?XXsbb!S&Z0_8y7&yM-H$}IH309RfDHo8Ns@vE{oqUHPtQsK8Z6Jap3Nb$n zgUhXezQ{sn4tB@Qxi*X(IpCg${z7L~J3IyiwRVLw3uMV05Sb{S6p=@G#Q~5IgQe^H z+>;|3IXPG)-4Fy}*(s214cBFgOQfiUlq*vP4zzj;Qc(GpSt_K;WR6#yd!ZTzFu@Wc zr(yu-%QDWIP$XJRp)DCi=FkkmS0-H<_sz+t1Jj3bT6 z@8O7|g+;m->aoPa445{Mbf%wQ*yj6)kr;Q)ikTHxjPoo5WX z+F~UVS?kB=mAyi<1{N2ZN8V1!NlCC*>f~cu@zPfDZ$F)#pL^f_YvZ6p7G$v|6N}$! z?2KKiP(Qh%nM2vStL`dA*VP}MSQIO=ZT1rBrXa4O)ul^4Z&p@Ftb3)7I=)E9qjn@M z9;|{{4Q3;1cwxZvaKKBm6~zNj8=zNo{PK#5#xt#{{x>VdVF0@4UgIJXF}23x&cNN>y+VuB(1A=48%+ndPjAeyd{#f$f944E6k=Tp zTcKwK1u&GX>&6`I;KBzd+Cc|#AjGC~cz#?f%+7`9ovOdBHXw@?@2gI5qoCzkGH4F9 ztgAvHb?Zk|M3n{B>U1h0|GohGeL^FFW@zy`su|cI(4C zJiGMuOV3C=USY5)<+5X9;;hM@qwI_0Gve5cqDyZz^LZ+2*Q!sutIRVUub`r8 zY7_4goCPJV$ew*ZkKEfY^ z706`Pq7e1mqIIMOx?25Z5p{4nlhPrD2uF1K^zM<0B@qz*M@Sg@pW=Zh6K}9v#P&c` zgNZDrB04|`T+oxpbOVkw4MMU)uknb2A=yexzs{vGrbYT%8CR*(e=?tF33^Wj- zj1UK|rZJc;r=1uF@nxdufR)&02Bu17=zxbx0Ab4G2ATl}gk%PzS9_WyoQ?oJg?*i;#>9 z>AG|)9s}Zw5VdxBqP=orij^5&f?MHHWlUt{OWr2J1@Lky-^HOvgqcy*-5ibZmWvgM zPXI`e7|r{BY}_nil6yn@oy`ts3^$MO=ExyD;nI?J=RHdczV7_$5Mxx-z;}&K#@EVL zdPPPC?i=f8Goz2KF|(*V*Nc_PB2gnk3Fz*ZgqC`ti#;2VDQHQ7av{ zo}E@#ehpdB*JxyMalA{?!#*9o-cRbj_0$~wd2tiQ6>s~kptqG3RFzyNxLtUeTe#UW*Zi#B5m?+dBB(w$egPdScipICDwH z)g{W{JFA(RK^H*Y#BMCwp&QNRh!WHU(%K)6Psak$1#r-|L1K{fCU_GtzwLx>3a z2ylSHG1+EIrXz=R6lHGsq3byjxz`N*g~E8n;@iNvyoYg6?AJ)(7DE!3pT-C(EKnH& z`noK+)2iUgJdGNW;+c&lECoMS+1d;L?8!MtreAHslUaJLYA_kMM5d7(vQp7=K%p`t zAq?^zLxGuA3^Tq;9dJ!Fl*s{PSkHiQ0tS)hKZvq&`QJa6VrE+Y>t(C7Z7U<@yqbBS zI~Z4-fnLom6Kr{$;-*dZ{DSL_b;vWbg73*5k6^t>Iaw%F#b#hwI_ZH}{ zt#={SEHl!1iiSZ#jrqiF7o83A7pysc>+a3>E^~Y7Tk>131@2cGw?8y|ren*)3u32? zNj*09N5^q5#!5lNyD4TARBVKp2*0+xB-c!2k1&QgpEWCwXd-zasq#i(lhCN%#^;zC zP{8{m_Q)`2ICR43ZM$|!4RfvP{Zg^RBj0+q`gJFR{?-?-@9#BP%qMCQV!a;?r-gv) zeH5A?^JEeM3_d?`W~F5MQ(>M48w3~Gtwo9iGP;~v4Ec?C=&x%yBao8NB6^%(l%<0m zz39WDKsy7zbpXN+;v*s`s{qVY=%<(+mNLsC$msB?Q`!QMURv>1l%2t6UNdFq3Q8*B zSOza;s0-@0C}&Ds_4tw*MA0}>T$`Evqb@qfBhJB|HR?tCh>fXQ|DMYQ8xukY$_;q$Fjyi0X>WH9_em zGwF%h*&Rqdts9$7Ea<&->C$yyv!9Ctjfk{E2NrP319uiQkGmm&PPXsvBWeU9XNrn9 zsk7*H%dCwWyjn0Q8V4>~ykZ`KlznX6WMC2rP61#A6mO&+GHJwaK*c)=NkMNrHk@1; zIe!=tbuRdVOVS+eQvlX7A}pImW`{T%)KJ*NKF$?w-Vz}vi<|(^dRQ#d0I^Wh3x1wA zWytn>)dv!cuUZtE2Zc256lhv;W1wr9g=$*m=anrg^Rg>~TI+`$?_GbI(b$}TgSRU4 ze>V7H^z8@72%n7)Iw+~>Y&)*;yy1?7^=-WOd@4QG;F-?);#;?xT37bmvS^mp>w|rY z3%(ZDcP(2}QE$h|elJf}sHh#jb^V2L->^8ppmE)5JmN+N1$}G(AUUx7_NsMb9$wVQ z$?mbE&p_&MLhM7J6C}{OV8Ov5;P&}LnmD|GgH+xeux^7G;u=&}^hE&o7Q8LsXDgx@>`!k252h>b|&CGwVd1SdfBz9qz>>IJP<&vzSpN(dP^7=@S9> zvLPf=67H!(Ff&dwCQl`*qktPGG6`(1yQm6rG?1gXFiu;w9US?Yd#NS0r8>YEl^H0= zL@VFjG)mBM4>yD=otV>^hf)-nDViEv$zW(9I56B8ES|Q{(+XWCO`B#udbCmiI?$La z7W8IDg{_3`Ab8^AKvX24+0I3f)?MVOC<7aA+OV6;WIf`>K|GSAnBpFH4tH^7ulqzF z)F&ym#0LEC!w!L!qa5`}`dSY#d{(de+_b~1_kW9+J?D;jV97^a=VKkc(uM?_bZyiq z*lqRl?*IC48GAGBBF;zG3)(Y$%76j-`X5tzhko#{U3o)(TimhY)`+cFPPKBr*8b{t z@1OzCvG&SfY()ffqwdcF5HoZuyAG1$p?Bhe(8!-Z*RVtu9s@-e-@4~PXwqlsfpw1{ zeC>P88peBUk#&p%O9qpr#Fq|;6N!4aXsI6Ng6g`H7f@U7eCr!`+P_c6U+JSC-5t>L zYk|gQFAbA#39;6To;2^#Gq}Lz+iXX@yMGOKF?#k**J$0<+A?KZ2Ost2PsM70_-KPR z$P@R{v~4GL#?KL1yV@V?AC;BkG^DWi!9j6kmBc0n=k0azR$J1EG*m5s}9p=#Tp&a~|Ki`Aim<2;kg4pR&#V5aCsf%n# zbUT0`lpB_X5r_DH#-F}F*==vP9C>R>PDtv@^l$oJzL!&7^o($NjzXMTk_Rr;E$#>s z5B>r%ImLoRHDdRPUW9|F>Y(<=9w5;~>KEUR92!rAN_>)lV7pW7dy@(yA`W6s7R;$B zZa$2Klq75Dl7UFkWCuDTTZXQfFA5A3vH9gnXrR!RXq(3W3!Ve+bCc8?MIwyTMG?MM zNbKdymlMD#fLW}pNE6y4BZWM<3tAdKF|UexX&4AnEojEG!w6C^R9ESK0vn6(mJ}vv z-4MJdSozWd0`AVZ!Vy9}r$Bzu%*u)z5xo@jai!hGcqqjrCEZ1aJc@DT>+o`E61`rb&Tm+Q>PqAxwtzx`kAl4^z zt~01DYb$POU6+nqHv(6Q1f4+H=`JD;%&3Z->rCBr-gxugSqf|AJ{I1g2%O5#&V%%MF+rH3#adSFawxsx~j1)+^isMu3i; zJlV{fg9ao$fZ|Sk#W??H=!$L#Wz{?#|MdO%dD1N5G?d2xs?!lKc@#3Iaqd%B)Jk`t zUdt?T%+)VDq8|fYa>G==G6$7$dDT(_{LBOz#eajINgn++EZIU)%F#k{ooZB4EC!&* z@%Yu{d?ZD809a4pm5LFvx~LZ8QiN0^!&G$tDgT3EbMTB=CAho-UZT(<_$ksDE;nU! zBKk)*F8V!EBk@TEyId4hkq4GR>8FmbQGgu@`bg*t^QfuDAqtUz+o+O?FqFaSR&Ys> z+8R1k)oda_iVbeRtf|Q;WhQY9qpv9316q!vnLzpAfEXhIlYJs;1U@9#ykzQHQyjmN z=ne^p!g#niMb*9b8xPF#^>KUxg$f1Ra>2G2)nw58hU73Z@Xis6eF9Bd8|>??d{M7c zkf|UIByChA0?8@96_^_*(1L0J$OQ^W5>WA>GJELX&ZWD5cssqe%MJ;aDcpyF^4O|BB9?x)e+Llfx1A4G<{)_7yME{siiy<5c zak}*t*Os84Tbp+pD`H+qPSD8Xq|42adIi_uj~_!<6+L4ofHP&VLrG`BowbGx@q_Q7 zKtR)h7OgpM-9!|A8xIr;-f|HNlYS@}01uz}@!+9&ybykge68BGOGan)`#Eksv&=dV z>m|%9x-F<7r&;7UX!_Ij^={cd&x(Kwj8 zMQ)b6Tc^Z@@lKc-R)_S#+q#4s>Qx4BJHi@xv^WV+JhQMM3j9Kh3EAIVCAqr%*d%f^ znp@%n0>fm;>W`Y>p#pN?IwlV<=2~?CWh0ors=iB4>Bc_~X9V7oXJ31%Tel+ElmWgx z%E}7Vi#tFRZzDyaADhkRV+YRz`A|{kdC;hP(*yAA|pd+A!$?ixp4?;2$bIUM}~-70jjc&B6~EpH0Nxk>6njV0JpOsE#|( zmMJMO563K?&(&f}z_ctUcA~s^b7mQN1iUVr^S?^O<%5tuuF9>dag^`~2||SF=o^Gq zP6jIL79Bh8qWzZJvQ?{%d`!ewzkF%MfAmD}m~4R;`K_u7l9EL65*kkIUUAky41!4P zKzL)dp!Mnu1VnV^XyDx1Uo;ZX3lnm}qchD2euJiM9wUp=r{W0CBWvQK(b3*EE}|RJ z%EOn=xLhMY7aY%eJ95B)AEM&Q$xF(j|9$NM{qvaXQsr$P0}QiHp>ami0><|}x=Ry- zB^^BlT#^|!@K}MD*=8JL3|)5|vTQw>4`Q?4c62x76>yaTsUrj+I=$=&o?r+eZ7zY( zf!^kNG>ey)vael77*9oHayz z5^jYW#e|RwE?m%i|CB0BvL!ZtXl7vrQ~ofJn35e2K%FWL=Gv5*Vg7Z?HYm>lE z4kZ15ht_8C7`1*cYMz=euhF}-fygm?;^fJRBnh{9tXMgPg+VDrCO;YER9nr&l9~>{pg?zuq!@BL8x->G(>Iw6W33?@E(?51!Ie;0BTimr)U!Ir8<#YX8-}UEPZ>p6PF)1#s30Z>-5! zv;$xvU~d+YnXxytCuu}!47-aJv#w{uP4xtJ0n#McYHW<3^I|p^_m9)@aG7-&KZe3) zDX0DVi(dd*vGrigUV5AVs6{Jk3R~tr?+Mw2m;3!@Mtr+g$3~Wa&v^g8^y_F{7_Unq zzqZW!14#;82R1XH{_9HUE6}@IWO)-bQ2r1W5paLqw=X|7CAu3vb@l+{E*z|4_O*UrQn_jmmDE?TEDy;_B+U+_8nR z|8tScV$f0^#lWIl(6|G!fr3x_eV=n zY!+g4E-g57_@$KvVct^VQE0iCq0z&~gQeLR6r@3|$|8|tky^RAXMHQH#!Z??vsU^i z@FvD9HEk-T0%acsg(}8g>{NHr`}^B!lhuOxkO=&+&>_)4^pq{D3;*F2hp|vjv75(S z^Y3cHV|{41h^bhWRxUebF`PiqvVW900Ji?8*vuxWYU;9 z+S;7E2BKpPv=~6zcON>AfwX6c#O!pkGfomhM>4U1Gy-J{Q^KQ|-_m*#>dx*?J4KrA zKb5~e(U=V!jgD?EupqQxXo!r)Zh$bxBTJ-EAUR@JNwSWitU8qiQM4oWB zwVf(zbeIs}b>K~*D{7y#of|7Db*6e0p95huE@k0v$t=`l2g>ufg=aS^89Z6yJ^iyA z)NDNJWt{lz5;*~RgydEkh z!8z|14a%ExUC>hSb-E5f#O~^7;JSx|fHN@Zf-0JaY)@p`D1KED4^)GMLOR1WnXn@{ z(m-W|&cGtFJFBXEAzNHnrAkIiT~c8OgyeZKUD$oJPf6rNHJR!-v=4YhEK-sXaP#S^ za*3rL4>z?t)w8I6M$Pljhi&{i)W7n?tVO-}Uw&8`-16q4L64`;^9k2lFgV+C{J2%w zj`za@S6;~S$hHimB^2?OMvJ^4+zAQc$>=x!T+&E8qvUMW8t3Vr?C*RTJuBlHxSa!JX_ zdo{PC$cIc7X()L{LreOth>n9sLDgs z48C|HcG(P#h>NUO_IqRze}?lC+S9$oj065?`H(}iw8GG-5@k>fY0Ykt0VUNCSF_ z2NWuwlnWE}#h%5)D2z5{LE;e5N#d^TJ-54+U?WCHI&ZmT`VZ!sdL$MgN3&PULw;9 zw^-Jr(JsN}mj5Np9$=^!TV1`5`kk0=5kWDDd=U|T8iX-9tLUHOF)=(Q>nz-BHfqK$ zZ*OXq(Gw79Q;W#lPPbMF*Zg#WL5O#Fv=pz#|4_U+u|5 zAj<}Sv#_w>2=eO--q6|S)(sw0)+T^xz!;p6q1K$~8|LrlH|I=9NEZdQa90kWwBllI zHQc4fk5@L4b0=;VrI*HyqR(dmc~P>0xXenkn>+W%G=5wF9NK6-u2PGD5X`#b6>^Ee zWS<*J{4o#+25_SlDsGQFMj6GyNXf!K%}#U7h~{6*(Yn>IOs)&k%($j9LUBoJVIOW#x(?h!nXq?l4gif<$Z!ImHi?DhBG z4jQw8G>V*L1oukbtwdIAWisz}}1Z+-EPbV!?aJo^gD#F6T1YV^I@VfUJsu{UOtQt=n4vqd{Q0{^L z?CFRIPrCUWoZDY1dsNgHxhuTJ2~U$j-N?-zq1`T^R4vC#se#`+4haRnCERylE$*CE z;Q%8|hIFO@ZZt=%3e=16m-zOR*aB~)>5yJlUJe+UNmPLXVBL&{ZIa^!7$F@Myo!`F zyLj}bAl5)3a`aePnSovimxivjd;2qeyQK=cJnX~8O@(CGTeoiYBkwSyH1y=9k_K;w zvXqpRbR2U&a!A&M4w|+K@;ee0Sol4A^^#(oQ5O}teDrF&14sxrv7(|K4Xz5#~EA0%8E@!Bc0QT zZOl3Kf(`?Py9K2y*&9!nRU3l2jkPj80n$^NOn%%D!jY8XTv`AeLSlvqg%8>1>C*%0 z_^0z4F@MM0Mhc;*-fVIbi2*$Qqkuy9!Ur%L`lhV!YN_RfkmxG!uIfC zdmf8`jl+h;{`#+PzC=@WM9R12?JG4}XbfL9UR1^i~U zfo=$-?iOb~o;wl&P#FVFL%tNK!5)$LvQMAHa!-M%DQ`-1%-r5H4#Wc0O71HDyRpnV z$xN5|?v6QRW(|7nNFY&+-N(JkFb2eQ2`wW=j8NJ)-=F!pWwbp>{tOlSG*3gr*GdIc z#o3RE6e5&p*r#*25Lib|;GvNF0k58d+$Q$*RBTkkBZzt+q;qt}>{HsOx&0R3LP2Q8 zlcH5hGi9L4K1~k9gJ&_ZAZ;DXqo?=cz!iuXYygcE_Cx|(9b{&d6vxD0-g4{Kt&6FJ z0Y*lrGhV2)(7_>?K8aV~RFW-d>6?@O_Eou8I)SdmQ?aH?GmjHob4=IK`!tP46P2K^ zh*)6OFUTX4!U(nwhZ!a94rUYmEcR*EMe_zGKY!D6{DJW2NqzwWVTn<+jNX^~p{-5g~kD{FPM+OtugAZ;GwSkx{of4v9!C*(qq>^7&@X z@_!wAcpP0I68&2&XCgc!E6&}BAuJnCGwUYg`grBivfz(BK+~U%2;%O9xG@{3xOf?7 zXjUc>ipBsD-~p6aQhy-tFztZ@<2k9RcsSRmkn$TC?24a5Y|(ze!IhVn$63N3_Ces4 zA4c%9>fC}*)pblOp1Os-gM$)%xxT5^{jduY-PJpHG?{*VyTskSBZxjFGf})Qbh=+r z^%~{az)-Ij-^9?QAWr)7(tAi#^WxNfn&52}owa<(KyN${4408EOR9;?z4Ph$U8K>H z;@PHc+awpRhokjLPp-hdJv{?{<2*sddOOr32gS#U#4zhVL@1s>SZLPU?a*zVY-dQ@ zEfrG~>)muc77y0#G-e+kbl<~BLbMrmHp<`*6i*dB=?w+<{Kx(;HYs~@lo2zafz<8W zw!O%E2S=MN!M>z_j=%Uk>x;|kfku<%ap|=Od;^n<6U&tJZopz|*&rt=8>igw(WH2J z=kHIWHm7UWtOR^3_F*}dbfCnK8UzeB0(f0wgIyhNByc+#5?G76AKLrxT;*~N+9|3lX8 zoMnWl>lGD4G+t8e5`&k=v6KOTRXcXHjiMN&_-GkT?lF&!6xDe;2{P4Lxb(k-YRM;u z5`AO~^e1z9+=M(a5BW5h)6m1iSnoDbfcGt< zri;WJ7;>g;k^u`yCP8MfS7z)Y=L^NU$ytWd$n+_uqJ|JM8Q~RK0#IJ=?Vs-?>~-7a zA775)EprgqL~+8(1UWZHgYJ$g>_n0fNR_QzX!etC2;Y>44Hv?j1Q{hvQlakyYziu0 zcIDuu&vu2!#T^C#lXH0O_e`Vo01)*@Yq>Synje^2ajGK^;K#0~EJa}t{gXum^GJN?@RK}ys&8e_S&&cF95gu+4 zVnqf3ENIVsin0{R6(?Bqh(nP}B9>e)Xym z=W}~CwGs0M2gbsTZOk&0t`+GG=%9n*j7?%gsY1V22}^}dxdE?II@DOy2)RLKetG_+ zXJjC(mSfBz3e))CeILsn3Qw_H97imRPppO{ABM8N`*~3h>TXh81w%_>)oVS5{2gym z;mbn}>5i|M<+N$-L}NUN$tai+4&<%^1@onZ8#df%imtf0I0u=x!DWv63Ai_e+rda_ z5-CmATM71^hOG=1LKDC$TMX_YP_wX$8u=;y&2clEBfnl2IajSY@;bERbN2*_RH!dX_1CdVBCgZ7J3rgz?gtlNLLzolNdA zwoO)=4kwbbjJ%H{jl$9d%kk36;!1Z1;c&CLfL-yr-ziNfjyc)+6l}8Ic>fI>HUz;6 zCVP`=8GgjYS7dXw&w zP`v3drkuHB%h5|E%b5ZVIt+-NjTHvIHFxpiT~rJl-6XTYY-@(ZbyaX^RtL^xdZF2v zeGUs2*qouu#}+0zBrVE#_H1`@o{4krjmDQQUls)y{sR6IQTy6Go$oY|LIZAx(0M6( zq|eHa4E;CX=iHrz4^gNc*#Hk+G{i}oNfgMg{6Nq6>4%0oZw0paWAUSnfT~X2Nm=Mu z@eP?Wm{Rl^>Wwgq(}mmd`Ku6|C^k552ufndkeHY#+3d4t;}$OLt%kfUCk8pMNIgJm z<|Z=A%F2Y{LlGh3{+w7+fPe##w}Um~FM9^QKG>FO`}Tk%8!7%T(wk=jA_0E!g9lqQ z$9%8JE@&BESP!v=87t8knOs@5jn>Qd{ zrvXb8yeK+K6i!l{o$2dL+Uqok%ODA-jZNiZOCkr-L0(=}RYil*c1Ae8W*~!&q+@lZ z!A7>{j?iWFwxJg+8-zGLwWCb7u*z8D08dAuk}$du4UhLfaJJ;4&$I%?M}v%b+xG1? zERIMjDlrdw^@{Gw2x^f|ojNrDr{wgO3YMIU-6Ws{=b%&f9ic7M)OJ7|1O=OX>x>2A zWS?fn^IA|L06>N^lh_0_$KKcxnx2*ASqlp+>rUZHh}0YdluqVp!kyJYnA9OALMS2( zko?t7KEUjzI|G++Vr$9#@zAiHL7SX9TD3z53Vv}{MAQ0pX-;V+y;g!XUq%I}d>_YD z46UK+Qwq~9vB30)my6N(9PRcKTK`0rCKr%kfg2)2Z+i>bHype$5)e7ju;kOkzmzi; zg0+EVk7VR)6lWA;xfXvggMn(xMozt!g5K`aY>6`);g1t^#sMMkL7D;(_Ret7WWcl# zb!Z?7Asc>AI~-@aIXZFI6ri*q|FxDE{t5@zp<%0b6OWxfJQ*q>QrLW~Z%XsV+_;b& zpjY|t*uFi-%{kVZ&is0^K{I9LFiEbKEofrP?((lciD~9-olg%VX1*gY5~ClNK>!{7lIN? zysLC)i?(QutT=|wbF_<1SV{q)KLYKv@6aJHk&AO6A-Z^o*eYR~l8nlnL&^e^y^#~h z{sCSsuu)8!f-UrzeFcSuU3%*4OXo!k;q>U}{z9_^`vCE$-eWu^9rSxwM#e;$?@_>P zWS*rhpRP++m%Yt!_Q5|V8NicC`Y9w~^d#sxY|3zWxljcB3(~uAP7(VBK<#{ZTr#B% z8A&G|n~4f7MNR_~^58 zcUNB^1q!!+qI0PLMf4{)PQz3?b-D?|*oI1s5O(=;pjdqY>ca&gSO-%n(R|VNhfFkR zP@6RBMa}_>`SdDoGn8E7dJ*KnZ+G8R8Bhm&X1znE7F&?R!&ZfIiZ6bCRq!cc;|v%e z2sIdE3uHnCz8@Uu#i3VMGj9$&`0rpeGc?QDFN|w|Awhd>aP#jVG#Nv>!CT8o_(@Vl zB0^Rm&DXLrP(R*&gZZ|$fK>noJZXZdpj>n%ELW}4W3y3O@De~oz47yzqrfmdu|sXFatbBpedt zJ7nMuqoO8}JW~m}yC33KNfXjtR;|i>@W6~rpT+_?7!XGR=>SiJ!<46Ax1-Kb_PDvZ zk%f({i`*Au3uCtnfL?cS3V_b734jjHa*}*(G~g3Hr*qDbhGGnF3iCm2#sM+6BGHys z8IJAr$ZOX-c(lLf829#ngP-C5#P$-a7#<8iK$=Se=Yq(Z@IEQEw9Yu(6^x^lBPzw%t4ZX z@j#)sbWK@2Sd2{4`CXcJS`P5_91y0kSh;dA?bsKL8i;!#4+vPdCxdfbjI{nKt{cm^ z%(QM8zA-T+1g>!rc^ew359hqtr#TSRLp-AYGv4RF9c)^}m^f)kH)Ipkwa3Igm}*Ly zYhC>0V#_qKvZRcG;S91yUr~L=fyVdWeiB|4(3s|!C+ohxcK~JNsFpuUZP@B)&!3^- zq&z|)mA#BxJRdo!Nn=~NmkeQrUT0d2H z&|42&o(QXwWB3dQ4+0zhQNWngL`J3l_vm?DoJu8+*WNM=hG-u6EnK{~DNa|MXqg+VhgmPwr{D(GOZiQOf<_G|r?xM-`#w#|m)Kv42st@6U=6H? z6HvU!lL7OuqafY%+35E`P#V~YW1in|k{oSf z9a>jN?JXE(SLsMD69|40D}wxTQTJ3Gs2c7q7?k&#t5B2Y-J}li+XPrdSj+^RBM<9u zzE2anN34*v$q{~~Bms?>ON^j5+(pSFO~41YxFuL+FR2|XF6TedFhaZ?<_ryR`SEMLu{02t0|G)tm zWp?cD?9;91m#6hxSAD40*6v2>emn)DO6MSp{e{xgx|U zy$_mhV%cg&mzEUfwMastu-B3IZ9N7oRivAkh+w@I7bhxI`03oo8IVNo>XOQN&VDKuxIp`kbJ&AB%Cv^5u-*2qF6sa-sY*)|L}rQk*_gxupxp z2MM7}Q!n&A@+SAu!P}7wE{=BFk#MkP@WEk!9aH)9@xYXOv-{@VC{$Ne#*X>+E<32R zrm1Im#H!8LsvZaac{uLI?le{R{L((#n(BqBF1uKnHCsL6;uV#7$9E6YvnzhsZt7f} zH~x)BZrdF@rlrHKhK4>f)s~e!4eAsY`s&C27rYN`S#D6B^8RJNai*n#aSzU|Y#!Q6 z|8c_YW83+mtM828IZF4<$C8}~Zx40)W-#uc_oow+D*l@GR|{3gmx-4YFLEy%4;y8c z_LH@v#?U5tuHW`%-}>#)wpV&$rG=CtBs3p+85Q?K&ws;h|*e$MnQ=RuJIv5)zd~I{sy{2Tvw>Oc)3NLBjDZO^`g?v1p~#pF8NPMZyT84U3Hp=zs z8fK4JRSV{mIYm6BuQEq;R?QZ_4mw>E8W}@dl0cRA#^gPX^H36n^o*~Ht$}!q>a!uo zjJ)-AJ}t)`T-Q@w6_2^G-D&PUmrzI1-kVGEfoN$@8hR{$sMPjAO z076F3c^B)b)!#TY_UZMtgvZ}4+yum3hn5abIbsCnubdAu??UA#M+L-dBF*np@$8ol zXz0n0yt8%JP<^Lz^!A{nO!LSGDM~ae6QVWMI$Nu{J9pT>dKLS?pjfM-xpSLf%#lMq z`<3cTUCw^obt?9&aRxpYxAuPT8W8qSUF`hNxM&1emz-M4+gb>e?%L`iM<-4`Y4Avxay>f_FNd81v^MpDBCk-btav}h}BPRm5)>E~@ z4G$oF`sz#)4X_B9Jr^C4px+@xUlw-AE0DE1W^FTiA(GuO|LF{H`Wy?MD@zGKI`zus zbRzGSzhW&5wD_2RTl-%4wLy=e-M9nJ8Rf0th8bAhWqD-<7GH#D6hrF=^zSuZd5wgAULMSvrH#f^b7t9_ldqU`7ylh*GkO<7aT}ZOeuvWMvJ>ydJ z+3yx@-O}sp8Vn?56&nQgNQ^T%~AH2^>&d zVZQ1+s3@~Q9V|JufmF&E&`QEI;1c4Bc>`QUZB)zA|LuKY+ZhPgQbOe`f?=bOCdp7f zPhOOqIkHz~!Jw*1PCnXY%)7I()^Bsas7z0Z%*xy@%7QC9RF9opbFM9knq7Gt3Zgy7 zx5>&Z4=NNb#NP3Sg7TqJ9+78%wnuS z!u(>Pzw3$#*Gj~i(DD^F$G+TPeiHnCyt&HotH3Bn4Wj1n_jL~TNc>J?z^HG8aX=7q8n5rRZq8)d*?yzEAH3N zRgIHK(-u`H>GA#FRQhb<8_)iA;8*AhAkPNYk2(%i1eG>)#My!+OOX>R!w=R9EDiw2 za6JLAitcA1N?i1}Nt=qWCQ$Xkf4>}Vfy~VHr_hWdw;rYFHvF@7;@RK)KZ75&SIhC3 zndlfjy_&zdm~l7%M?ZFl)BIaoIe;97}Oo5oVuX!B-M@zs=~J2L+c(`d+| zzc~MrDv)}oX^F{uC#fxmy0mN8sVGRbmx_)h&o*<19Ata_@`TyD@mVJ_6SJH~{Uv%_ z|4N$YEU<`d*X*6>$@v?*m4yQq)M(*hSF)jeBZ*QBVTFL_fD&n6XiQCIH!}mp#$b!CAB%tp~aq3hp(%W^LWwb@=puUc9vS?S?a_Fohni zTb8vT`@`K=2{$O|<{;8;P84ifdPAAWv&D}xA zFFs%Q$qK2!JU4Aor%G>ror>aVQiokVaP8^3xttAa5J9?>k{f=I4}h<07A|~yM)v$a zNtZAin{HFlm0vh@%*cBMdoCKgxx43T5#wJF%L&5UdQ0Ywroi13XFKY$<_rWPG*32F zgp0hUm}pty?swbgksQ@Co;Khp?ta_#o7XmRx7$(s@SE7+(-`RKP)Obp;L4;1I$A$w zXNluDw9jvGFIh-WYbf3`?g{B>LwyK>g_(HTXj*^x(#6Hcxn2DpBR!uUCpT1Q?RzoW zC!;S`ku^NZF!+S-*zhpJV8X<^WpVuugDPiI63Xw4GjF;*)G^V~GvzQD+{4#*yhpk` z@Dx5ZKD^-mheEC0mwW1<=p{~Q|2)R<>J4XpsIUA`_xPC^Z@LeJWAHWDa8EX)HO-S& zPztN42E|?kTg$KZ_G~Ddl$1^B+P}ds(GZv#U4llCu=w%sxC@Z2mKQDY0P_3&LqLZL1-Ln})tH)zA4KN$veHKOPT z2N^aPFb`eK)0&5MONYUWybl0O){ z_Zb{ONqZ`hA;SGWSG+`hXVqC{pRCXWGWV+2G1)H9L{#nNA1|kW+Fu{YAoM#}=E*7;e_mCM9Zk2GZQBQ+i)=XzLi)bKzrKz!|qUKlw(>9}M1 z?F9--%Fx)@y4I;*r%_o3wQt^uGxts?ZHefzbUez{My5q4nqs#B5x(z~8G}_*t7Bg4$p=Y;h+*3%xJ z=2~=aD;9KR_a9_-JeVjrr=7$Hq=k)0e-BtxmA2E-u}ynJo=&#mUj* z1Mfw2+41Hzo-sAMMw)XOfz0CknF>$ySo%IAvn%^4E+`M{ucZnSB{)i1~9E=3{{R0-#yP-CZIY^!=oS_L{{n@uDFiPX#+Z zzw{QkGO{&Ts^G@B=LNo_Y|LjR)@@wq8@ks&sX8&yPL*+?OcERIFV$OhK4v`+*9C=V zO^4apmW%cd;aZI|JYB!(i3?Cn*Ulak7U}CFX*Nb9rmjKF{}PHD9*8%i?imSM;!waM)u`#i=mQPjXg{>@7sf0cu5CTP0j#qMo$t zy9a`MbQQZ5`o%*|gA|}oRRc??x?D89i`ipBc6q>H*$beK^vn}=2vp{(JQo!K$|I?l zJPOoE=2u4p)Fxz{KtNCs$f8Pjdd7#)&IU2X>=Epdk=GW@ys#r6T=7z8@&42Q+#~)W ze=2@sae*SYXoG@N_3bM|-#v^}_jMPljUKfXIk4r5b8)||A{?!IcXS#}Jk)TPWi zTcIm*8Vx}x;!GLTUTOma`@U8BzpMLFB_Iw%kkppKb#TYVro zpMfW&(ZY6Ss&r(_;!v7aQ>$>P!Lo(G&T(Etg@^u$p{wY~4D^FRy zdXYOFgYC{%uKc++s>@-bb=4oY%g?Q*W^9Cg zw&}unrZ2yGv>Wd0L@j=MEMBzyW87saUZ$k(PPpL^S5KioMRwq~Fg=eE@BHeRL6h%( ztc%w-1P(25zg6wGD|V+#D{#GMw|ri7=b4BH+>Q3B!BxdS_o*+IY%BVeb&*M|srpR3 zTiEKA(4$(nV-shd`9;Qs`8A~og@7zVI3Zp~(5d|`s4j11pguF;m`ZlWUU1!$t_WaKPiqH(9 z(cxN7wlQa(wYio7St}M2v$ppulAdmJRt&nFVQjZKuQx<+{nO6*8kr}LtaSF|(acEM zbT*Z@$7z>jC5qRPKN58mTfA|V#;iIFmzY1Ctdu}8n*i0@$U{rUJPQ#&wC+Hr3&_Th z8bS&hgU0C#m`22`oge_`1>e#YO{^u;kFewkl@T^krtp|7I7c{!=mCI4abOrc(n?Z8 zK10V74PoG_R!{G37YbQf>QZL@V0?>FZDTNfyjd7OhfI z=QKW%BU{l_)MJ;!)7ONh(F2sQAw-Q}9mfGPs>8242W`b7YaR85)Ct(`G5oJVpbX#eHtDrwq z(R$iaYp_zGaCO1cdM@8H)zmB`Ce71uEk2S1-{h@I+++`vqkEMv*Vdk|`n1FOO407T z4q;&>ynD%XTHKzvM!}R#=s}T^ ze`I`I@eEqA&7hSHfB!zveT;n@m}A7tKNRcYH>|*erYXVeCJ%u+RJ|!kVdEM$-g9@W zsiOOJI!wg#(!r-sA57;wUvq<+bEJ4FjZJd)9m9_L>LhzN z#-nU|Mzv_#6P}kJJ$bvcaze>xHs3;|-W+?CPGX&Q#_kB->@9kSn2etzvWTnaZI6}N z%E_$W*fPW=(V{j}%^xc5up-&#yJlQVgmEa-z&+f5*J@s!JIC*J-sWct+OMU2eRC{V zw_iQWhJ^h02X3|4KKkh_svPso?DMfqd#P02+#CFOM8B=2ChG${-bx{TLB0Z(PYDrN zFvEfd6vhB^L3$*eMQ=z^j)Z8wm&)@knZ9*(;wHB?V5>g|ea(Y?ym1jn&sFVKrW4q5=gYCo2i7C>Ce@2f z&UE}+K0D~_PuV1%k5XXko+nvXu1!L9$=sf!k*C=M^@#^UFDFajrIP>pI;;b=KEwL5WXn$XWYoiw^GaYz4Ng3*KGXW1&l7DB| z`4NZgt9Rvczm;gEats{FvK~}bez^sLQ8Obc7d*wb*OrdxJqcc^} z&hwg-w}23%Ur4N_xmys89&hS?t$`c5Ka08*h6W53j%tVmdS+cRrIz@a)#y?b+!81? zD()P@emO6EJ~Pv0a%LU>B??DG8;RMh3|rIv%G(EW@dMZ6q-E?_#?SYJ9IWJt538G8 zs1b=9Hx{AgU{<%6Qj3=kw8b#4fcB=Q5}2>m;J@RN%;wKYqokt)YKp|19D4NLMHo$m z&~*16n;(j=LaP{@dJH$v2GKPSmzdxV_QLS^_z>EJTWHX>CxfI&E(K;by3BdRco_yW zAbcx=rGcu{qySkKh#_d?e0Gy^p0&~cn!#b@Rd zTY{#hhtwZE(~Yb#d7ONf`<=QuLK0Ra!m`UcH*Pu$*pc z9%MVj$iY=}ee9U$HT=-ZM2)d-u=~NaM^>-`3TU5h-%*z%VfFOTHN< z&~x9;6u;93y+#t|zl(5j9fZd-Secw`f{X(V%Om`&N;c$WFfcDK2plxZqGuRMn5`Y? zl=)azslK?Wd)afIq5}tgp7lX2nu*3C1G(&{tnr$GXOtF7L`5gUi@Qp?gQafTel3+G zXRvbK<$hkuR(+%Iik>B}RMwAZ?Vt{}4#>*OxE6jqX`1~0tmulX@VWK~Asx~`Wm%c4 z!cq@N=H8?XUTqtgEChd)ZHBubIWg#uYtV+m_fUh@8RZ_7A-_Dv-Fy05<$hlBO$8 z24`^f8X%xroH1BAkVj?=J|j!i@GSZxewf#Hf6fW?sZGuH3F@X5r z?#qa}O!j^ILzVF!=3L4>zcMclHZr<^qByEB7(U&YKJkLoL48QsvcGGo>*-Xtq<(5RL_Q_X$1^CTL& zc57#6S`fiuc}3J(X)cm#;01yh3f7McGz$=+cGz_Jz={BT9H^XC*qJD&ao9}Y_hX1( zdtqtFA*m}@Gb9f_zlUApW&FeS<`**wLHbj+N!q-!D~In`Mp1sUhOuN{OwS@`u*~uy z@}H=t2xD^lPWFnF(68wU+=~)y*EdYM-1u>7vncDfK&RaHV4l_^$cXAhw)t!g=2BA6 zvS;ht7|3(wYQVa1ifr&^BA=6t3WeYDaPac)bjzpH7i8Ui+#kpHuRZc`Yu^gZCNJn) zz+t(j&8u*T2{Pwt!|nh2TF&eEf|k`04;V~(q;{&AV}>HH7#;-vfk zHZuPI`|lxC^r|gj4Eb6_-+sjHGwTg*F}N{UbVNk0tor5K>JT?x6IBGzk30Kzb3brmq9Rvf-$vSBZ@|O^8B6+#IO1Vv z2{7HaD8Rt3-3eB`1tc)w8o`R_({X~wqecXp@W+`ehmnnC>zPztL-g9vCl?HXG6gjo zAR7ghSQp89Ko~F}A@c{pKZfrL7D=2Rd+%Z}Q)n=zM z=(3>V;%#i@pt423sl?{swEhU#;V_3kd-k6-cE1EQi%kbsx=!s47bOoC~d zhsOSDz`CpVlea;!s zCi{h+qFvDZL+_&W5hi3H*%JQ~82Jf-4=TdQv30}wgE44p8hw0a$zC{Fxf8z#CMO7C z!vxJm6XoFvA6VxRF=Ub@L@lSJhQ`PuGd=`tTbX72I0cfr;s%h z%CQMCGAb#NMRs}p@Lw<}!F@r;&RB?yJVmF}S8f%SGnpVkax&6FMtnC)r;kn|Qzsuj zOG$ZvWdyO}2|YbkNoFL%`Yyd|ok1jh0N+Ne5Xe74`d4TX0p@^?4g9%6oJT+G2kVx& zW1%iUtOgk#>yr3j1S&M485~G(2}j2da0&_|(gR2^kn9daHbao!Jn#X81O*TC?jZJF zSc;GGK_mqYod5s|AQylbg1T^9a23o}2}&TxN)1+yLNod>@Kfdd8h%ENbWYKnYkqMqr7_Wf@_B?zXJ*L9qO@xpUr=+Gr9UenQOIR{u*xc^wKl79EoUs-O zz<=+a0^&@sJ+}N2oP8Mf0mj*Nc$N`Q49>FOCJM^1{lU!$B_rUp4o|D5CRhQn ze+Nex5e%vcVo!<1jZ{4oYd!UGF*!eRVJgINYhl3+TL={86Wn0^uSbLTFx`eV^z`(* z5jMc*#u6hWIF?@@s+2%lMNbD7Mmo8U98Iuj)M)%~@8S&2ZWTr>L(mTnJRWNzxb1lC z=w1*-zAQEBQ|I0f?QoyGj+I-M%A^p>Uxf$SNux!Dei-FYb)74)WaFPK_+zIY-%w;*`GO-)tMie3r5Qsn}0qvW0N3o|2?hx_ARb@{@f}iZK{!fJA;f^uE9^V`kq%P=)`L(&5j($e7ak_mcED4Jmo%zvLhqJb7*6<) zl?wg|kV2xg#uX4+I>HKqY;`1#j6Cc{XOj7V>iqzY9w5B7eEoujio^moEvV19U|fLg z3wIMm`{%Pr{}AM1>2L>Tgo@3GY!knhATog08e~mSa1rq4EY<|}9u#jR(jZO}&p|Wa zs($1!L>1c%QynzhAm_sV@R4H$e*iH9e*vBLQ#Cd&fShN|6Hr?i377_8aLvd_ z!t>`8P``krjb?nH0x4Hag`)6QxX&;v#h3ss>>sdofvm036Qn12Cj>vp42&<3@xxU| zA=cf6^9SfIo;_4R&|MSa0J1yCQ~08ja1O&w6uS$NSs5=hjF+{_f+1#ZG^EX+CtXMx z1mZQw-vd@CilJEJ5%O2@;wF7S7XIA_1#F=k|Bqzn!*I7H-NxY;NY2vq`SjfoI}X}*19rQH;w z#7^8YAp*ryyraa9WW*v`0m3_FqCDNUk&|uf27LY~B}wKXjPYXK<_nDt6z{``w8pUH zdX$N|1K7BtWhhCpgwO-usi&p21F;PkN+|IB+k6|L@;HehxV`rDpgBuG?+q->@c{gm z009FTsDf5S48Ht8DG5g$EPm)`^zaLL*b`vTD!;3(H7S6Y(K$rv7GTFv+_8<`WmsiI z;|pgIGGG|X8NdR*;8kyx1+7Uv#Gn>-c2&@ZL%xpX9LWm;_tU4t_~oXHmoA-z_*4RG zndIaMxOje04(jpl=r{9GNB})9saCUHuuP(&#i+=4&?Vlw_AWy7mx{j{jiBstB6(b_wO7CA()em;|4S=Lm0w9t^;!e zCQ33=*cN&NyxkpNa&~R^fFgI60MJ`y^B1o|ROOoQ8r#`JOaZHD-PfbEpt%2V?m!?3+$sDYzK z90a1kc*~KTMJWL>o1dQtw&)0|H2nI&Pv8_4rPKRk=z>i|Op3vJ!^u|;vEc~h?=U?_ zgJA^r!|6D_@G+_MAa^llpjb!NTI>IENt_5BIr<1PSQ?=S?BY0LwDC`Cgs_qD_;_`E z3WODm4L|~lsdyu|mcS0S}rvNc5GCxTOC}BpS3@K$S z47UF~oVk>)N>s*>MG~Cd7XmSCZb+JS(_j-SjK>JoDBv`TEnBds2rwD}qpAjsnaYhq zO$bIkhMnP2aFUcB2Mty&jw^D5zy)_Ep#iN`xOy;&JNv}oSO~`9ja7s6gg7pxBdPX> z4AVjcPBHLu1J(%GWal3nY-HHjsknZUkqF@oA=7r?zJYRsHDm)3Q)g#~-3Ix3xCy-~L;}13ai4B}qL~ct2Ua0iL3v2M zY+YO;q2WS4iqDO+z6`G~olA()@7jrD+=(*$S{ zCt-*ZW@`J97dpI~xM@a$aYBk+ zF@map@&Sym0tPPS6EXMDG_|i>ZXfX`rGm`jaJ z7GVUbGvZ02WlPe2q^hVSurok!MWu&Z`v>gpHU4r?3x*7^IEPYy5(@{qBcR|IUXZI# zx-X(|rNw^7DgTF=m8;{qXG@Dr*P>^#HvRJ~y` z<`bDp?mf)z%RpL$$Pl1*`ZRdQm>m%Cn0r${K4pF@5*`F8@zbXf8(E?4PRFR24$L+o z6x%#P*8%GO`~IOmPJjR`@j~b8hv#4|fc*D!EGlPIj>nL$g1rUBFEBFPtPu^I6R5Pw z`O(zvxw3>20%S}enG1-8()8r%yWbIM`#-B8;UAc+U?&nv++ku<1)mW5aaeR9AWSv| zUnQx=i*5cD^blK_WkS)LtB=);00kiw9&$R)O4MsW0bd9rX23ff`Y?SUM&q*}PryLz zJS!4ctnZeun4<>Ft5*<$WSsg~WX8K7szV@?#;|CpxRgHTI&tBL$+aU}0%;SWa|Eap z_9`|d-p_dLOveV2^?ke8i0{>gHfDq+vJtAviu8`C$SSfeL9yJuO!Dx{CTzL zckSX}qQu9kcju$0z)vD0Dq!K*wh;-L3$hUMNKtEa@glY&q9GOkgCc5T@|xiGfUYEn z{YbwT#jr{uDohCU@RjU8hp2r5{90gFK@HgN1*WXzlIhd1Y9bIA&@WL)U?HJncm}gj zEJ0!ui$)3V5i&Nk%DcGHW&-ra3O9D#L#*9B5cgk(b10H0QK*;gd30WA;oUS#aPv`8 z7ZddjRMB`h>^))%fu@V_pP%`S=k%4;y}j`6_Yda~jIaDV>>?v^KaqEktgRm*ax0~G z?yf)oPn}JNy$g00`aF0l#2(>ywzW0;2KAm#idYQ9cF+nU;vBuxr%vs*l|kKYg5&b{ zA+o{Y*^@ti!Gbb+_y78LhWTr#Vqrh#L-OBJcbNY*H8x(WM^OgpOSwDTB%FvP3Ex@h zLJxQ8!bO18T8I~aK4ahDi9gU4ArRBx@Ryvf6(&Z&1#~!Kfpx(>#0ho>wq9^_bAXPl zym;t$>}6*RbSy+TK#8lMtB3L(hRFYnw{VzF@i?rT>*$4BhO3Tzi^BqWCc@FQJ_cL# zp($Zj8Nkp*9Q$ydlov+;>A`IijH%O2LoGy1hW>oIBLxuw9*2SJK#&Ygt4RS)Ni>+q z^T)cW%^;AV#!z)%Ql9(n(R>}X3lKV`TRZe=?a0pS!6WX2Zy+QU{QhqU7I3>D?s8 zLh3s*e8_3MwCd()3qs7 zTU^F+hZ?ak34oW18Xn*S4W%~}ltkM>d>3_)aWF}H&;x*~2g@HOG6*#!*96po;~TZr zzh4+*RgjXxWs(-E)oK%1llTDrfJsvQfB()O{w(X(4G%0CQGlZ!!T%abWCMKTjEoB) z4N+3Sg@lgMn@9|i2x6cC(1L$vdBhwaSdC{Jfu9Ew5=Bl0q#Nk0o2*^+H`W78=)Qn+ z{11K?N>+%iEg3&UXzo}C7#vq)LO>35D2V|DWIt)sfF`z)Tk60 z6)Gz*TyOq)aLPEvkW3>?>Ol4lO+H!YIBp3bgOmeD4fbL>;2Jc@vFw83$N&to1|-_1 zI(!;j7gWZ07hIDU{&C{OiEF9g{DAcygY+LM24Rnov=SFmjeM2B61Z-1%!7=piid*3 ztee>A!utYV*+ejhO-<%CIOE*H4u+Gk^6zE`+|^WoIyB)SA=toQnCmx~S&K{nZq14a zt7Pwz``ewj9ZY5N)Zq@D_r5$IJ}Q zvco3XejQLNVk_JVluJN4RAUWZJ){kMBj0^HaCqx__&Y>beVuf#@JV%^H55f*PE^=%D1pGVvLri|Ve2{Xs zMTDG6AczGp2rIpN`}WPq%)f?Zx(0L&qH@8d&~D$pUtf|r8K@o5StMrd&oGJ`NG6IV zsISP>3#@e<4QP8JVne!KA%Rl_wVyV!Ej=s&lJ}sNu^)K1{nMX{HMJeXsDZAUqO&p# zZ;Zn*FKQ79MWaNSk)9s?9U=u~L`G@}2e{vJ)y#NFa~LHlDe$odqmz)+(bo)3lZgT- z^Ke~Q@}%S+8JKZH6-dTF--U&>J338h>P+J1^ds3rLU6hJA`--2dn}4S0yd$0xEDhh zIl#*+CyE_H=9Im20Wphv(;4_*VK+Gg+CkbKEWN;;hpQp>LZqC;ZALzVim@32ekhz!n*_bn*HLO z1M+-h)Ku6(pw`2y3L)};t?zg5MT>!?P1q~QV&LV7w4xG*u2?(h6Czxx+`~x>FE%B1 zlFSf|Wsl*O%+64z>)V9FfP(LA^LZ<|nAjFd`?d^&nN293;5Y|Z; z)eIga@>Af_#7A_7@L`Z75Ca)Npaupk|9T8HZ!bK@U=rXWFn#H-=yw3~3J(}96h~4@ z{f`3H8E%|p7#HSQYNE`?e*Ntuu7!gQ@s1e9pyP!iQ4JA>lr*SUQPxJVV_zaUY&w(r1Qb67d`n1}P~U6Qyw5|E#-70}hEBULRFFD&Ax0E{1{Lu8lb%@QE=*IZZwx z@#)A$*AjMv6=;$)Vpkyr&tV{bJ2=J2U=C#V;5EP`4)7@1MMwnI5YCBbBzhdED*tcE z@Gs)T_-#xc!5ci+FN_9sUMYcW2R)9vRzzRIMs#n(POhjEb2&Oe{5|57vc>%J*v9J@+9x3brMg6va8##bqWewSlZ%ra# zBOD`9v3-ry0TB~vSeFk17phUPA^#j>(kb|cW(g`ztE>!k?#QTBIbs*i&HVmJxFG2 zuN89X*w|Q-@ns8_X@a)oQ(;sP58lDmnP&#XQWU*5GHwNZ{w^ED94O-Yk;)5UxK3zv z{cPsfuwo;S+NP2o3+YQfd}w)X9X6U4@4e6F4NOB|R)I#iHzw+OhskFxF#OWNo(Ji+ zcHiX0)h1!VcLUcoB-Mmz#CoJ^ldpPQ>xunVIv|+&@Xa$N_V1gg ztm-(vb*|5GF}>B%(vrJEUeBmkPJSIs`v9GUZRHo&q#=V=qw^$vdr?c08xRe;kb2FhU z%SGH6q^#~DjYpGf4rWqMj*W_UtMZ1t>3<~{LPurrr7G>01I$8hP}h~&ZbVr;LZ8bhjfJ*Ts4p>VA~~77x+A!XFj*r63;9{w~A);L+3H`h7HA6bK}&zWT=wMYG*7CwO7e3_R$j-`T-fw zWp;!4pOm0+rn}r|J-*qc*kY7E5o_i0mt^6PT~!id?Na5h?JhjX5D81P7pYg*xBK#B zNNwuaMTv%81=lz#-V_|6V=*fV5v)2_D5A^w*}{n>`1!s;x9?B#YoGW_k447Sw=T}7 z1!sO&+L?aqcBi3{ncBYWv!<4uR4=&u=5NxyZFni{?j}A?r+(FwPR%4VnNQ*X5hci(V^2*ezZR+qe9=WWK<_ zMX^*eGtH|fc8rrgXtM1IzqHPQn@@9F=xbQ~PTq^SU1wwRy!gtC5SkZDi$8p~*G3K| zCdeF)5Pj>dXL#>s+9%Nn(V)u{HBx+CK7*;Uc^{mNLs_M>pqml!nj?6gHJ}u|%qW65$%> zavu>OPd9MaP059X!rHeEQwGxMYZ7Gl?A_}3FeWylQrj+W^b1#-=oB4`-dn#89g6jA zOc%!FyWG^QH$BdMLJ_PG^>*-paAVf%Un$ymYFvn1-e7quV*Y)yG^Qu5L)KCLz4Gma zF}QCH60toJEiiwWUB6IEgSk5msK^Pp!c`n+D7Nyz7n-UuSeE(udA0OYagD{Fv-hK_ z@0y(CioGRrM4fxj`C+}p&8u$sd}d{}m$#SIa-iNGvb{o&c5R5Myq4b&R_(vO((m5C z)$i7iHO=lZwOP^+uAm+xkx<@%~r{`)@MytS&K}-Rlt0VB-7b2ivg&F>(35z z%ovpg6j%)tH!_+YGgqC*KgFWX18O#Yo|vBPcz3)n)5W}-A+@_!vFSyajAwK=jVB9Rd+3zT%hBV0$De8hcuWb?QvKX$ zJots1)+vICRjlyN&b@03R)WVrl zgblx5O>f2ao{27&y!62^?LHd2>GSb|T6_$(E&e|>H7p0GW^@&(Y^%L$vR`UHFDQDz z^8Kvaq~<}7i?IdG`{H(ey7y>`@zJ@+l$6&e;yaAwUxdDl(9J1!6uK;T?nYstNM)RpC3!0=HHNr)aktkqz14sB4l|u%%8M-dskygn-}A&r zdH24K#~z-1|KOgpWv{YMc+^l^{Ns$u8-1-W91f+JGLL=;fP*D>kza$+bhdKh;N7O? z9?XiQkUMjTR`D6hPT+#9IrvF(x8?t zL+r=-sfE(3Yu4vXO=zBbk|L52ng3-oUij)Kg*M)uen!j9Wk0Sy5Mx{SS}xteUGi&G zMZpgn0UP~=8tNl4`61C7wGmZeC!U|3+O5aBq*TXiRuLU`KlhF=I9cgO&j~v@((Vhd zRj;m1`<(T{0Z-abJ(y#%vR~uA`n#i{b1bzxcsA+Wdzsz)jD?D9*mtUloKKHw)wTnw5EQg$=B1Ug)I=hfR(Z{xHVpgz`-fq08 zJa;7b%e_-gT{XTTP1gf_Y=hV*1^(+Bv+`vJ1Q!+5SH#S7KPpuzm{Vf63J>Vh(%@*Y zJ5-fbYqU;bVgF;#&AJqnAHp~``acemV0bTaR|2&PpC3&BG1vXK-AR|-`>rauH4!A! zxH7+H3y{Rv}jnFfun-SYh*g75x`kuw%TenpG&N~xZ*uZK{_A<7$Ns3b8iUn z4W~;J2x@aihrzf%{#x9+)rD5Adkbk$tvv!f>tF)+P!HPpInRl7rB#gM0k>r#@z z>~1EkWYd8IDy|q%&bl-=_oDZ{bbJZVI8#|ql~P)29Xv>*bMM`481a;-rwMjGKbcwR zqh1i$_bpIz-H#1s_Twk?ugsoXo@zcE6nCt*C3a)M(q35IZJ{K0XQyXJ)El<$n@tiaDJiL@EluqD^fcEW6+FFX z9aWJdCN?p6m!C=b?O=EVe}>)U?jMxPOD?H>R-1 zF_Ja->6P7BJ(r^0opZVs1tH&0yDULRFk^<~Ey4eNBrX|25i z0lvEt)MJWO`|Q-E-ei2Ayk8hs_Bp8TrDac7pm4hreLEZdO)XU{f)~!;ha0AanGZh> z?Z_C~7TnNXQ61YdVc(LFk|N^7w>Q3h<>n`&)N@Pw;#i zb5fg8MUv<2d2z+Lsbv|X+;Gjx=AmB?1alcq=oZD*yqb4+u{vpfuYSDd>t=>pJx3qA z>|cGRj)|$1aqa_KEp;kt-JkB<)w$rv&mY#DVMY7w9!1j29KT87?97R%v0L6Q4>YPj zbSd#Y(Bl!Xah!UmT+Lglf6R@#bCyfU@x*a0erCDT7x}EhRb0KId^2T|kDg%ZGmz@16`xkUZVg9yl}};wG2vW}({gKa zTkfdsVP3pAZpxp$y*V{^r{At*%?*#F=hF6G>HB4CnLpmBKsDu!d8y*QU{4?8Sy~-X?8k1-|3V-*3f) zt#+uMfBqrlTK2OzTfV{*r&_ghT%X--U7sp=kkhB*Xs10#!UlO|uP7asxTK5Mc+w<4 zZd9k+Wl&*ml-~AGYf>P;J~6|>hMmUUduphTZo|w)GmBGy{X}T(ubpA4oY_!`dqQiK z6@Bg6U+5`(?aUS+t|a!w8cr;o=vyJf0?(07IrPLUn~rVrm?e#=%BJv%!E{lAfdie3 z!d&3uTWLiLe$rPK1U=^LX)!a#1PCIGKl+D;s(_c$AF|(#Zmc|M9};FnAM#|k(8oXvygk9CgzT+tNfORrH4EDj!OC1^p_2-PqQD^-d31*u{_6|R`x$SIKnSMN5(4zH+ z)yU1lCrf1;r!R88uX-EQvX?!PcI&P&-@>(2il4^~-*6`9god556&Bfd?P>Jcr&d;$ zG@svHpJtF0+szbvbCZ7-CH^R{lDWJZr)pJP#aVCsVZR=qe?3GmriFIhi)iF=Y&F}0 zXDA19XUzA$5HWslJ-7F0!m5;m=W?PoR2*El$m*+g<(&2_O=&;>-rBy+n)`)F|B&sQ zI9}zs+?^>;vK~!bYV99*R5n;1-ias`$3!2*t6b~ya=YTT3^7l(;On~<)3ZPKZdjC} z`0$1H%p;#o!WyQp?WZs8McTP>X8%cTt(%34dF#XOYgSIQ7bPCwOjE-$UaCGhyI<&{ z?)sC${<&^!!GFon(OO1Txa53IpRMiJqhC7DLyHvm;oQ`m>N_4QZJ{)(zpvJF$6d+b z`FVTG2J`Ya_qcI{4C?A~_TSEu-BYt|&vo0o_fBiZXKMK4&ohnV4$9lFU*-SMnK3IA zv~K-bFSk2)&t8l0{+mivDxb>0c%fX4J(yx^Jz)<<(?^xyuh6;J)u{#klRfBe@B`j9M&_48Q7f z>}ZBoF@f4e9bUt#BbBdz8_)`OIS+s_y( z4yByN;|sNmXnOIO?kDH$MpOGLGj8NR4-PpD?AYF#B`NxdugG>Ct>!Op<227(EUQ_U zPB`0rSM_lG8w=*;tkUfHP^WkF%O4}0Ee(z4`}Hg~d3t&RI3o_fw|<30|I$Wf2+=Sm zLL3G0p$tfDBq&%QB z4GqEA#ZE8r~g{zxy8=kXmXCSoP%znt$t0teuE)y%mjd_s<@nuO z=6@S{tF%SOTlN`eb|OBQO3<7;y@k(Njs%VBVI*l*I+eQC6`!!OQWNRY5!%1UE=ahmXIs?6!Jqqix#7A|JX>fexZ!xC)gkF2)%pOhxJW6!%h98#)Xna zY+sjZ=KF6uk$fyxDq`OGDvO8iOu#t9k*cjU)8W?Uef4)Q{S4#P zV=pS+P4BD^i94f)3K1Ef-?y`yXXL$HPa0e@+qoT^GTK2eZ8DN!U9<0qvPdP4if#kU!9#<}_5 zP9&O!Z)N)I*Y~l`yA_+eR#;cFf6g@y_YeK8IaT1fD&(F{rQh z{_HoUy1mB7dUkwpYO_vhs8jau!#POt?X&vPv!YG|$ck~eI8Au0V`0uaHY7-6SX9sb zU%vr_p~LydI=_b+*RhsgMmRsan=(Cu($M*({6&|L<8;mB5Bo&fZ8HAs1PFLPG%`?5 zRXx8rpZiIq{EO}35ErQkv!Z$tIh3hcSv$Tty_YzlrGHcPq}84+4hOBCG}L_YG5R(~ ziM+!;dzDI%Oa3<^T1m!U)Kz+C zeqy~RWAkG#E-XaK@}x|J0H@no4~qg8H;J!tf1p&u!`0Q}wSc2#^ohwvM3z-5YLXHK zd|NcCx2aQ7n18#rgFL8n`P=4z*zm@F*y!c0Q4`PX`z1J`(@A=7Fr8>DS7VEBQ+Kp+ z=0LfsUyb!JtrhFO+FNy^8#~w&cVt{JlR-{uVPR^NohM&9y0VJ&{e zNR@Ce|Kh*zre4m#0WpIV{|^}8$(w*!w988KOTIm+2;04zxjRAn|FFr zDLyKbnjiU8gOjtgr|j^R_;|I451vQsnQLk|Z<_g>JeN0ONjF^i$;lG9hGAA)NR&ZI z$!3NROhGk?Igi#U#zr4j=c2{A9#iHJMSJG`=M+tv;jgz!ZPJZ2O<%tpkP|wm#vXR& zr2G{u^HG0QHsE^Q<}HYt0p1$^g>TPaCV<`GFB`vi*2wAlfNAwza@dZ~Xi#Mya_6kl zl@~F&j)1Cmc5t9tc&R;N5m5h-6F>dommVWB7aJ)D8hMjD62*xKjksRbCIn$bpSAMg z$fD9OO|Ol9)Udh^CG!}?lc^$FwGj|5|0MAq$i-X?Ct z+UepXy(gxe#qr5=Aq+9spcr9MLvj^!$wM7!TlncLCaKs`23<^ z`z-9we@~_Zcm*ou)KYjSlT_F-<8m&#mrJKMW&7>hf9`oX$52?v88seHy3t$-OAYOj zZ!bkJ9^PCOQ1hj+f&vv>*S@DFoz*5br!vZi*GFeAKO5n8%bs~ybd(Nu+X6#JPD&4@ z4mESshE=+7@4MFTn|;WM&pY}oPsR2Fh(2oa7y0~x{9$+pRSiAslJ1lNTMQXXz_7x@#7%Te(Q3>X8)vY?JbnONHB(5jxtZOD_pGC0 z4ye1c=co&2doUcdp@++x1m=oJ5ZDQ5xcU1O4T_xy0|;xAm?>ds3sF>**3|feyZ7+q zlN02-m}!y@QFuW?!Ei?=7ZCQcIE4g55S}3|_T6*z_U;;?;#X$|XANg=j}IUCIUca< zXduUT0T8~tsB3rC&pYON zYuXmW-i)-4yjdZ?Durxwi{c$0FjGDj9Xc8BX9=sVDfN53pKqhRDRHoWU~*T8=|*>j z!rMGw<#7m|c*br6Nc{FJrIO^YCI*`%Dl6YYLyf=h=f~B&OgYRLdiq2Oo88r$eN?N@ z8KE8$-DslxNLnY<#X)!dr;p)p?q?;ZGkhqC-xC}Ca1I#ar^Q8g+SDLQ$)@79*d|8P z9g{Hy^YgRZy1RC{Jo4O(BdkK9G^l)~x%SK3p5o=}r``FD8=txkG^xEG`ue=T_;yxr ze_Gn~!s|^t0s~DBC$b=Z_a^)w_TD@k%e8$QUaQthrKrdpl|&L5GGwZRip)tegbY!H zB6FpTA(VN_T*wfi44IRVSrJjjB2$KlZ$GQ`JkR@m&u{zQf8PJzwXJQnlJ47mUFUV4 z$FU##P|-1u9bx_%^YHry&!r&qFIO)Z#H*)L2=+*O8%`Eb&0P5E>qm@!m#CZiVkFu* z@8NZym^T{JQq~;(Fl70mch_AG@0FAB{EzDCTwihvoLvUfs=)qzx4Oq!}{ ztX|sS*X3ys}~P+^o!{ ztisEJv7u6u0Vh}1O3T@8L>;gqbN()c`@!#mw)J~xb+yCRPV(QZTv6`#FVg+CWNa?9 zS863jhF(xbNKmYqOi_Y%Os+7dGuB&Qv^l|5j!FBI3B#4SWkh0OA4w9TciVx z|9zkopYh}8&%VW=CW4Fl5)3OPn8baJ`5c0=6zIoI3r#v??iQP#r5Ku zA{&3*XH_9IA`ZEy*P7pd9UT^RwR@ktrr+VTlnGATqOu|rC3yfU@pa=wr` zqZ{?=jjCzqG34y_?m2wB)bqykfmHQrTL*?bp*ET5)ePNDY*wcwwf%gOr{?B{P>6~i zJh+pzZgYDNl#+lsUuxzCxFV3}Mk#mol9J1A(|xPO=WV6ef4iET{_6FLEKdGgy_rcg;*&-i zIky1ORX-9qJ1>=VJ?2soV=w!y?<}nX*nQ5udAKG zog%;e^>4YAAL6p~?*7hK!omMnUrg}-{oPMP_5Z&s;i?8&CYT}st*zi#0Lpt=<0<&A zAf37+Q~#fQc2|q@t`zI*9=)ZHRLZD2A(MXfDk{f`g@?3T)F>}JA~HBg=EiqHdjI9i zMX=pg5zT@hv&c_($DpA3JouPoAu9k|y$^Dr2|(?!&swM8Uj6%b&-enZ`Dvv!YTj>K0e={j{{cD@6|FUI)`Tj_h|c2b6Tk7Vizko|sG`4Fw`&vq!KK($2T^gFNlG<-e;hroNBNd0sEh^9b)vxhnfL z?ue?U@gRWuhw0gI*REQyP??8QhzlDjDsJ*4&Skg>fyRtZpyO7fH)a$xL9y)vwPpf} z217W8C`KQ=kKk=WBqc`qGvn_gH?zxSAuo98#}6^6Z=o+h&h37;WoPVW>%lOGv_4G2 zK>)mVq%~6Ep7*%S>FVg}B0Gl!$m^6ihsVWjCn*|aR$UL7z+0$pF$X{j{PWr2B(9}I?=2qpfM0*`@g!>aX& zy~W@*4#1hjkC_(u?rg5=vMN0Ze|W;-g5Mods@ST;zZSVae=Z*DGRsJu{bA-&b#ITl ziZdksh)YC(F`?^1193R5P2lo}Lotq{dl1edOcWzrTwchX24~l!AMSb_h^GM|)&{hE z1lfTuhCE^cxagoQdi}$^rfe^ZbZE7>8|xiOJf^qK#6H24_u0|!lYpF$pV)IK+suxd ztWJ}P5YeFK^{OlqHtv?uOW}eCA~YZDrv34p!f5)?kO^Q@RV@wgc;i$GjFqy&g&(hG zvplG5qrC$Ya8p?0us^?r;h#aa_McnV zyKC0(4Y1qEo*9LC)6`Px>@|iw(GejbStOEUW|mlj)~)5CIwx{%rI1pHVH*iZLC&Tu zE+nuKV^FiXFr_0V8L(9@uc&Z`7AosfmoO-}9*9MRe`qBnDh%RwJj8hsIuOYB@T^r6 z`8E~@xYyf-g+nm3BgY`B5ZK;8!s7)M-}KUSqq>^f5y+y2(Fz)Y@?P|<{VdS^KuCIb z9T(EHu@T@@jyVq^!nJGHvT)N0Z2_xpeh;WxO3?==;USJy3}J`~7BCS`i-?G@A{+=} z3wx(?U4KE(n8jg-|seo!5|G zH<<~&juNAZ1mZ+Y%#m1hCg=P*9P9v`VBCZ?_W>sRlq6ETy8u~m^B)Nd8_KY0qb*yu zgh{(eZN#&+0b2(Vb$Q@@)|i@_!usZrObE}JBS@O|Lq*A>FLZrkll{erg@d*eFE@r@ zB(IlJHVBAy%i}?Uwi?df;{^`FaL`zg!}vgFT`iv}KqzdJ^)-9tCkCB37lvc$9X==B z=-j1K-?z9oU(A))uX&1z)iw3NMlqKit7TJWOFGrlj6?XC4qfvSM^)4I*I$1jNK&!4 z#N~odPL2Ta7KPox??eAqFZY2t{xd;qXRaiszfyF`+0{2>8JFDdQ{HtdAk^1C8Ol?L z9r{N`j=Nx&KPoG0%}Fe)1WjHO9`}nEhk(E#7kI<+@^UA+(BS09Gl<#j!hUIl4!`qr zOA0lKZt%e@CvG0OJlKxOy$%Yxi7;vG2)I-H7n*k=BORjD%a<>2M?h;<*8Wk!$a+yR zv8HSz`G`kYk{h-iq^*KsnV8)d1}GChrU2I#z!3*JI*h>BCZ?xlU?FlNGLjke@!Rh1 zs~`iY&MR4EGd^TeZB#Gf9@no`w zjfR%Ck|+nT1bncx1RbW%>$!Y81#$Cmdj>NRa^Xd**Z;p?eW>QViOCc~5Rl;Pedo^6 zB((>SOAijcYHXC>Oh@N&^4c{~;yv*5f(t{EEEBYA)b{e_Ll4@_v8K(0m}p`6cqXKf z2082q)jgWfge?I93m*6*tfkD3mQD9hR5d>6cP>@rrq+kwcDSo&mhPt zZ!JPZ#h_xHoP4!6^D+W-2vrJuQk4v~>evfmt>oNT8DPvYonjNZU15r%Dsyf@u!Cl|;)|-P+t?rOdXS$8 z@cV?V#G69KA)1`RK(!YZZeQv|IMwHQrGf#{42BMxy_vxA2i$hmj9g&Msq#;z_RS)@ z!=xKOyYnaroq|9cs*S%WC|YP;U0s3QZ$?%k$}!@I`+Jq&>fMR`D=m)-{cs-LULS1* z@=Fd6(y~f#;Xs-KUmtb`H%}y$o0Q*LM?%ryIU;EMiWZ;xb7pC>+sZOo)WaQ_Y-ySq zhA@yK=fIheYXmT7|3SP3BP{#H5<#z%5FgE_F-)7BpxUS z2M3*E$NQT7I}{C* z7E~Fy%+>Vz&WBMC%0 z0wuz~s_^>}i=7^sZs$O>?Ywhl`G5~S+sIF<=a!X#UDl^PHZT%J@4{@C6`=_U-?(vu z9JV;Db5McMf+;lfxr3S+na)5bAYr7WmYU!G4M{sUA>xk1Wj+T~`X}-WL%%2I%2vTu zlB98~V7`-m@vQ(xsatsv)dF)rTKFgtc@rYKcJAHli;%o?ErqtG1j7abs)C4b8SPxN zGWhVT;27O+-pVz~EbS`6<}$OHEOx-$@ERagB#f9CrJO~5*3s;~O#FhG`3?U$?RnX6vJ><~56*Z@#1 z$wKU!qiDS7q%Knn{g*0}c3%pWJIp;HNz;qhNuZl@P}W2Kvs%-~dE8tVxz>Yt5?ph1 z!c$&6{#Zdo1<)(Yfe`+w+QzK#14)#&$#N}PkSH53%}*9Qe{L&+tp+-kWO&r%Y5V<# z2$tH9U0v~Wii2u+kto-Q9Uus#2|IqdkQxev-$ge;q;**QFfQNdgnh&aPZq)XA$0=A zk37p{Xu(LIsF_BP$`E7H=i&vBz>byhExg_YhF+KL?5dlZ0+Sg;ELm_Z&vj-QkV0c% z;5KSNS?J1vWa1WQ?%?C2_LFnR6Hx9Zhq=wbRuhy@K)B;!%M~tkVGB7XVE!T!6ciLD zV7%Uk7);^$Cg2ACeE{Ia-|4X5M6jG6Qx%@xLK=H}d(zAj`%_|%1b>zQaqG*MUvzav zKHpI%ASES*p{y~AR{MAypWw+3p)C3Nr+wq&4Vks)1$Hc%Vnl9j-!^SA@h?2cCZ8a! zh;uBs`k78UgYMV+AD+)pWnbELCIsM`P!)#rdmuD~5#ufafuQe(hK49yKDyG<(74CO zvfZ4BjsFSYEa~8fMice>GxX&j`#*r?xOSjk#$yR0jyTMx;$ZLh`$sMaJ%6h=?>AJz zWCK6}xPn1;`=rIOr5&LaH9?zP^`|KJ0&NfU>-vZlm=&t8Rn}e{${)FJiHT~PLVtPE z#qsK8E7x-?BGPZ};!{t#B(4ERn>mXjCh(hifxT7LoW|@-ayA?ZsBNZ zDapq7^Pg)>#TIlAmRr?TDdZ1JIj$C`(i;GGi%wzNEC?glFahFDvsgH=WIM;(-rVIks?Gv^!m_vIpJm;>*Zfv*20UdyeEM`0rOI4+nCH9wsrFpe`L#sQI%oEABsk`9nvRv#MJzmAUH$>=#$YyNMGf zNhJN}{^+SpyM@7M2jWa3c!kQ4^t5obfZUZBJ7ZcAm{=W6%}j;ClCTg=#8k#7%-4i zPgXpP;)%@1kssEN;Q$`IHzh7kFi<#(#!eWuGsnS$OlLwa_=LN?Q;v(JH03q98>o9C z*0O$K+O`;6gKV<#ue~%bXD-LD&#HVR+q~BOiucUN{-m=&Cs<_7?uysx4+qp27AS_4 zx&`&EE`M9FkJVm85)~0YE|*VIn!hz>vyiTkaS-m);mOIf>=Ty--!RBGCgu#X^%4>= zwx<9|ma^Bis+IbM^>tR;4BkgpkSW8<65UrVZtog%ZvUA4W@9+I^nT`!WkX5kW247; z`wfnY$AmZkeV^w+!IgcU^rxLGY~6;dBa{ujm5b`#UCOoc&hG~<9y?Z2$thmK35HGT zT4_DUr<@r_PIjhuIp4@s>fR+aDGY)-&$WXduJ7Gd33a_Apwaq^;`)&@9OUpj>r2rD zLPRx$GR`^dH^vreP_G&*_9?|F7*q#S0%XlAH>BfOXSQWvBzqCFzrp{{(^hjvCjgnEHr%(3DHjcFL?))r$}iLm^$J2i)tLy|8CW&! z6nW<{Thut!5wBUxrS0LE<=phg)3N8T3+H*h+`r#(7etyv()2yL-?u-f)*ZNwY2~4S zO}o~`xbpab0UP7&N=^L@0whoEgv(dkn;5bodYGYHyms-56B!+kj((Vbt3f+fF1d&I zA(?ZAPimRcic{+*6eLDy8tk5;M_~}#V6I`(;v0j58@3UW^zQB333Z2M2d`jE@u@ddMcXNAp8g!hFQ z`zfBvZ@fovrL_>sN_If%1gdjphGj6S@$k$V)F zG^BeNi2)x6qD_fI5F9#u=`fB4Mn*>Hp*>+Gy&ulWfWA~=!KVUcAj8teqnR`zlRP-oX=#k*4(Kj$qRe#HVVrP*%eZ9lPji-0EH8EDr2kOqxzA;Xg z-sXLPx_Gtk5S46F|H=c~tQ|sH0V&V@Bf}>Z+1~vH2dS2jXAHX1w~%Ufp%v*pBmQj*S0iH z@oT9rSM+zuoW9)pR^W3XSF8C}wbWB$=6GuY+cQ0Tn#m=}bM@ z!070cuvT3!EiKK$!lHsAHJ(5lB1T3=?)mv5aQ^7_nV{0sx?=XZfx;rdAeBGfHml6A zGHy0iqdUm%up=$2B^B4BN1x|8&JVr+a6{^Fs)mro>xl-Q#l_83(Jy6H)if)H`=Ybj zA7oI_^=*?7b3GWF{QVnMWkl`yrX z`qRZdTyS5+?2d7+-G2VtOXGs9`7R#jx7IjqB1wPS_sKTt8Wp3&cPh%gi%S=j4qI>C z99^WEc8bfnC<^yXO-tvt?9mkA)HZHfR!53Q8^0}WY0%@Ul=*tyv**v-0iiUdiK#Km ziqWmUV!pF#mr_j+^`0A4^i6j0634;ExG6%lXSWtIr&C>zvDGd;V}tM!`Bl^!@6VHA<_2kC36c21yQ!{Ui+;g zZ0vF>BIFXPWxgJIzFqR`Yo=qic(gL5*s5NeF4{;Xgyk<61% zv3c(MCN(u%2W!hM56T>4Sh_a)=6R=Z6|2fz$vpI3c8wvP?lM)=y0?_FcUb7;)MFee z{Fm3s&W^ zkr{5c#?T1@;@pgT0yIh$i0Ffs5wvWp0eisp1Fn{&li0jv%Mm~!*gJ_&Cj3QEgA~{d ztZ&C8s1Ac5xJ=}>-$;1NA|0)4V#lcOZ0r4iIyWInakrpc!n)vxn}cibG?|r~2{kbV zzF+E$4U+B2g8{#vkZ|+PY?*_1?>o8ApG?`4nVJ-z;~(9tSN^UtP#51;wS13f_nj|C z)VoTa9kT1$sOI`|;6wIB)?sEvg*(0*ha%lW#V+siedb7GJdk(s_=%Kv=Z;#>9@$~q zObM^tU7|0xDi>2FG~FSulQUhH-DGaY*6)uU$1!1@#o3_dGm+PPT1NgBI$(E{Q)=b= zPN$N_#K%2H?Oeq?{fFYb#+eB&$KcorU8^jiF{WTZ-7fUp=?_E#>W~<9u;2fBo>sX^C$K@5l*eTm^gs zFvRoM_Ga%B(wl|(86c$^n7L(N`{*Z{+=Ioa~DsZFvXrCI(jiXukGiXSbWk;J2&gpdv0@^ z;B^PV?@dg|uqUQ7h+f(LbGNLFjyGT89KVhjv*oieASdzHAZN|a&T3(ravqZjr0p6Q z8Od0{;0XRP)>p4qy?qX#zTDrr;v6=NHSWS18I1secdd&K@Rku3QJLyD?Wtj*?V2AR<>8<4dRLD4$UropS zMX8^lc1FZm)zen-aRuwGsJBtg3TvfhSi}`nUe{;l#2#8I99$UKA7s8pvLxo~me}&% zn(%gpnR&bh zrNXIPU0v;QmRu-oaQUy^zmIlcW^}JziOA0$tvAjpPk*b>BHyp`eBxfYiI2Tr13X*boSmK?CiR* zZpOB+suA2@ZLU(kl`HlCuozn}XSx|ng_VmK!L`NCT3nuou=iD1vME#;TDKDq4nQB2mS z)6&w|_wJ>fbVJkv$wja_13xZM1-w?GV8;bhG3@=nUaBCv)vL=A16|NpE{l`EAGj8_ zM5W!nUuku)KCk?QWy(D^8?nnmk@_vQwjEx*SD3IUl5qmfcl9n;^X-F)JEr>9&x!v$ zW=kaV2U#5RVi@z1@klZ;dqpcnk`^ES`&HAoNk=!9eA>Gd!ZEfOnCK$i9EA)dci5M+ z|NOZs#}ehb?La^#4roGGF&2TFZgs{Zn7L!9M5Zx=q-i>TO5p9nKyLfO9YgX&=T?gJ z>JR!#(k~oHN*v6_pKjb}65)tou}-*1!@_Whm?RQTbfGRlG??xV`tp^0035v(r7X2@ z3-(`4t=P56bOiGjq5Hx54MC@B&kuzfjXke8-8tL#_qb-;8usasaduQ}XY;I`n3(fZ zn(k?5nDkeA6G1-41i!ZYd|xK(E(B=Yz%=EJ2FNzzc3(bdjv+Y$iyZ8Zg(Tg*k9JuP ziH*wvoSGSJ^99^yD>BksDxFz8%LD{!NE1{EWnv_b+SgTKbdEbF8Zu7!z03hKG z#~~*6E3R{gCH=nsr)P4_Hp8}-3+cp%j~@NY2O~gWPLgncRaFcZ_`3>p@Si{{zK+`` zdS!T%kLCMk1X)if&btuj0{Fd#eoUu^f88!GeZ5ZhYQ3&UF?Y$T><#UiW zA?D;!erFXY>;ir}#Y>~?L)f;D8E)1+=xC5|>SO;!Pg$I=3a2@2XUelJN7!a zwz$cxm8(IQ+pwqE<+UTP&nad#v0%NI6NksnOj>U6u?_VJ%fG^gJ>Ia*L!%*)UI1^P zS;Q=(00$aETG*Rebi@LqM;v;@NMGg3=XO6Z)eZLX^9SO(eZ&Z+MOnK3`k$+_I^pBQ zEPQc0<^mXO5__7K1bJ#&Z*Om6_h?kTfffvsK148`!)~2h38X{|2{32}HZTg@f{$&) zK{OUUJv|sYw`g}LY*cg-^!}KV*(`OmQT)l8Ej?wFw`;qP_0tb^X8qtfQz$b0zCIv- z`3+PaF}b9)_-`M5X^ib5DW2X{?R1o#C;Lz!n~lSdBv(>hPI>ESrc0j4T&w?dm+p%? znVR&WcrQixpEX&EF$8>%JPrjUACPHyJe(ljDrX9XNFD&3nF{%h7G&Gk%4J) z0)|xV_+Qlo4Dw;Hjoc)XSc73WrZ6oUz&N3>=~hH(jRQ7G_b#hNEvL|l%$?m1*x6xuayRs}A`2I)M{#J&^{(-lGzfT@)|e^P0r1kexDh+7ZMU*;QHers$wm;BnBhYL;+hQ zN%ck7LP7*EUIjqVq=7R4v&N4m==aY^*mI5DoDsUZyZA2J#rAzpw5FWmJ!f41@NKk9 z%>Ll+uILiaDcl>j_)xtxg(8J=>|1I=8 zx#~U36@Sp;{LZCpo~|8i(MpUde%1F;?C7_dns>gzPLutg^tu&~9a{^KkAFA_GQ;LN%S|s^8XzNJ%bve;M~IZ_t#v8@snB<{<51*T;V?6!wn~UXOqJ_{LW% z{k{cG$L8meYX)UOH?qqrU36WJbvyVc>p5}<9XHxJ%rsb^ z$iG?W8=wzGCYr-QK6d+gztFx$!6#R9>w#*T**`Es3p}o zk>obUZ8RSFDeUzQ-xf$kJ29mmi1Ii-@%8ookBv%APty4CVDg%VlBzd0=Y-hR$Jb+R zKOCb238=eQ@cNR)Rt9Fp?v6H3z&}~TO;w&f@0ZZN+qh-^;b=dXkeI&aN#SN+#>SZk zP6gCYQhEY*e*1Fj=cW7pEN9=dzxxAM+l7d_!;JS1T^aL`fYfe0_)!Ere#@;Zl&Dh%3 z68kXNk>9jQ4=wG6VdmFS7n*XZt%rtmp6T3-m+=y(dtcslF3>(>l`ML`@VCZXt6X$Z zgTB!y?YXfe{=<>NCJhy?DnzeMOoU(s?;0G;ti^hb==#YVr2VG5yDEr#v_IXReSC(y z3kA*dm~Nx)#heT%&ayfR51GskY~LOP8W{X*%^E}^zQ`DU+eYsv=eJYnXuwXKEk73j zQdQBBW#*IjkA78Sh=wKXwTY_|noO808J{-^eXw@s>fxbt?gVkWT^zlJIb+RP=8fyo zmdY+}vZqBc_Rh1wc2wuj)!)}l+u}}cq8lxn&E%a}?EQ9bC_hxI_|s%Wcr)hX09!hp_u?;75+EjTr{kqU ztc&h)il3Oha&&TWQgZE-?LaSJvyVUjqdD*|%;4lUBqgF$>HGY-4qTEfIxJj_$zjBM z9?q@KNVdcg&_9tkjm1o|f$%e}n1yk!?Hk7j5FI_0gB)k@`L@?!!7ie0Zr&|woDo%tdqB?1x&mTlYCQBlc})QCKwCN}7x@d6qD4LQhrY|z71 z@@|FZe%m(&zuoZfUM57*Z z6DdjHl){1L61-J>_D(FLdQhs+Ki&oik0>v!G?Y0TtDuvGeeD1+wFI%b_x5ZkRmiMR zyUoLKi+xNA#vRJ}u}MJoN_v#Is;fMv>&xm`M1y2?i@kHEw4d%uQopp{(E5vplm(4) zwo`9_*5_W%wer#X(nMl*iI=hj*S-dT!6F)Q(qhTzGvnh>rums^AzIR~m)BRt+&v^h zu1}JPdFsPUFW#YIQ!QGVRE=R_z9E+pe*lYV0X#mCZ;$>wS-iSreG81a@2{u4f8ur? z7Lg!mw>*THVfg7~AP{qq%!j06!b>{gAEb1Z#*eOiQ! zfw9#9wr)bF3VBtmS@vbFq-^IS(?6z7W-21E-uNWm`sRnS#l2H$1kUPU+J1;uFlMAe zFw>JyImU=j2C>u&?7KcK+Y_pP89eSb~=SorE}m4_Nj;&7i>sRZE_q%R}j zC_?g>%BrNb34H_8IR|uVTHu^RF;4yy6PICu=Htf6&F!;CJvj?yGs#8i&&cn=slz6l zZ~2}OSP8qzhp?sLZ4u$)?{7jrHJC{tvEthaD*?R4g)uRDmxM zDAXq|m7nKf`I0BW+7+(+G|B+Te{TEu`{(PREW+gfS11^6Y1_PV_n#<%yxcO2ide9f z1O!myVhmpFEr}+^K1k$!!z7pBUH-YPps@4fCo=_$a7B~#K53YF98FMdi3$=}op*IN zdT`Wi3wb2J64WQ+`fn)<%o2Dd8yg!)Y#9iKlZUDGrFXf96Pn&=fHK9)%M0eOb{g_f zF}o}(E-nm51Cy*6end@e3&^6m9&fu}=EZaWdhH93{uB5x%lOatz2Kcmy;S+ye(v(* zi#l4p%<8IIItnLd?a#oXI^UVke_q*;asV4ef_wlWD9?QDW%~({TYr6$pFgCea$uRp zof112zacIeZm%Hnvx6q*Fq z^&d5jb$B1-Jc~JHojo%?C~xslgF7lZ`kzX_1qi}Q)%fSp3KUZXr-G}G?!Tb;*RPjf z%2)r@TjPN95?A^sj|LL}(F4D}0}pV)$JSp3B0hP)e~S&hg0gbTvEpEj>2!!?5CL8)LY<`d{$OVRl9RsLSdT)(7dnA>9wc(ZCb1Y+dOYg|`hbU+j zaJXnuu>3k_Hy!DAYVEE<&sv6cr^+Jj8l|tvUNw++o=zjn(rV4AJh|~(UrQGK0Ug;Q z#~7XSzuwhK%{J85+M3KAAnch?Xf|(s&GPnkiszM2N{^s6z!{09^RM@Lp4+_|_Xhvu zYPx#gDE(Ua@?jl^=(`JyO?$6%Qsl`eXf|!}_T&wAesFiDoB6M62d9oGa>k20;LK-! z>#)}9$eidFvyqqEI$Jc%4?ZqFJbta$kyRGfqx8OzhypZA+(R`vUS6ie^E-%zyvchlk8RuBk`;b;8YHSZAVCJLoCG_ul+_H z$1R2q!!FK;_pqh2!_LsKmFSnUZ<$9Dk1Tra?K^5Og4z z92tPvPQqNEVA(`V`_DUiIfaHey_oBDQ^rsV4E@}Dp1#|BY8LaV8g*;xJI&j;%s-#h zYDqmMA)d}&%J%LCTc&2#MR}&rvnCTgG-Q%mAogy{@JJ;a>(~*Cx1F7Da1E1{qT&0y z1y#{sfB*e!0)~~|lQhVxf?#CO+%h)5Eu)N%4!PwX{wb7Ue>iht*y)BQg(|J-Ch-rS z9~;e47v9roH%PTOWX+!$g>@n%e6!S(syKL?Tri`rrxS$@SMl|PP@hz*{pyyfrucS- zQ6{rJfD2K6p%DJ(@hZr_P*_L&GoVK^3XqhuC=h=;nUdo8mAg-i~)8J9-fxB zGyYM+w(!2$<<9Wd7ZwTZ1)3)3`q1KacQm+Xy)aq_;TaMyo4v0djiy@c|2T3n zKrTQKbvHq^HJ06fVuMw)sncd_JL*AgO;bDzysiyQc%F4 ztgQUcUGI*}?XCh|Jiia#IAvhx|MS{&y#LcS^}n~Tc{yn#L`xAZzrntj|t6d$yrfjRGHm#Mz9qzG4urxREtLvwh zG1JW}x1FG0u-C_T*Otw(2Zrf7_71le096BQ2=5fiLAD zWJ|9q_pWc5B-{PO?rV=9G;m<1FTHE#r3;GIZwNMezGK;mMJmvD=SZ-(nUHzJ zlh484^N!-S;)*P7_f`3$=acYM?6>R|MeI-=s*itOFmXWS^?8A8WMG#pO(~!_1zdC< zFbVj(0R;u3&d$!)2E$FWw4Ru3M7m=UVpx_~km~?has#Mx$RAAt4f-`YP}JtOKfYf@ z`B#^CJeWbqY?BW#ViFOqqr>v_=~Jk~CNaUBte}<#!>^J(K%yLiFO0CbNL>jzofuF` z)VnYfB&?2`H*aQ%LP$agb{U#2+7$jKPe$1|MT7OcKs(^9u`_!2sfSByv7d!mTKQv2 zx*DeC48n2SFbux!Uc52Z%_R_3&hD?;9H^b;BqP20^XTJ8dO5v9Qd84EW`6e1o}1W; zss-(5sB9*6SxsGFipltgft1DlT-*$BfRb4G9x5TU{a&x+mWEuBVA7%uKa`kyd`f_e zJIvl>VoDN##6?r(WA91x_I&_4hmgl728U~%qqbdQr0)v95bTuD zl&b0+>UofmQPyan1p9z9SK)dzSRmJ6sp*yarG~y+N#~ft0 z(a2vl9!=Cs)wsNLMaox`wI4$Wa~Vma6iYe&73$RhGO4SWeM{K|(`c)@N2uQb-k|ef zVkh7Ed387z4!`KZTQheI+j*IfD_nf%5Oa&KS>?+5Z|7?xWwJx83vUHTi&xp#o>rOh znK1qqByZ-2<~awU^DqLMn3y>9^KtWf?uS{Zvhja7at#&BOK|&vEy*+$JJ~PK zq)78y_a6mk1IiK;p#4Od6+*cCdo|O~Atw%G%WUI1IwD_``Y{8=rX(Y{$X3PQ=we;J z??H+u@daH$JYOrMKkFlHI z&JVo*koR}*Ig5n806w|tbEQvbMhEM9mjh26R^9rwSa|L26g_zb{I&Fzw=xZFHhR%a zRW7>DgfasD%)2$uns|>jaz-i(l65xvHjPCprlL!bB5r<9+Pxop&Quml{iSTb&5BR_ zh4j;ClZh`kP$)fTBYI_j z?+?*uR$sVyOQt4A6-+)s<97O^c5_DWbL7RqJzJSxo||73C7d2i$wLLeKKv|!*5i=t zVUFpQqSyyNxpA6VzoFM zOr8N>S=%)UY7ej3)=Fs`ReqT5?iIg&tFcA&YRUEFLB6hld{6eSjwP!5>#4TYJ$MMz zm9BBy31HLpKrQ8wmjqab;&(NDDR;@^Qg=ZhNMyTDM%>!DefuB2h!DIB)xmX0EQlrr zHD%Mtl?^PScSF#WZ{N9d6;zer4Cy|*vSZI4Z)B}PN#o`1O`_a;KC;}`ZVUGsv@bbn+Y73+xqWcGBsURGLBk;@OAO3&n zU|LJ#ftStAnU6i!ItEV35%>3n^DS3tc^m8sM7#P1FUmW}?gQkPTYbMPVbH)rxj?VrzY zsB8&PoHpgTQpL`82a&1}zuBT95w4 z3p!^Iy@|vVUv%}aJs+Q%x)u|8ge`ej0Z0Shq9yUIRUPg|>p&WlyTfp!3fqV(Y-$l6 z?U1qsvngge~tO(YMniq=~Yc-A^PQc z<=nKzJDo2m&0S_IKO)(=-1fKY%5&B)m}#elO5Du*pO|P%(l}k>UcTmK7lip@TqY#| zXR<1IqDAiApR8G!2&N&RZ65tNx#|BS$qbXJo{g--G`Dcum7Bhq(~il^Xn_jraWkGf z{dV5;i}Ds-d0FFqD|;~AP2ikn5KCvL+xG6+w1VSj>eX6PsshxKlY6jq$PX}qmJ&(d(sN^aJXIYR4vIhGv%By3%!R0DlLV?Fl$n;az zemrmNbLM~V{Rm8}ET82^KjX!VLO25cJIm`%RnqG%cCJqAs?yXU{L?h(`~8E~ysu}K zZD?DMO&`?w!dtxCipdW-pLC&>`}@oUCtzSYY2*9Nt@)n3w%?uqT$bV`@P9^Au`Tl! zDHa7;<85c{Q=VKowZ5r%^}4SgWEBR6h7#5S@cezg21fK|VbeoJSdR@3v6Gyb(W6H; z*t}`eAq@>$w2CRvq(c~WZXbdc0k7gV?GIPfasqTLcKO2}kmM6;3nIQk^%1I=3(}`Jk8lea!jcm^%qG2qe=H&xI<81#aX8vdh~b-VV|!S@nOgSb&y@cO@>p zbRZlMKo#gLutp~2oDwP$M&1A_gGG9sgRvw~YLmELD8|m=fYZVQ%6wZcVFw1qXaI$=eNdUiwm*7zX;zJ0O*8Ubia}`|)SLl*DUrC%CFNe64(GU?3{~P5?Eg z76!*(Gv;GJnem`DCp%HP#<+mK zUz|TDL`OBN%^EQFn)7VK{?P~fBSyP>f>EF!+Pr1B8t89!vSu1EU7>-I$42$d^4BCS z`A}74UvnBfMB8>iZn?mW4|P8+kW=iQv=mPJe7Y^RzIOe}%oFdpX1|r3bUM&99(2s@ z9vjVSB3szDk5|A(>HZx;J;kKn!&9%ulTv=dvD^OQ@|1)Rios1-$m_SRL}FWgfMWik zhL-w6v-Un3F$w7*1s=VaeCDdJtYhU)Pbm1u`z|ZR@_iU^cut7m!>cceIq#&f;NH4| zozN_UY+cN5?|jQ;zP`9)`n?$syY?eso={$p+xnYExcAgYX=@4$yQg~NK@!CXjR+L; z^J}!>5COd(`<^}Pn3&%4I!19G080z_4O~9xi|6ouD74`+7l*nQuNGf7BZzf3!W$%3!pWO=)0 zh5m}EXuF4G_Kg&_uVn?Dmrsyy7Ee%XGUqT}WByq&ck;^7v{Oa~!Xh@st=CWdt;gyw zWc;5@wC?pdY;XXf3LwN@6M^tTO^w?iFawo!y|mkwohi?U(EB#-76jujto_>O#>I!i zt<%fm{6bd~;zJ&dI)W#x^3d!)CMl#PK&}SJ$-lb#$=ED{+P>MDm6ykX+Rp-o8B9iE zF@O<(*!|+giv?SSg@v&TUQX+N|9-(9!Ys_c`b|i=kY!L&uoat#8=GlFLfa$Uuzoum z>zsGmTKzAeFzRR`c!sD%)HsVQ3ck9smE=4HCJeONa zZV7wsCv+cFpx)(K5!VY~ZIFQQt^ug3)AdVZ2*eN+RNhGF)JVV;x(eAH@wI_)_N4B= zUe$1He#Ci}L%%Pd2T;x~(9i}6l0l4Ue$_OVoCo@!o_%&@4^i7bBxabH`B)NlJ8{s2 z8dr$(->^(xgDLIwxPD0rN6Esnfc}@lmzjGw4g>(SxnQ=xr4HHK59!b^W z*V4u@HC^44NS-D#b-3~j4iO)mC~lv04C*X;x0RGX&E&nD z|45i29CWFLzwdWH^6P5pERgg|#u6d13LvMTj`{_r73dOf9}J(ssB}-ptp07b5k+z8gd6nWYwEi(Qa`l0iR$3Uq&A8AYv7`|QH>C@-_PVkbA6)gyW zMNgLgxIpha+}uRToWVqIDo)toXP$9~qms3@%Qe=yXiC^>atU(Q<7%71-ZN^qRZV|) z_f`1J5gbE}KK4c`QO`9hi;@<@zUk1W2`Acs(}Op7(*K@8n;X;H#Kc`cGpdRE3{FQl z58sLhV#ss$=>`ih%W&NoG0=)}{eA&n1J|q2dJvL5z(%4vMHLke7GT^lMa9I_R4*9L z#EIGtZeVks_>*X~InX&)1LcR!2eG|rZEbzi3h;drY;Vw6+Mnr}pL-X1oJHE@{_GCN zp6~;A(JOF)61=5Uw8mr1wDwi;;jfmiMc+J^fyE?p{0|>}&}!w_09HJ}!KS_C^teb+ zG}L|O`(}jFHc0tXj^UUpxM?{YBdhdS4?=_@`}&0nEwG_#6{Dm4)9*7OH~P>~9ge|M zYb%q3`5={^>oaQi_?xOgHKsG&YGqa*S$NOhmkU^!9ajvIoZsiZ{@zaV-9d(wn0_tz zI#MJ6E($7G5F{%E)udvK1fwj_K>Y6=rUUDJiMJ2nO>|gZ0Rfx`4@M+Iq=0e$;D1oA zv=pQQ>!#Y|uQ{C9MUgL6kK?uP%X!b8yWS9VVLwzhw0r6AoC6K*j$1Az9T<7)>K32A z`WktUZ#@J>6&*O7%8I=nhVQ2WUppm9PewLo@rhAV%J>C>=*Xk(;1yU=-uZp5hH#p0 zKd63*Ql2hDg48h=e=L3k0#fk~*bq;QIBkaJN!wMcR};(=r**p)whPFZh>jDc@We@N z6tfZ@or1eCwIJhURFkSvV5NakPM8C*IPe4Y3WJuE++5l!>|C{oO^$!|ECQ?mZD7g# zFz_ORQPBSZ+$W`{-$^D`CLNEriL?MR>MxYJK%bcMP;lfnxL;2!-@@MP?PSB$YAxrd z?0$c$+d zoM-+k0g|GB2ITCYDftm;y1VPVer-$^$ENM+2Alu1meJY7MaR8U(o9!7;C{1Oc6)Kr ziKKVhb@o1HVkZ()&9>6&{Gn=hbXM}NR_peInHol>)E-J-uH%%5M)e=DJd<1xW*8=fYE3K zEOIBX9jE~%5Gl(WN{JX{41@?JJ+fs4<+TTTrv?t*-C^Dz1-yON4PK18WO+npiSgie z@2F+(uvJSLiMu^$=#6UbMKCCt8;YuKJ{+d4-8KKEE_mtF?BNZyN}oy?WxN75mKjxq zI6pFvVC3ft56W?jy2QI?*3WcdadBig#eQ(Vi<eZWAU6Qo$Duf?HHes|cm_<$z;1&aNKH^n0L zm(Gj+c+$V{Hd^e9xX$5IeydydTDjK8m8|P@UlLVSky%N<=09|L`rEQi38b$J8f`*? zhAILa#@|G{bT)ipZiL6?NB%fv37H(4bx#)s4KEAGeCJd<)pDony?>4S6OU%;y)j~Q zcV6V$TJ1@0t-P$ZrF=g}R+TOvJ-rS0kEeR7Z8%A%+Tc43kF1pDywch;y zVedVlx&HsZ;ctruX(EbBQ7T#4qe*0DWHpePy;6xJJ5&;qgtAf@$xgNiS!M4XvPT*B zaT)W;AhF6{y}Az<9)wg|AcPbT%gWL>x%^_ilEM&_5iP0Hcs=bdrvE|lma~EN zS3canc(>TkY}mVOxVLFrV4ZI1p_o1IUQj4WpQNAOEiSTh-ZW_Cs`%N4_}Sm;TEy_t%B)BC~eXeTHVwd|W`z3#t`Kk1ffp|cqu*Lqz zK(2vPyDo_vMlyejQRTnjq00Z%ZI{VKwaOd^7*Ra|h6!>=g=I%`WKePeh}0ejI1-Gr z2I_Apa%MkUFlAh$r}TZ^Th;ci%k{#C@o^shPHnZrLCqs}RQY!${oWstS+n2v<$lR4 zLN_D4T19m@3kz54{_=}mbyk+DFXW!v>QUK~r&gvZpw|Py`z91BB*8|zibw?FIh^1I zXX)wb5ixQG1_nZ0KbkYojewre6HOx`A_%;n3HTI&og48lPH2`8@RuY|_XdPxn&0tB z6D?*meZxW0dhlQqav*^a9LYq@hoj)(R+Y4tVR|>$i0Yd%!7aK88q^UiF8xm!K6fP- zTX2LqSl(@+ES2)2>6-SuJ?7!Pu4s~3iSofy`ij&<`e!QIQoBT}BMq-vTZ`m8rF4Ae z;;ya6nUaz&5W?KXcgJ9Ha?Kt)r%v5d^uhkp2B_84Bpb-1p>_H+2kol#D+JBe+xsXa z#Jj8~PZNIdaQG&U-#u1vwzf>yvIjL_Lk*5YFy0CVY&sK>v4g0OdJikOdPN>fM4cT+;oE9@o=teF=!ZAfw@1qD8c2JA(_ zi1coJNxq17Dr$G2U~5Bl$r>a8>pH`XtfYy){tk< zcJi6GenATpk0f{4j+9r83ca=idOZPVn-w1vKVD)bL6}D9^=C`Bo}bL^HY!`qm`w!m^)7r1fcZV0} zZ5ue&OAlJ4HxG&0cu{L^=)b?@c#9^WZey$cb>^teE|11M)^6A*y8o`su^at9x%v(id z2-X%|svvMQ(%?Ev6!$l}yFh}J3(6xh=2>GD1S1wzQgU|W<8L$U)T4X=>7w$PM|4%7 z%-9Dg=W{{%+xLq{Pkf&5&3$O^jbo@)m|~(nkD6DoVl-0o_xS7(R}j;)V~^Ey=I^{V z)09qV33JTuw}cW;1WB%UF! z0o)ikcetI9{4cJFQ~faQ$Il?f5c4)ddLsWtNiyGlj7V4p+M@TFM4v+PR67GH)91>{ z=*UBF)9#{9JNoq$O^1bm{f{@PXsNVc$oaKBXKCT*jj6f|11*{ScA2}N>Xizp50BlD zTI-FzT>$@;&n2mmP1)(>Oy{@c&+fZU!F0lz&nz>R-|5yhn$$~SQUGdQ%K$p5o_+HeaFI4{O)YZjXIL)k+)Zqt5)$gN zQBcK8Y#RTUqXC#rORzE@HFl)Csvzh}zM)=?fg6~4{1o$?AVm_u#bvg&4k zYtGg9^MBpJ5$Fw7D{i#cQ7&|a0I-L{(i#ei&J9ndmz-(dzkk1bNhGyNR!M0q%7!IN zb+xsp0q^1q@hMXQpW?)c6S!^;+iQF~`@-42S=r}Trfm|Qew<{NZ%LMy`Ml8biBgI*H4p+~x#Gm% z!T%3_HFxQnsp)=k@vw8A`5iBSpIN@uhh?754)3xTrkhBce?&ZuKP5eR$3LbL!Z94) z(mK5krPYFY<_aDHF){f2BcF=&zVuj)q4hqIOUe8oEKDAfvNR&2{{T#V6?V92FYsLZ zc36b==p`B8x`}FOThXxH1fmntuLtAyG{S;l#9~BwI4S87XiX#zdz&%HE`w#H2gOuC z2AE-3hj8%*1Z{}8*V=XKI&ie;_kIb+e3bzRFl)T@kOSll039Tm7*N)d#>VVSketv3 z4xQfZghBICiShZZ`3=8pxeE2DwT_AS6dU;M!Rh%vEIYsXx8$Q5@y+Hx9qc`hUf(vJ z*VQ$vb8AoKg5FlW?LPOJn^s9C`&SG?Ml}lEW-jb@%d__M$DdRjx@5;Ckt8bc1^^wA z_7|{PGC)K1LB04@dioAPe72IC0Z`$Y9|mwdZ^KcG;$7EAQ*#!4VAt~8zH^-nKyhSz z$+kQ{?*OIN0ti9|Lz5Y*t_X!ja+Vxrj((ioE50;Wsg7zs(FTaZLL^ng4<-$H=*g8K zu}qum4KYG=(S!pTJ)17Aw@kqm$rEo2^?63^5YxOe|Eb;kcrj~qcFG~;9S%=}qpGh@ z+{y7Vy&U+p3YkE`=?2U6W|7GPjb8?~9d)i-4bAKj_sdAOoM*XV*P3E;&ZpbNgpU!8 zCD25-{GF}Nxq2oL*=n|_k(CJ(3&l;jZQNCwX4%Dg(YpK?G8tfr+>HPL!I#8ia1NBm zSC?}f@lQxW_hV#%^+0GrQ-j|jNdWMkJ)haau0jR*s-B*9W7Z8G~$f%bc2V7h*S z8xH0YH0N{&?}(*%WtU;)d$KeHw_ zMiKH3;$FNo$A>K%6?>$sh`@*))=tnh5m0p4WsZ>$1MGnP5Q&6PLl^1F#-fZ0`e^d4 z8M7^0w+_I%Ckh#hc4~2 zqO$y~9JNb4D`H601HpCDQ@8(bbBs?{Q#1(I0qh5YtKc(B4IvnN)I8+E#LBO|%PzvR zaXkoS>l&ySz|bNhvcKO@M$&gD_-fA9L_Rkm;lT#Wh!+%od5?sumG&l3&OL0&+z?f0 zKGG?fIt>|#n!`)Qj`)s;XHre3!C{qS<-EM1dwA=^YE)#kJU)EjLl>kUrYZlr4VSWd zS^ky+VE0P^4a8+pLHrtZWokb%GijJB;J!_)lu+@sKg7;XB4J2zXmQZBnx*&9q7C{9 zTL}3zv|5OO5f-2f2q{7+Y(s6u{^6|oZ}_=HsLe78g-EBLt36zyv(nyv>vxS)_PE+&?ja=|Wt+cra8 zg|^j~oD7cYzB_Bs95izH_AQzV8>Mo2W6W1Zy)qw;iYv-}eaOyw57hBp4hjo1{%aBX zl+}yQG@rV5?NH9bu=$uhVxciU2s9JR8gLt=C85_#Lt-|_PIOub1PNc~U?TE(L-mOS z{SW5E1iJZK=;%n&O(QzF$xmc_ErNekQb@gvlths`x)wu=lT-bTDiOy;MJ#=3@i$k) zu-)Q(pLmxkYU#wSgtTU`PYOj|_oE+i=ogh4IJkMf|Jz4e4Dvo>*&z*PgL{cGqyf1vuO&rj#ufgd>VhzB46o`zk7Ej(R(Jz5zx$k z=G>Cpp9m-yWnRp&tnIY41S?9I?m(%GLSgbGuIb^kXJ1?~S35&UXC2W|y38|yhd*a~zz}qwERG3#Z20{p9TuGENMIp-Ziv5h{eImKUrVl`#>++5oZ5WKS}F<^s=msE zl$AG#%#Y@ygTzD@$HTG!XDu5vz}uk}W@7_A7t(O!P(F8V1Nn@>+Sq5ZNc}61G@d>o zwTrH%I4rE4`5H~l4%hv*BB_R3kwx1)Mvsd4GfkB9&s_kWtq0P@y*h^G=6z^&5Uv9z zPfdM&2|tlXcbbD*WBr!#~ z(c5``v`!Ui;*K&S(_8I%s9cyA`X#Z5R;M=k{0YTMj&o#uzw8u>clufd?HMu>X$s7a zv)DrSXjv9+cWC=}aQ68XusnX37smseZ_l)7#lZW6Fr3VC7VJJAZ5|%}a@&A%$HlxG z6KoeOWq+Q2;&9{f!mDHUsL||10fQi>{tVee>U2ZLnas9_VPSp)2=89vybc02)qXHG z+R)JO6R&lzj10t1j^P6ez>d;e!24I6@rZw08@pg+0 zi}iW6*?!yEIrZ3hyV1EK|M=lW>=y;!F7Cfa@tdb7s+A;_s;_hB{&QqjaRHgkyR7l`*n^|qzkiGh-UPtM z{?DG>mqd6>!Y2Ym=5MxGb-l%w4mns5T*|+kJDN@813Y|vd)>w7_xQ8Q=Do+EOI%kF zyx#xZVKMq?70qZ!+q@eR-U(A2^G@?!%<4IgqUd%YM5(GmB^M=-J@Cw^U_TJ6n;Ri( z(xP(GFhN|&Y_NQR$BmQ+TQ6D%Eon?|KXSxWCOwuv%=}3EXTb|NzMps-UC`bx`^L1H zN60_z>v6AZPdT%5qCGx(KD0-Wgi-~mi$zNK{9SFjr#MK?Ue(xGy6bxLiBqRmF(D!& z@LHl7i_MxK4Gszj(EFh~u?hV_B7*{XRD{GfHbDH4*--IH(|BKHMdlN;*oXG7-XAma?Su3Rg#0Vzd# z;b$k&TU&)^9*=iEG9}Tnl7If^VVbP`J7Qy585S$IM~B$YHdK}j(dOGmW_DB^Irhk) z@8Y@C+Ori!`pK{%$ivVrS4)0CmG>%2-}8$zIczW?KoG5)qA@mIA^dX`5+zU2ZW}FO z@%swKB{(z35myu4=~Wa|?XGl}u7H3{vL$3PIO63n4G_fS;o!9dd`3eYbgzgqMm%?6Z<{BPdxqhCIpG;=0%%O%p9#x z*dG@6R9}KhI_hOSlR=2L^X)G6#YM*~RCakRwOB2=a-W?;V+8~O8wr#(SrJ+TdA+WO;j)AHmW#^8np`nj1fw6c&xs+1 zQ#}fZI}w7afXhi(k6k8d??c=B2ooyw=s<2XM`s$!7M)h<(Di=y4%a4gW6iPd?X_2= zrPk&%b-Nq&wVwYq<(03~vDDvi?5R^=!fq!S>$Zm6dyBD?=e%Af7D}l-5Z@IL80i1> zDFif0hF{{Ql>l)%9J}5Fpo8UeQVHQd8MLSJIY*xW+5iXucKR!IaVlB!<7Frc!*R=5 z639;gXKhqb*eR9gx5|j~tna^)b;gZSr}Su?o<+`T8MgJ;JbbD0kZ(Ptb&Y-T()WG$ zS{X@s<*H0cswkvRGD}>x|DYkH74z@deHZkN677aHWC$b%B8c$(p>3AG*5~wN&K|Qc_cs0YQ>MR{}ws zrP!mrLqQeq)6>muSfl&{sP7LpxcZJyOptVJIrdw5t=G z+VH9S-Z37#@sM>3<5oR89M|(>p(noKL2><|44w5Kesfu!UGKEi{!dRdqk8rT{oI)p z`}+(}Ni{i#qv;Id8jiq_Yrc8Ut;-OGCPe}*fW z)N9-^x+=$xwI9DYM328n?k7|>Y{!GLCV}kVzAf5!O~IJ=grjQ2$(4q78EWaT@90N+ zhx~fg{w6%!nUI*#l~@jNIVAbI@1p)K0`HGjBF=`?Wt8~NM4`S-Xh@{)(tM*Yl+c*n z^K-#$BB;tJB47oX9SSA1`mVR#=123)p12MWf+M!N`!ETc2&mux`1_*8p^3%s23eWC zoKcgH*OI#SfRm^LHO>4qOHrkon^FIrefn*pJN+mPsP(=b6>pDgdV+h7zWh#r%6pBH z%;V6)4Q9RHC&YV(>nO+Uhr+pRicrQOB@ke8ZLTJ&jV7Qo(S*Z4XL0J?SlUR&k0AI) zwBm-Ckj^2S!+iGwMFEJ6%2D)%b${j3IDSg`e#!gbzJ2$Ymu8E}z11M_6%0(b?n}D* zc?;2h#!34HRIM*Q{H-PEND=q1D2y8MU*iX2UcdY)fuH6=%pAM&#OAGf24iULfNR|$Yrw244u$ZJ1jEeveR*H+KzRxhew9T zZRUmf`F*XVnn-*wKqmatc-g7`KT(|DV3`rO4wX+1u03jp=be<5`8xUx_H&Co@YUkr z?}-jUd%no{m_SGz1Lcu792o_xb(42Id-vZaX`yw^&7=Z}+CRzuP~gYtp1{LJ)@D;% zU+kmA@Os542JLESC#>-H-I?DbO8o2*W^OBM3}}!4wB;J}3RH zGeRBVE1tc>Va|;V>?E8PE}&}$!SUsLu@X$)vo|pGAE!g!y=|ur!0g(y{5qYV^Kt^~ z;W7K{zxvAOTs>-)My95(pbvqoSZ*kwaTA+lx$Zai8+9l)MS&enBKSXVRPw5%eam#a z3(YtIEjNNqw){b;db7Kn(^6BT$C(MxJIkL}tzx-nnQ&;nPf7W6L3nGtQc_VtVnI}P zmhT)L+%ptytDxJ?A|mn(soiswfBxfA630YGQTMR~Y2ER6Q(JY8lheO`>loihO0lJR zYc%|dQGi^Y*Jvqj+u=a-{=h{ zuq64Y)6POfyZ`;_2E0nFhPVg~>JSN~7O;8gd@V;=+>t|xiLxvB1TSy;DjJklwZ z{?C}doG{VSAD2HiS}I8?sG#5zE3dJwa^9YPd?~d@K~O&HW7MnL*ge!dVkd%F zbgb9Vv}^e2IH&B6hR}Nlgrm;9p8nVG8gy}=ztr_2zR~%hAnUzMvwj~atqT2&+_gqP zqlwdp@zGt;uSF3mzZ=3Xm*?ggC!LS{vuiz^FtFGmc(LhzF|}Z<*2C?U5AF-RwAKja zP&N6I&zo_1Z1XyD?>F;%UGlFSgfE2U?>t~5VT7BObjys?nX@+{7%NVjH@ zyYzKPf7=nas)a3M^*7$%J>p&}sBvEMj496!sm+rz>-(N`44igbZNV4z^N8N}v6`Li z@!=JgZtv4JQA~OC^lA^>TRqp2=#bAP_x)IxL9$hw?Cnvzq^##EP2*fXpXK&uUgM4G zw!oo#IJ<9<2poeJ92(LX{40-0p(z8k(} zes;Iq_-mE(UE|g!hex{mQv@!WWfZzwcYRf^(93_m1-HS~B665o$?yR)Kb4eTdBsVw zri))zrB3HFT{-n%z_ z_^Gl~lz%$6DWhdS`S(CaY?b}%>jLU2Z~igIZwM$WpSlwkfB`bH&6q8t{H>mxyve-D z@0rf;he}zQ1FQY!4LJpOSlaW38Fl&n9MM~Nz9p-U??Y1G>FrKS^8!weS9qnWa)bDG z9qu!G#6;Z6t2<~@g??XR zjs2vI*C&=k#~vLM-oUl%aE$(0iJgCsW=ARq!@jEZPvQmd75lyWQP|u>VO4(Ts>pMV z5B^?_`fp3+3c8Y8_NO%u+rLlEZ+y3YjJ`^k$y_mfMYE`w_v; zFa>?}TWpEo64Yq2HyNAho)yj3y3D7j39lQwQtX8IpS{Ex|U^9lPQLG@*XhKI*9aYnJ~){XDTD4Y}DbwL9E#1YY zkr~MohHDt7pIl*hwz>FT$3Rfrpr+cd&)VdpowAmsJ6VQ<-tG#LG1gl9?zRJcO||?+ zo<7P|F>&VFb8fn1?Cj^9t5#F~($2t=n8`|W?ktt?I>dNTpzgRvpn}j3L#ZQ7sh3;) z<7*Gdu-q)3=w=kgI>A((4 z%%eXSt0ZB|CRXj6`uT!g-_J1S;;P1?X_oCl8)?6_TmG(pj$7@}K6dy^2%iTQHo*jI zdDNyUh&WC(@owj`w4#`%3l_2az`?!RH%&Y60iyBt1 zsSo0g6UNMnPEYaC-EV6ms#PI;`T3{!SfP?$*F5~FigbHzv(s*y$ba+^{p1#z;)Bnq zi0Zdt+2z`>FeU&bb!rqX8y<^{V))+}v1Bf}gJqqforqYYV#${uH#fH%6n4GwxiPO> zCM9ES&gdceeU_8^5sQF^R+(G&{`yrWK{umMKiawV?!hJHRTX^vQ9+}}_nulg%W7m9 zZcl#e?MT=?ZM9JW1%>j@<2Pk)S4SkM?cUF^+E3nYJ6FVY5vJkc;rW5=>}|@tR~VYa z*C{EV{f9|q>IfMf%NH-6`u2WI3cl+lVWPUhX|cf&?_DxND{GgEuU6gYiF66_lIOQn zSz0T?H*`?DF^GxYZH=FcYhBj-qN5BywQN^WxY5;pk_p1^9$^#NNUQ1}z~Cy0<{YKw z#K3_sBkqz$DqCCGjYGyfHg5QHN}jF=bM{+3t3KBe#1w?*E|P7+rdKD+%O^Z%D7j~; z-fD|quBh%9pW|6}CNg;6Y2ae=C$6YT98PP5IQXWaV z(q8L|x|Y;$-@(Nr3KDBoDTp(jv#H%*O%@!c_Tk0R-LF(+gV=v)*85-ZluW(HId4j# zR6O}fS)uCF#LuCqq>rvVre@Qj@txPr9Sg^*g?t0QJ#0C`P($-}$gSAleCTSWr!+_j z(yyP|kNbo^RuS$$AX3kK>khTji8HH~ho(Q6-uKVsCg%jNtqje_`U}$PDK5Jt56zBE z{OIowms;>#yY5p{zoX~;Sa!BOW8Kk*PDS$O17$-?ji+&`*cTJD&DZTh=vUhQJTVBh zBO00hVi%{ml{F!ZzGJ;^x;B$#2Um^K^9uyv6m>T0`gopiGlD8VazsT6zboG-$huldPJ+&DW-#wtesqkf ziQdQ|%~?J`{j{?)5*+2%;hAA5SI)-=$<+yr_WRTR#~HYadHuRc-6|Jd5{m6Qb8q$N z59WikTq`FGvx655YoN#-ohvlmUvM?`u&_{Y(< z>9`|Tx_B$MKg(>>(RbR%XXu4W&-%9e&0Lnk>Jh2VxHpdX#j%{<^z{qa_$-tJ5fQ6- zlKyC`)Bc6bGc^xIKNZmwPqu#+cGm%_b`9mP#Qt2aW|6}_zB+lU<_fzP$qb_LUc;2h z;x7F5^C!HQ=Fi7xpFbDeMw73TtE=FrCbE%MxhwJa>HXw1XpQ}weqn*XU!wWAN^8VU znmq)gv!8?8qkeREyql}_+|;8ZLlv(JCMUmyQ?u1Qy zwt=dmu*WR=eVpf@8?8>hOFwo;V>N+5V8<}!mA|Dvprwm?k7cZ*py^)n$I^1~+nkNBbK zf0~x`X)d)}bIcYm<-D!5GyVS7^m~OarEV{$`<}!H%{Ic1&&M=3WcMES@_3MMqfp)P zcJ1bovl1oR8$(ZXS&LDH7{~7#Dyc}WvHi6qzEs@xYiYX0eCsRPwwVdf=+_(nFjntv zO09SEtTw73lD} z)RmgPI#GMhMaRHBJCfEXVp*fbGBpvpq6Mv4r_PL)@e z7U~&Lue}-@$GT*{QteG`u@2uvP768^xqzh*ZM1@x{O1&ej}4w#Y#Dm`M$KtlPOcz~ zp@lR6b!%IwSP{cA00_F^L0S&e>9sU8eRj~E>6!X|S+ZwfKni+$H#$Ap`hkY`inuZ{ zQ7N7bqy?d_qd~TL`}Q+oVz(0r>>hVu03rcw30A8BAOk1slT+{r?;IHT{01%PK2+zS zQNQTx%Pd|2)DICKnnIOuKPTq{P>pqoS|%wEi=vZ=&wq9OC$Th83WTZ=0m59?222tb z+MI@8cjG54EG*icUjO?}_$W8-+>NTH_!r|>dxA<2l?Yqh%d7D;Y|%2B$~!x{W1eHNWK>D<;Vf1W* zR%;p~+&Dr2eXwQ$pr@xcR;if-%%Lnm(+D=>>)T7&(ttT4pP-Ln_>!g1)#iL&hdn{W z2c*3Xl)3?mO(y=c7#>L1XWyFXh3H^JT3QeWfoP|rC`=XxK^`8_{7|3|G&Jb+JL`x$ zkF70Hkv^rkO&Q2pg1JTKfMB1|V(@?hNF1IL0iOYKeH;*ffRm%;!^E1;!nOSCkEzL_ zhOMwJAzoAvca(-RI`N4J2nYavViSzGjqw~IUY&?u5vgq}LpCH579H~d(ty{~)!zOI zSQ*2Hr2PO;0`;gA_FsNltpN}jfCUo`?3*(q<-pk7g8~g)!uO&*3*curKq(RE1d>%; zDfSy(H9G?BfFST)STVE1ybN<`4owS1YCJU*&La=3hZyVu@WN&R8xXMUT#e?gF18B$ zTepa-Ao?K(j~+Fc9qquuK~{qaH#c_>)*t2qxe(wzUtVX*ume2bwX zP$#0u3IL}rrg#kPVYNFD;t0Dvy~8U)ArMOpL+BD2$pSEg_NO~5VsHTsAdBO^BSG(V zXS(Tu%Y{6LB5|+4vmoFU$gvRhL=^oeU2U;fkda90QaG43L^Y{qSA}4Sjcv;0IN?P z)ON+;=5&9|!Uur0{%p-AWKB+bs@lhpJO!QQ;DG~Iuo)6j4uVs|%!|ObM(j9+@_^zkwB9#h?}QW>8}fyQDddF;75% zF8jOVKYFDvo)>RBkzA7dqDnzC^5e`z*`t(g&$B&>MNQMy^^=2DUaO8_*R~pNJVxd- zcA2rsNuqS&C%za2k=D&vQ%pDe_n;T#4)IhnRe>!brUKx~5Io|2Mt)y-m{>t#9@cGN zu)jgKB?i+On(IXH9|XzK(R>;n$auozq=dktMC>`iXO?(f2lL({EQfT9j+LnKV+H#Y z9~ck?Ui|6_ylmeSaDg}i9lG##A9M}&oN^l-O0JB+dO=f{NO7St2wrGDjJZe%(R^{+ zqMPblEkNuYP7=9u7<5w7FkOYP16nc0hYlXx!_K~*j*d=ju6yhAn}Y|TO+y-SFx@6< zUWDwyz>I+#y9!j6PGCIw zKtm_E7<53n!4|X|Y5t4_stB8->Ueb?vdl3Op+dG1tk9DngseCqrpPFP&SCGBbGq_a*|h044*hep-(^*dErOibnv+21^lo&+?{6G~TyE5MN>n z^gb@*+5=izTEsOe%wc>TT$FSnFtQV-6hvYwMMH6y=*`Cf7mzKVfPoMr!SD{o4UWGC z*br(YfMdeK&reqePT?0awzaW@>eAy($<&TOYyJuN5!e%9IvInc6Q>1n=OGD2oymRAaRS;wgX!$p4M)tTZO3D z35M#jT;98Q*HUG5f@k`idW+p96>Z;a3dv&j9q;<281y=B?nt0m>nFce zl8P3CD`Ufcwii1`3UHb6@ikm#?j~Ogb?)CN#{KmEo6Cwyt$xJ6+Y-2wVf-*#m>;WI|LSV~pSe*YEFoLF`Zg_1UhNEf z{w0`>?h1RhuWX}R=uQTa=Pa9*1o-x_2@*&HC8 z92`{+065eutExT%m>paH4(_XK^WA9-@X7mFStF9v4nvw@D?BTKr6IC2*jAS9B(Brl zTGWSJ5T2?wc7A}qsRQ7;XP&db2W%U$DS3)Ew}KD+;1CyW-MRA%P7x4X2!jhmi-!Qs z5v{UPh#A8j_>#le8EBGJ5)eMZm;SaK@swkxjRfwSjHm^{GGfgQ$FLT;v6(8v!LAqJ zZQwhIr2Wa0D+zWQCb(C@$s)5I`$2W8`DHT+*nGrcL%?-naTBfCMkpjJyo!$AN>6_l zkvotVBn|}wdds$LrxCS5zgYY8qy6wBQw%I9IE`DF#STuOVIV$tLx>qHsYlqh&Ntyy zfER-vG;CwwOn~U3vykp`K@?EZ7%)UOgp!S|8%N`=H>zdOO0Pta6$JY_=t!cQl1Sp28^tAfruKs?7GeM$tm`CM|36Ad5$#trM@wv(3# zU74IvL_CPFk8nyULs%$33gkNy;gJibWU{~W-wx%nQ9X1|iS0$^&yQWu5{kf-0zQsF zC{2*16yq-GdGx7(;{zJJ2DSpg`uIvjlBZou3oUrL=&sP~t>KtPB>sfRG+Z+2F|Po+ zIMp*W^aZ2=Ssk6dh~nA67J`nr*y60NGT>)tR5Ub7eUJ`D4q`%Knnyyfr+FhL_o+JE zuEXuy167ffe8lq>Myt?r2Pwt=<&z{ zY3?aSpDP2K7sggo-&(CQ&F{XJeo}tO#&`b76aNT9!Gm5rM>#&dzGZONP4up8UENB@ zn?JWc6%+M%;Up^k?Si<4Q6Ys$=Dm*Q!w<&qn{1(TIQ=z2(r~=?_|T-Bmaxs;r@%qj z#+H29Z@XY8#PQVCAdnL}l*$(moz_cHJF7LiIYXk=MonPVIhA8{mo#NY7VTFu{dAAb zy8Bo@^{estT8CS0lH*C0v2W(3`PkXSFAqkVcS_#SVC63};Y+?bWlWeMP~A|Rf;UDT zws=B!GXFTo3N-a`6{suY0hfaOm5`i#3dhhH>@S#yQ1l^(E}1@c#(H4OsgGhpI4NL%(0j*x%JRtn0sApgR zd4+56lvji{OQba7WCSO~%Mmk(0s3Lkf9>k)D`tj#<{cv958Pu65xNBB-wo$hc=dn{ zSrVAZR)?@i8GI-L>Wp9U!9PtJ5!m_jcS{QkUE!{naP2z>c(H5Oua5wE558C+^~9V5 z`85t?2n$$TD#H~Er+pPR72|XNoy%}9C1x{<3h8NS?R|Z)9XX@NNncV@a@@A3bh|Pj zhszfZ3l&liL84I)T$)bT$cP-qBbAt~@{Np)KyX6G8b6Ong`Alr6$N@ZZTrn^CLFBF za8)6@4aubtsR=sH3-ncn5x^`$Rb>e4MnAvl1%=nn&QAMZ1JO6;$BHe%k4c3PM7VL= zM^QfPPGUH>^p#M$Q*82LX~fF!;EMcRrM4>VOUB6>O_S ziWxhNMvAd3J4i4%rwFBQ2$Yu{&9iynIrcWuqKXClSf%-KcE zD$gF@XCL)+Pq=Q&YGL8T;gs|+;-0qv|Au`_{X3M)B}AN&B*aPF{@JH*NX-$mzLGWk zTDOl_0+$B=1?BA*tPY%$Do#=1yg}*v!fJAQ_wOIf>+G|b3;UcTdX`FD42OnCohDCM z%@ivs*=lpK-@0Hh*wx-4aYKTZ{|7|BVuWn^kDDUMiNPN4B8wp-DIBI4YBiClSe(*> zCf}uZY~ZQ|NJQr5=dX&aIx7pTQw+>vs(wu2@kUe|^4iifvKA&@Xm^r2jPSG zir5oz9fZSBw0MDedC%P)iV+8n9))8=5UNPk)zu2r47_V!qlEYB<;&G7zf+6HcMok}%5aKPul4702 zQB4^B`bxk1t_vS84<86M!1oBLjadM4G{Aoec{~O;R)k}%jJXb>yWMbOA)=QwJONaU z2rU`HQaJokal(i^#Go60eL=Jm%-lg-AmyJwFG~P~j-aAjU%8Ji+{$#b%teNo>@cq( z5ifs^hnY)jD`Z!3zF*hj$4wh>CHi|udxx8}<<|%r6B%2@b#ZamT; zeN(vAdc)JEa*jR z2?w(O#C5<4tos&WcC|)HBJ}F+%{dinfEb>r{~Y5VBaZL1obu z&KF4kFLU8BWWNE{V*6Yz|{84czJq; z!`nh8h;v09_Qu#Fm_fK1lEA}RrW6DbQU>Pl#EKh4EaZs%y576@V)PRXn#!)pTmw0gR%>kZn%c%k?ZzhICc_QZV~DX=_t{}2qn0K=TTjgqHCcV$X**@D&*6O0pNeAGlPA8;-Bb)5pFEtEVcV&H z%(!-K9rAAyl^??f@gl>1Y%l7;G2r+pqFgy<(3D|&C=N7mY*B=bml}aRi4@O>*Pk9= z$e#lJnGW-!rlw_WCsYbPE=+5Z@;HJEqt+}Eh}WX-;Yj#)AanrOPqLK+a)L?8$q}y! z?3$a9h9Fx?M2!HMvNN>0aE8Z}fB#Nb2NosaqGLw2Rl}+RPY5YLD}D&|YEq#>u9f}} zd6O%&|4{b(gq-BYbb|r$COC#t8tNgzVz-5mx$I+On^R~uFJsRk!aUj|6kp}oG5uC za96OK>!J!wyjF1Y#0}9*6+rW|a&oLF^C7ZUBv@`FA+W95gIC(BNvTtOX`Tn%EuwHq z4p{cfmoF=$^i3$nfXSPw;G`lne2fKg)I}Z*a#C!3d^d`agi(kH{2>hAQG`@9O3`ri zMtK=>9am5Vbof1-N~o_mamX1#JVHemXS*Q#l>k#BjCDO6;(^9SZvr}CpCDKSNyILY zMsT%jLa=KmfT>7=J|t4ew}`*!8InzrG!)8a#@DJM*2E#pcnI@OVjC@s?HcLrBZO*W zs7qSUjq70sEq^8+1Mw>dQIh10D67PwM=eqOg$O!QIDpma|`zeN7vG9T}I{BmY*jA#@mi4qn63>ZeL%ffQiV6QCUjb zR%N@FXtdZDH8S zo^NmW#~l*>_=-K}!I%2mwfcSicWxE)ZDZAX$$`CH`D$NBYdAH38SGYxB&BZgMsji? zMklgrsN_NjY1f}xGKt-gUv`3^-RH^n{J7$_MH3X_VxS!dxl27rA;lmBOW%RI9mXli zvP;5ou7?g$A(1}iLx@eHImCjbcIY7-DC%?yBg_ItPh<@*FtfWrBl(n@>zqMk5g;ev zf}_{p-~SZC2%MmV;0=*R%qk)~?@f19;@x+m8D&Bg1t6?Rq!>=QQE8(?R{OGMfF7wC za(W%`_{sDuX1YZc5OJWku&yqE2IL}a%%s+@JkxAVLj($zg$A&GLEIpv36fhff-Z%c zULMp`P-J3JKsRm-3}$HAd&META$5m1x=Z%X_-_RxnlmVb#CW5yPh?ziA|bNniWy1o zV`93|y;*sekj-u|Do|2S)+t<%6ujiim#br)g%FOS$LON0kXU61^8g03Z%{)B2Dylo z?&9v;`3K?18Cf(6!cYKD1e+M*ZW0(bLK^n<^{t%*yJ0J+xlpL4M-c_9_spvU>ur(0 zQp<~st@frpqEi)dhMcje(t6GmOo<@j3-;z5a$2*4O4Y-}zmdB}1D4}$Ev zI7f)FrTv)B$EC$vd3kvyXfk5Qkl2o8i1TC}9+^HV!(tCcs^!8CvMo4It0*ZcmGQt3 zp(k1ONTWdP3C{*>wY)~v_i$2;6X70Iz^f7Jp|?GXs9b#z3L7X%Jk$!9)9lH|8vQkAij!-lUe>m|&|Aixi z*^|gXO4G~F&sInHeXdWUQz?^D6yT>m-m~p%P{Q|1`v!*n(vub#mBnamURmZmk6{pn zWTvixpvce-sy89JhAlhc5?HEi7h1qCmZx>ev-E4!nm3o|J*6WLybs|IetCx3y0byB z{@#6N-_i;x$&%R)EsaFybBFla8(yulHJbieEVwl2&b#nE@__Hg+Q%uk#7Rce7qz1H zvveqt)Br`z9+J%pt|%*8v>zw_Y5kFYM6eQvGl)VB=2Z-0A+ix7cUexZ zD_$io=FEm5);@tuG^P?$9{ty7Ow9T$NKugv8ZJQ_7MXEq)q^NVYGd16pF)fq#~%EL z2bEM+-4In{5@=dZ4XR*OLbSe_1D!?m4Rtx`XL+=;Z*E8Of)#iSyga1Mqmz>bghTir zZzoQcC@jD+^Kv8|9mOtPx>Q?i$a`K<(K+`@yFM7Ky4=C&J;g|$J7;NYTNo7|PX!kk z#I!lzacYl^kDpZB2C|}}pn$-OxcGRSMyqk+Ir^dGKvLce)Gp6MTPHA(4o!O{$bz6Z zOaiH0w$`C4t zD`5@$=D@*&xmUS601vnrSNhf^;O35VrJNU3JNk#6B@`17lJ$-z^bI6fP+aQRl^%-Y zM&VhAFjI-^ODWI=e&*PYF)VJFKLbiN>t0M}#Lh|4z!r(TR!U$WujTN#v?Zs9zN7 z3jQ&apzUb8rH%_2PNOK97}iQzrZLMYlB_TO)k)irm2n@BTNZD=t$ z_EL_4+V>Ju?U~2}0>A97Sf<}r)MpAQ(FupL*a=CRy`1R0a6EtMO0;$N;*qjMYnvCB z7^wMiD=~ifVCq7o_>8y+O!m|~B<+}mgZSohY86`kTv!VPL`u;+CC`E9OX;#;LAU#~rHNLrqT(A8L!TAH>sX4HI z)f{(uo??Y_?F!b#w3Hw^_4Z=JaHpnJ_a9j2TA|) z#-Cp};C1qpqTz1+bAO%uQ8~!)*Mu1?lsO2ztq1cm+Gp%~oL$G)GEho#NPI@Ol`}m+d zOmAXjUy{{1qqW-uSU=8**-R}V40!W33)ILgJ zrqEID+06r7pN;lKKSXsqwq>h5V20nD238mJ)#9}60=oRBor@)?S zO3G5Gh|O^r;UH;|x$wJfiC~}*I9jtH$Zx;A^ouT4 z6RmjyWI_Ee0~wtKdRa*~CjJ;>6fEzfczbl`S-7}1BbX=lATWH(MTbBT7Y8T{2M(_~ zC=ty95P42hOB9*nev1O;lH-RN7qJmXCp z13MX6G+s&J0u?gS3@6=7J~F9@AO;X!O-6Y`qK_}oOU?JNpQ3o*YooJKKiQSvK$nSNJG;)}4 zShwYo)!4YjUMoXNRxdNSf1rIT`E+rk$%Mmg() zDR&YSF6+x>g}vRikT|!O?;($r;Cu6){Jy42>ti|3=p@{?HW!3${~>Rg(k>LYV#zSK zD3p$#FXl)xYinhB^^Ymi^h7&!9CAk%$wY?|5>IE)O^ict?1cs}AaZhYF|7_0ve+>c zvq$qbfa$G`G)5NjI7u_ntmqDRXVO6qm6o0!E(A3!=G&8-Q6v?aZFhm*ghCT431d@J zaPqmMx%rqaC9A*d{rD|U-U^>Mp}i(RMgMtlQYgQ{wDwYmGDkFB#IM0m`!j4eUKx+E zIC&~d(X{!7Gc|4ocUmOIG5MqJnNe3p$IF_e`DFi{;vt{s!p771ztFh6W|5TB#3hEl1*_e&;3k))@7(`nn6TktKtdSrUmz8;IZU#sM8wrFY z3-a?_$jrojTkw#w0S3Z#5R`L$($G{!OA_@FQoX{hVGOu#O`8Do5px8XQFPRaLNuv| zEMS-12B=E-Dat|8yoY9AK2oN?E04ofSPk81G>u5-atX3WSu?G->WOa7P9QH(j?qoV zRDa5E?hBMz&VE6`U{K+qf09eY8IX~sp|S=zU-=3`11_e#~kyT12`uE_MLBanetP_2=lQx{Kei?3kDotv|?MBKN#ZC$B7X-L>Je z4=VYy-NPpg(*(7{eP#`F^G{Q4%rDFL^rIE|BDsMn>f)ix%Il;Azc^Sk-@eJ)^Fb++=og|?lt|DJ z$Y*+h!~_)Oyb=me1dxD!6&W8OEuRt`S3rXaD~cPari|fvL-1A#os5)=A02{GO;if& zJ;8MNX-gpfs^!)DavR%W^@ji&Yu2d(Lv9|i2p*;4R(HQZo*Q%D8#35DF-zxX#QhZ2 zls^yp7$hVnD+Mh$$Zs@Z%GFF>`rNwk`S8VCD^)7$xZeg|NVckC*(vhGEiiLy<>K#4 zt(P3>>!z$&Hv4}(J=L}(Qq=sJW^|x;^)$2GtEm5U6~q)v1r8T05x0;etmk0&L zDMm`vMx)0Gd4A&b@+Zi&Zm_0ofBgBnEr8@@GKMmV0Q7R)v6SQwIu{nYK zGb@6upW(Oo9ViP)ZpZ8;YGks&D4}M9I3L|7L%5*8PO<|P6s#rEo+ULJOjCS$+!Vb~ z(nCXWBvFZ%is|dqwyux2RvLXP*i|P!a!p#wXgj6vOP#I#1~0^DUvCenx?0qf@9BOs z^+nYG#on7hW7)p#qwm{1D^!M}q9~$}6j3P>k|v~N%9OcGWvCQI5<(e6QJGVQkTMTZ zLYZZVB6FsQ|8c7K8-DxSdwt(td#%0p+W*!&lz5)!zVGWguk$?4<2X*m#G4|+7Fsg`^EV7mVxfiEhs5H)}g+8}-+* z+1Hm-_>TPKpqRD{={%00f>?7Dl%=JMQS`piBp|64#;vJd#EHZSdW>49`ei}Q$P+N} z?Iuu9V(_9h4MHqGfZ2#-Q2LgxTBYD%pBc<5@nGAF2KM%X_R}{f1}8PI2HM^^qxyzv zX5HuRCk6S~WF6rzAMmn;uvEKTmv2pA9X3$kv`H~&YNP+v@CADVE)G;YI#+$c=+ixc z)e{yU#ozyG+>Mu2OBGq-o>$Bud!$G(=E0?o-9kz7hZ`zhZ4J~Ggcav`<3Ddb)Q`!} zzJP*b0ebz*!>{MZ(JLV#0d{evUr0z9e8^#MrAMS#kbR$Y!$9^d5M$%&ge&N^9RW~4 z&c?{U9SB4~z@%0mvUdR#p-BIT7l5Zu_#b#EN0pV|)V?^k!{H}w-bXl#k&dR0SD&9t z*(p5yfWCDOMhbkoeFgJjFAf=T#t^9n*aP^Xp9+F zsEC{OKo;=9z~LI>dsnyDlPHzm?w_VD%c*_5K{Sn7QMNtCBtMnY@v6r*=Iw&(Qeu}*>*0s7Y^Q4So zX+Ua)$ZL<$D;K&IMt=6)I7mVs|L|!pv_CL|`z3s9`g!8UV!4a!ZUYh<8Z}k?cJd;0s z`Ve26<;k^AH#pA0Cp6u^XV2f8z*98MgLyG@53&*E=ILMB+rvBGht1q>3EKTJq_HAk zTm=x9ySNw(4jp}c+0)d?9~&KAb1gNUm=v%(1Ex5aO0Hku)10@N*53mr-+8{tVWhdM zOWxR+zb?g0AN}&m6&OOMth@~LCe*yE0@101C7HM}Vgo{EQVtGdtQ#SigLg&%*8-2Y zle|$k!9NWRO4B?<$r35?D@N51tg!_n9NB=!2E?Zb_m*}QWUDbSIte+?Pa0YJq0+f9 zZ1v&UBBJI4r&d_8PTF2_k!lQSDnY>DiV{lL$ous3MZ0Yp8~`8ATeYPah)kG*Zc8l8 zT2u*YFyDC!K>8LI>*NB^p~<@#L}_I2NFbsFh+9c5g#|cU-v%)vqE|#--(HtBc5^&k zWY4+y2YYhN|-$jEIzN|Jl3(rwI)>cE;tw+EEM zBS%3{KA@<07AZdd_zdhnBQ~%+sjUkj3Bck}(3McLg3eHoUs~z`04Tv}%8@8JK>s2? zf7ZlC5<~1rc^dwqFaRS6lD;iUQz=PZeu9t11M^#jHzn0vEjP$FPJXa+Y3MW!8^!w}uZky;epT-4G zj71}_u!KqOOY81~gb{*liTQdt)K6S~B6>M`#pnW~$GLSHi*S^ON#$V^%<4nkEoxeS z;579ei2tCZ)S01{I8zJ<8H`vI*8{7Y#5JOM@NJW9~dYI0;o&`ruSZZ3T73mF*GmcfL82@j0w5N z8K+;q0YG9=z1PDx4GceWJEtXxqvJCm=gJOrDToAu^(TpSmdFkY%9{`4E&bm@-l_(|ECKGyNsVX$MiBqJyXl#<_9BOJ9U~n0y{Y1i?hd z4)6@u0s^3Xj=bq`Xkcs#a+m&32^~v@J)I_;|FlQ^1Wvmd5nG96%U^-;3%`f-n(`s+ zfXALP5n+)qyxxj#(06 zQU~E+5vSxTH9tdMxfUlm?|ml8$wD@k-xb&dU7TF2O3b>Y``;d2ZL8n2Tl-z4@L*}C z>aHEBt9@i_vW*T*easju*5NYEyoI^H!G2}k04SgPX zMiF2 zQPkwepVo+qP+ zOwO+dEo;}52vOhb1QK6jf@80N8bdQg)3>4L3-3L2JHTe&iZR`t&tANE1nzb{AG%;b zt=#xaCcJR(4VzoDgR2V}B}2+4R#Xmevd;|cyX15BK1i8BuSU6!L|4%r$i<6-A5996 zUb#o!{XfiGJ{df%G8ZI;5{`ARv-dBppZ+uxC-8GLS6QRFu8wFTSkrMtSI7I#+G9J4 zLw*@p^2qXQ(rpAu<-!c|qdj<~)Stv9pjVcYiAayN#|-|vHlmj*az#yq=2?4|I&yB} zID+Rz`8sV;@TPjM1GAL+^@GU`APg0fjtem#x!H4%H+N8Qu-$ve!ZHCKOE*SQpwfU>A!5u+7NFd!WjP&X0b5Cu#ocJZ5<8rHnfsR@0WzhZ1+vNf=@ zy1M%PbHk(fFxQ$~-CXaYMFz*u=1=z^A;isRDwTl~IbM&eVc*VuVQ4*ssfm3dVnVA{5Vp5>uK5A>L2Z(tZ@NFVURvED&5QA^}8We6dXg3MvTo8ML zIAl1UrymHeAw+j)`dWMNlsZ--Mv(QK~CMzr|MuWzog1N%$hszcT5`y9~QQ zOtF~$uzx=9ZNz-oy=x;gpgGdunR1BWDZz7oisW&%K-F`>VIzr|6^@wOV8;5Ot)p`g zTqh8$+EdUk--8w|v3^jkPj~|hOGH-O3GZi3C}uG>T3O|!-o}!T96UH^YaMqw`ov!H z9*w9=ZPj1GkzN#h>ZQi(0jH1$an-4d{9<<#D* zi59Gthz|r;P~!ouv_F@Tsv?xVI#|+yEe{k>5}?dmw5Uz19|gk}5a{ab>mQdO^k8x$ z+0#1{{+R`b+Y8@5T)$)mDkY|+LhZeXA;PA8iEihpz&sCfgol(EyX^M#dd9NgTh5S* zRt6pt0NZ`hRYEY!B=RQYD8zNgfr~?*S=N(-rZwn+P=v^Jo(Ft5F;-H;}Phn$<|I>%F0@V(1_$3<^b1T zBE1IbTMMZ~{UKl(Vb!W`3cOKua9lzdK_@PR+#)+3zFqkR0wrey(%t6v;;Q)$YD=XG`_I-FrVEpGd4G~U_#yw!t@@BrU4 zAuXTF+3y}dCj8h;zA<3A+sFNi(uN{zC{%8`yK{+%F#ofNR|+vC0I`6e%n*7Anih|V zG^#_G!j2}1C9=5~nhf3WavR{)32(pxs3?lD;Xr(#6cP895n!e^YFB&I$`fEg=^=Xr z5KD+OI?Zm_+2Hfsexs?0uhS5-=LY37P+zqGYNpET_~FC5(T6%g+%%Mv7-a7L~!lfQf9MpG1XFo(pq@2dUQGY4%KQ#dCsghq|pE>fN>M`?@&hRf7|&xH`MUuAs;7 z+3)`-wr1{<} z7_-x*-Zcef4-*Y~c7NP_$@@plk&pHcF15!t-5=>-XzzF2oJQh!OWdvBN7JlkjUtKH z#BD~^9G^MN255x~ATdIFIHm@1fy0VSBMk7z7vz%?zkXDRTss+?Ur;a?!dN63cp7i; zhZiS3T9B&|OOq5m;C#@)G3vacbLR%RAWE5OZXk4t5S(P7&Y>KFKs%xPD9u2x!Sp}( zDxfGRXfUVC1zc$;s<4U)`N_k_A-e}skD%~Sz#M~@1oT00d|n)d2`{Geq_QLQW8HGg z0bSh!c4z0s=Ibk=kkZCTC?pruE<}kx3kfcG()fA{HF{};lVj}Dr<-nb>?%J0ZkH?+ z-(-G{df+9FVUWYxtS|K3zO`iG?v9=Vrxjl;$@mc!a$&x4e(JI-xw(;=RVl85Idgs< zJ)yDxpv?T(UtkBHx>01j$0S}`LG>^3S6R2R4MY;Hde`TB&f9D8b>D*PdA>isH3q%? zuFi5!;X>C}xyl}Qkz+?=XHIT@ZXl9eX*H_5NolcZ!JWxi)-hXk7X~9~hpV+0x9sHq zi(M@|v8IqQB4@@tqpm#;8o?jk1+J9d6N+27{HKxW!{rfQ>vH_HX8zj97r$Epu$%0dC*A;16JnJPp$y!QeDqBN)jNbqAj-hXg3Qh7 z36j8kcUYB?GJ3raaPDwH@1*9Zj6((aFTnSSlaNU964s5-w$y6u=T8v-b27hHzG8jG zA7=2>>cQSK9#ssordxV{aT<1a9Mn{2upB5>KBf|AemI(Co5*Dk;S?{w4_Hgx=MBOj#kKD7eVwq2mQAPlHhG4;A@+iDV-)I8G4?! zc6Nkj87;)N#LL|E^`%J=lD~c&#mQ%g9$Z!~091f&F`$N`l|vnT*aF6|s~1>pF2H{(s#iGJ-?$mEvoHV5&+t)^mPN9M9%)zYNMPOU zaJpu^bz22M!{kN6h<)u-%Hi%#J z^47RoRr*}J2Zu-sHM>Dsq?T?|Nw_D&R*PeE8%O2OFo((nH5WcP*0ax#o4Lo7joEX= zB=2j&UydG#VztR8?rY}l#c{U?C*xtTNNbE`@Z3g~p7E0)46Qb!7XhwU+~!szf1KSBg};YXqo<;b6t59sW^F64i z+2m*3;8U2e$7Bne;wlMipLDC%{KZJ!z&1Gxddh^xzrKI@;a3`pUmMHaOVb737k|2b zyF1X!%fUVM8h^gWyoX_MxDW%Sg_vU~JhS}Jz}>bDwi+SalUuG*f1s_X zKEuuj1Ai7@N9aHz2qfYG4nJL#DU?P+f)fViJ&lm%Mbk2yDnD^+ew>o%Bf||Pp%y|L zKoxrsckO;3yL-#w5P)kZ&lR+g_u+5Uz|#_CuLAabpo#(M(0TEK zQ=@>?3q+U%BFF{^r^4D1%;=i|ma7&v57rQz*MK(tD;#`pmUr$H zmt5s==W~sWU(IV@E>?Hd{_yqoKF3R5wK9^8erM0!t~l1UySGPDH7(t6bi$cutnP!e zab4iGs=D~a4u5pUr51 z;umo3I8+j78lb~-zH7*yg@)OMe0P0hFW^7f3BT z;uoy$Qr57Ho&EkLWesHvVqE_+^0wIH<05y9bhTkjf+hkJlsf?5{7=TVJK|Up@xzLK z4~Ge4z<16P;Ltpb${FPmFgaf+Z`j;nH{f`Oe=6TW6U6e(s8IS~8JGlKAIkYLxLhoo z^Z{i*GI9=LxKT93)s2lDz6bLnoO?yY$+) zeC&zyQdr1rB`EQ}LYgNkDoQ|J)>~a6i^&N)tYt%f09fOD@}%LhCPw6 z5Q#ayV>}y6aHcp+dK4$(+0?-a< z{I}<|7#$tRu5joQg<9OQZ5|ppIUhgzK^qF}HcbT^g%|N;qkuppCeEX;j|ccKx8Vb1 z_JGdQz^{3+o`AJ@g#e$LlUw8s#Y8&S18tX{j=~GmIIJNl>lyhE!qXh zx{zdI#^YYxc3dN<#XWx0auOE+#Sp4OEz^u7g|PJhd=bIK`%wWN?#-PD3Z&y`^IULA zZ*a>^z??`GZBA(qmaQ{@bd!D*;2ZR#xcj)n*Di6XO?r&OE#db^MRUa8soi%N`Y zX=m#hd|lXNprH<4-dX^SVCtVnin)P@ z$Mp<}kP-Qhs-WG0O`i{WmdXiJR`%o|9`Tf0XIf=WZdFbf9FS$o~F^fH7k$pn^_Zw*^;I)pdPtm?lr$CC7d3616JtOUoPH0&_7`fUf~UE<7#DkZ2#Gb|)Qcw^!}RZlKVJI-%A7dt)X$>|driDF5j~ zmR*y*2_`WH{nBb(eDv6{YxpC>OxEV@P{NVHB=v=cNDYAQ905J!XWyy3W2~D4(IK&?+z`7@Dc;_T9gr&q&A;yzC^r>XX1+EZb{fDEgDu)2|zX#=+tq%HdJkqnE zgx9;rUSjMYG~GLqXZ*~vqz{SMo@X7=`ty6fmo^la@o^cA?C;U7zp>_oz=GD1_TFA4 zaFEcniQHOKTRZS6Ytom}&ocv1+;0JZ!A9BuY9)f;T=^gS0}=;uNJ7+3!4aSoHs)a| zpQ3#l8XPz*09y@iIoyBQ9m@=&0(9;Ggitq|y3eTD@!KR|m^kQZbm6PXpXZ1t09~UE zG(r%a-`wbMoGVVT5nSH74!=66GP*X?}qX_;ga z=bO_RiM3E@oR`~i!MKBj0fmBdT_WjaFXzAq!f}gvZMd zBgX;53L%jOk%!^P8wGW!sH{weNG!}#7z%HJW2_&_VVt#BThN4f1nHpaX3(t(7{(5# zRu*VPw&;(bO|r)VS5pjURpoL{PEX{U1qH6@{ZXG@J&Md%xcG7N3E7~q z$El3czBe}}*$kMDuBmTWrS|eC?>NKy)<@^*))2ItG*EJMmBdBoXKqGwhD?e88H1Fd zd@579aAhDAuKj_$7cUHGH$3A>6uSS`KB;v^-S7sBU5{?~y^5PK(UZc@U?irmMB~rT zJnb3p179@ddfmBOl5oXDHH~*s9snfn9gpVaO{j20T#^-xk*u@zJGXKFU6o_!H>`EP z{83Tu$IriNUzisAw(ZUKpWOW|b`!Ib6z6sA>er%ggFZ0jrMd3_`-b_tll=C^(2-d$ zx+j|#bcyDj$0q>%eeKgR(qdP^_O$m2We{N$dbMIW=ziqhrJwvFtIGWCBziq9fb(f?Voz@1vkeBVl(m&hs`1bQY zi#MHuM=zT5fFsZbzoUAO<{T=KiVHZMZozO5?#;Z&QxlO`vY{oe5F&A(ICk=|R01ay zY6zjT#mpq(0q-{Fv2p~~4XGdCz|;>eCT12YLLF#@tdH9Arcp0K{m{IK#Q$pbq&Ty) zmhk92j%zMe;m{dw8WDClVsr7raCXEKF4{N%*kQ_ewUdp>EM9D%3AICtp5*Zdh%eQb z6_-@K6twM3XmhMu81IU>8+$%gdaVwXa^`+he$=pX*iKi1FH0itjQ$U;0|w`Wo|W+O zm+L%=7qMKQcE?6#^_Q$kC6yIrJxY6z2%LylSRDDZHn;GJSN*2=$mIH~mcy$uirsx) z3b&?l#7uUIfU>60)|vSHht=7tmgZIB!DZl!B^mXbGaq6TkC`zMIDqaCfkof0@x!34 zcSukY4~??`Tamzr+K8~=F2HzP^MMgjYQvMtuDQ{QHcIO_K4 z#Cma0ero-7@R*eBn_Of7)>88i_#lm6MQQ)>;|e}V$;l8ATMKNY*X8BQqOqr$!K-MshSzuz zNJcozJx<1wZ6lrKo-39!BtVb00yH(UkOgo9>wv?6-Ig&jW}~q~oFk(6f=z(V+=rz+ zhk_me#giESp2SO1EhQ zfYpgu@!OI{uPo>$Di)F>0wAvR1$!1vkJQzGInW7u94*Tu7@j5HcGEG|;7jzQgj8<} zt{E0K6%WMhg?yvtr09TS$$KcM^fTJ%yda8<_E#&0*a^+ce8raeD!_ELM9s?)#`vsi z_PH-MLo3MU!zwpJ%4}r_d&SLK$tL^Tcs0A`njYShA~ugC1%GY4w>76W;w#I8oTq6j zOg*{EItAwhf8@*fjh5UEQMjM!qki_dh(&S%?qTqywF~e{ogc)iTblN|rw6*cbQHVD zBSYE3n&%|?ST~=nH$8+rob%VqO=yV-c zXD}@Q+(i9ea0;WsNES$LBVe)}CKxLn;39w$ESt`qs5X(UlbHw@Pt1a^M%TRnctq+r z5N2@WvH^P3V$wN!QAprTWuq!A`abXZT^V!C{%^Fmq)(-qUjfDwgKcor7nSsH1PrKn zA{z)J0KQxXhKIrOS%}0B*p)}o$Fe!%>a5peV{aA9rSjv4 zPrfT81u7p|B<$DHKSw>I1^6qpjBU7hc;)A5+vEz*Y_X{Z~?$UI0^+f?L|)+t_^s+raWkZ07?X80W2Y(o-Fzwqy_<-6*!6m zFcE+u1SbKYP=4^=Z;~yHMp@qvPj5|MsL*`z7=b*m*nE;^cAFBXXWO=Il~HJ8@&Z(X z0HVe8*jJC3v7d|F^g}v#FXUWlsvr--<QccEVmwsa)8mc%JvrHcYnz5I~?+KwFpB2WC&c4a2qAmBBV61k$&V|^fqn(^;ZF}MSH$WnBRBY<&b#1=)i&h z+}4VzZxG?-=&f@r*ZR9MN?ucVor>p|6Kc!rhS&GMsa5?s{A2y&*tu+T)mLq^p0MBO zsVqGsl}VrHQcvEauGy;mYvk_u9d`>i;oBagE4NomRQ=A`n=Y20cAB>s?>qrzI=U)` zPpjVF1CWCjNM2)O$V;jd;bMofm=wCI`wpeF&q z0H+*K)D=*%i2)ZR@22?&;9+7jpA18TH-{E9Tvp!0j`g2?4Au->%YEP+3gcK{&*2z{ z07GQWvmnNzTqMe(8${zrK0zfQ3(+e2Zj~RQ`v81coovF6KZ4z=Tt|+C5N_YV%#)Wd z0|42OCI}V&2{fIsg~$t@=!b7KA0*R$=qF?OFavsLDci$)g=>1!f_jjGMP^aZ5>srbB1|n+X7K@XMVK zwMUU|i$AJ7R>G)Ic7yVJ|0i`YfzFfe@o{3#Ov9%9;5`oNLOPZVNc?OkYfRtXt9Slu zDw223uu0K~Yn;!8&7h~O0xj>RZ@dcAOPe2%fh|O(rzxanA$#%l#Qa-T)y>^CX;ZLV;5mBSWF1(35m6Ne^W10SCdfq0zh0yZ+y+QS;?wsk zNng_4+g6@fnl?CNPqzg6vf5Q!ce}PA>VPDL23rD(BNmSh3L6&U_M!7uj+qQ8QGy^- z?CXAY0DA`ATj^!>Re|{zfM|j$BB*p=j%2a+2hO0Xq^l++wGp3&gI05XU` zDpw$W0kD}MG=1X$>P+7{kX{zMp_lT2bor`e9^_5d(t1Ts&|g>JP)`*{o128s+kiXC7ItzR9ykPk$c#9r*KofdzFuK z-B!a3JTWdm%t`~}CGtO16%fPH4JW>^(Sg4fua~Qgb~>;S+_|D~&m~D;BXW3A)3D%- zhpr)8#&3*)(L)=^9JI3JlG?Km%_6Q6p`kyz$vh+IetDs(-H&|?AU(mGd%m3aVbHew z0jCgai#!|PVG1feI!mSKWT7OOHu-^-ymYWw;2r}(DIi)K`Qsj{&s8#F7mwLB&Tv}) zyL&nB&!Hb*?2ia6Q1ct@>ki`|{mio=b0J6^SAymvhDU0 zgAI*K`3ggNbo}>eojX?oh80;Ok{sIatPzASoM`h=Lw>poaZUEhf2S>2zu7(SY71&U zT~q}`Kd4291uz)g9S{iKHsDH#dqtZB!2cxg4_}!9_aCDo=VcywKk+OwUdt1|3Q6|K zmD@au4j-3x4CCn4J5*g=IH7@N3>@w^zpceX3lB9$)Q2Q&!{;`2|VyAtieHRI#niKjPfeH+xLvb!_#& zXf1H#QyUxE@@%jet=QarnaHiIPmKUJwKlw+k3L}jbMOt(sUZL7k*C=92$tmU9bF}o zj57%z52UjL-nk8r|I;PL{HM=7D=h2}@GpxfU~7x)v}bP7fLZ-qn0+-JfsqGE8FB9m zDk^+vg3G^1EARw0E`D3j7KoWeerMqqw6sSM&3*u`aKONuJO6vD(6%x&X<*CjJl~1d zEZ6=ulCr?f_vkACGX)-95?|3?Svo1zU1xjvghrloF|se$VAO*Ga^B|F*8fDl z@RqgI!t!1(Ke~-783>P(^+Oi@LyhN{^)JNwe`{laU2XF(fA@bux{rXrvX7S+^@8wE z-}s$nj$U9(0B(R;3bK9M_i$Y!WWmsIqg5s-sWd9+-#P%B(aM1B|DZZq_W+Rvjt=_w z*m}T$x%v4={_8G7Z5g*N;dc||t9RZ%2#m$Xk}LM!^SHVJ@e3Y6tn4B1+Z!23{-)V#o4c?raJ8O_HOVQ=jNHev}gR)UH1On z(Z?1>n<&dadbH_r`myK}DMw-!@SWgwpBv+LH=K7(;o22#ulAWPoiA4?H!n?ihkpCi zrOB*M6QY6p_vhVy-#hN`h%8v)m`K*GB33w6i2}AcrGD>usmXp%qICdoZnZ=mPJ<-c z#*YBMhmSwm0AW#gbdg;j8MD@tRR~&aFu@H=OS1bSk)k=b#_o&A(8%ih8A&aQq}R(HtaraPzi z`rg%g6~hXzo*1dj^pu*i8CbwKCX_aN`GjNH3ZqW8wED7k-@*E;tI_YMI0a%Hm&~ot z@lL;{r!5Zr684IJ4&0KT^ffj5p@a#a+D!6J)0f{i07W*4L&}Ya=nA0Y{Q5MoM#erl z{Zhe@t2ZfD(C*W;9g~!X{Hm`Eo{RK9bnm)T()H(eqmiAR>}vhZ^NTkbjR|$v2e%&XTwn6Dm$dg8{4!KsFHtB&K{)c1hwDiobt7~BYI zvdrxuAbZ9)?S}e}Pp z{Hs=24CDbz8H1%|B8{OSrY`DOa(|*>3}hqFH(*BaCC%3d zsV3uRXEZ76LC16KcR#ZQV?p>e;{Cxwcm`Df8yg$V;3&0|-~h#@m<}!fZ$N<20-GMn z6G+@pU`=G%Np8gVVJoQ!81WWvGug_(rlAyl-hP^5MyWnL7=ZoUY?^4_PR6PwXkGAb z+SCFw)m+Q3@7Gd*L{*misIav3%k`BSpRvy1gYHO z$G1Hw*RrencD2< zUZ(dZa9r%d#HwsrOPXca@|8XK%ic}?)I|Rm6XS;SD`X#dSVYtcI}Gf; zy2^Uf)6UVF=ObxDFK@@x+jLxRH+8Uk+RgwNm9Vy9cne4 z<>q3m?AbXyU6D>3i?Sn;y%z~h!Gzfcl>{hug<|EP zRme`eVkeYwB#9)+C1i%wlmKfIc1bh+Y#QxcNs0|a2v>A{Euiuyqpl1MK|eIH(H)XB zI(LrFdm_ODrc7-x4e0Sg65F6a4Nh6 z?2yP47%_mLn1F#&8x-!n=A7)COC;9-K7RgOtj27AKznP^$gZtD`RXPr+YpcdXdQ#{ zMibXcvGH#aNQ&+y9h#rI@+>hYCd96tmDqP=MSbK5BO-(pVzVlO2`OWvkf$JuSv-OG zS;@p?GjZF9^oE37#2=s`pn*{#lau=gq6%axB9C*Ic1zxow>O^W-d?}gP;GPkuOVT3 zHns*@wI^PQUfJH!c<@E^l_#F@c^_hRR@J0^F|M_q6YATg^kLm=8T?#T+?<{ar`dk{ z&zm;)&y73VKOjBfAiKi9^Jnw7iEoMJv#L#)L*m1qEa&9VFNx!y{PC67@z>xhH1$jAsM5Us@6_^@<*Lc+g;Pw zs4aG|8P@yK#dJV%NynMcv3a4Z$1U#-77I8EKjBnw$_$i}5DI#KXSe+@XIY1eXIz-N zD-`=fJQ)M^r7RQMJqt=YSXYkz`o8&s0eflqj+DNN{)YaGnW}M|A!VT)?24BgWSYk| z1w4(3Yb`8Vht{x~$hclycaxi;Qf$HTipytvDs=36Y$6gTtUH%#IJVDmlrrI!yt4Vb z#7KI1y@RaM?I8Z}^6s!FO}j>H4h0Fc=S9V}rW|$c>v827EeRY?u$9n|e3$yV>Eo*D zF9)WN_qUu&-*GBkDk4VMn0|NP`DL!CW=;>`(H}EbhIoS{XCj%9slXt<8 zQa*F$UCOj#0baXSbcDpe5Q) z5;F9#xA|u`o8P&6cOS43^v>WkTV4rs6BbE(G5CB4`$3TC1Fm-fs$w|i*T5?u+tg`1 z#fcp5N(7z8#)qhLdI_62n7_@d|@X#5Io>vp%)KCf?~K$gVjpnZ-BZq zpJ{_;8Zs}t_WSw3l?*vh+!x^d8WZU3>?HgKPF&$Q3PIj;#s@1uh3!ks z;F8?DS?9Z|mz+|#pu6;_Q{&1Ck%t6QJ72z&0bC)1~h@A2yo(dQ&ePH>)m z`(E^v+tci=sAGh!|9C@-BY5Ga&kL zj80dGaY&Hp-LRQQ5?6^GDZJEmsISn$xo<2lS7T9+&(*U%=hDZ19QfPhC|CbY_xbG~ z6IYLJ!kWN@fVJzIq~br7pksOu^5wCyF|pu7)Qf_`hUN>SlDijK#GnR{1$kt|t5+dd zsLkeLTNce+wruR8b(|(jNu(*9Ia^ZiaiS*-xX_vAf|2_Go_7TXKnl2G@GAh6+e+|J z^Mm8s9ZXk4lK^=;L}LRcjB zXN<l~B%>MWFmFUFPMUbbhuwpjM=c_V@puIfn*q093QXupm2l@Ee*U z#RTt<#$ORB=n(=8m$*24D3Vxhdfc!hmB*t2scH>;_S%CE@czjEb@ND3?p zAS*jaqMQb6c10_2ZD0gJo=KoJ--CrbTu35tMB4{r1|A0SdMaT+4ni&d#E-a)inWCX zObcv)g2}&R|4{@#dLM+!d~Y1+kX9RPg3tkAh-KQYUo9&(G=8}5G>*_T*i>EcaaYag zh2Bc<=Xd9QbexzSs(ueu7zN?ca&tj`YwF1*odW`=la@TM^c$Z zD<0TOV9U>| zHr~K6Wx1xpY3pU3sItM_g-#uLpR9$Q+C5agTXL$M#6shlR-_pE$(o@N&H-9gGO0#*tS%wOH&|dU!yB-1Z)PfPHP8 zU6FyN+Bh0)B{*nA-{gRQRsuNPi6hbn@C?Y2AL1|tSMV7o zUQ+@JT$o0OAy%mZA0RXg=ag3AowYO>2hoAZyTBsRmLN(NtudTJaFzQC2_yI-?Fbw+ zsSs@U_Yh2NU8q?WkOT;>(+RkYj~=Nj%t0w&f0wT8)* zE@l~wRvU{_c}bIq_yO!ir7>Vw17K-Dqbn#4DimB;w;L{!O;7Jv$wKcL52 z`SBy&T*xL9Nb>__ANklqnyCt`p!9xZ5n8r2aOOCp2h(vj!12HVvX7JsIXmV8l}5?k)*3rZQ(SX+$`a4oh$?0#4U5GKj^A=FSZEj*_C`_K znLWNhKB7)q+Bq;^hQY7dxk5GNi%3D1*t@XS>&CSqMcb_)G=<{f4SdqxeGz$R#)o{d zrB__2h%ZKWY;J);=WyW8B#SQAV{dY+-Q-|1vjHU6P#?bi3`^vyx zj_}mnJns=tP1Z_r*3cVU<{EBXMrE+~Gd3e5_I|`{eD4#pK21Y|zW47x=ePDVE?>4U z<+cU?ne(^Mrj`^xS@?4^>n)c0fD$B@(yBC96A`_p+ZretK_lN9(znwS0V}Gqs*1)I z(C{Ja@6~U>fVFG6$y1G?Y+wSB=^9*O?;v1WU{z{33>_yl1ijrI06$3Pgw;T1CP+hR z*!N*f8iu%xbe=TB18eiOUXn6)1nQ(6fWUw|AV;N_;cy()qLv8=EU!@>WdkF_7_W9X zD`$hjTnxROJOJ0Bp&{}!f$HP%nKMe#(lgbQjR_qgQ9D8dO}xa9?N|ViWec``K1R#u0-R5%w{7*n82J^U?53$#vL?O= zV&e7^*PJ*0TNgRI)4yZil$;JCxkrDbfY_TjV-jkNRne=u4~tZ!tu5#|PnU>@FNqLD zx!}WYah$M4Zcjs6OjFoHA&V!UNq&GuM6CjRq(k8W1QE@~3_HwYUMY``CSEK11CA-v zjQ;7T!H?Eet~SdYMcCrqgrVwIaIo;A2A#M})X~>y7#Kd{On1WokrYU+sP0@3M-muQ z(`m==qSbeN&XQGy7)(bcIKe^Wc!^Z~+9R-ZXk-#{^pz!;#B%_2qteA368F?i)2`F( zc*`_fSfWACtBI&hc@&il$d2I8jT}A_63G&TMO7G8FzouV)c@^YIiIsw=P2&7HFI*5 z(qEVv=QO({IK}$xx8ev9tBOKvi4p(R`()>AO|W5<+^T#?!@+S?R`83PHlH{OIz}p7 zEw;L7y+4NHRdV~QtM6|A+ClrIMMt`Npo}~JOq17;`XS*-|B}Q--vYDWw04YczyeIn z&C9dcVb#lAVDiaEx3iT~n=+wD!c~r?vyE2ioa_JgUNj&vr&haYQpUOZn!UOl zPUiC@k=!@ijGW1dv8%H)eY1o=<#dymdj5sixZ7tUYpZsLvY&aQUog39#Z>p2{=~J$ zcKVEx`h$F_dK23G3{Bf_^lh1|s5q7P*QAKk+^M0mwMQ6pMh(8bOUU@~lS9L9{HVQ4 zee%4LAfEWvNab$Z;d15rskWV_qcwG^KSvZ=!ir`lvP_(Dc{8Pxbf3lL&Gtle(ttYb zMs>HYMGA=o(pPUxKt$(Y@#4i9Qs5{HlcvX%m@)bbH?)>o*2sxOK#xi`hY)9yQHjh zDL{23Qs@uR)bwPIXaM{mo5X^yA&lTGZJHe3{%4ZCh1jZ$p^xgMHb!5b2K?A_*!S&; zOKWGNRwmg@fE1_^zmkr?=3i2M&cIFtR(clX;ML7{21BG(QHg;uX*i6q3AYLrz*!u(X^5Y^q*uQsOCDdO}&Re_^gU<1M&wjm8Ag_JHWXhGR=#+6LBO7#XzPVrhP zt9L}6RoG&kUi9Ud?JKvw!*lm65pSwQj8RQCo(6s~4)K)fm*p>PGnTUUeAez{uV-dH zzKpef4Zp~pNE`$~d~qArz1?%be4#*ocmEO9W7mP@6`IfW&-uAI>i*=9IfqQg7I(Ns z&tGV`=MLB9lGw+o0hj+`_iA1u5Cv&e&&w_W5MAZaGGC`M!!_rMRO%@Kfw}))(9t|a zm8_r3p~Qz1)0RI2=!M@&NaLm}N&ONb_aK;{x-Cn8tu$rsv$Rp;lo`1t!5;HXqWc0seKNOF#~NTnZg@V@k>U$;RyO~OG# zEp_+}m4QZzg{6-G7_`&M4NZ2&^oBB&jj|M6kSXACf~e&Q&hZL>2k3u_S#>hgp+aN4 zkgDXGrqIiUTOMj+cCtk&@)3Hx_z@pbE(Rz_9al&Vf! za4(Xi_ln0=RFaU0E8J6QdU;BR~HTRfEmoIgCPEpQ4sd_ zDbx9zrN;!qxq|J_AjFL(TlY39#%p9!HrnKh$a3b<{>vVf56uNOta&YCxtHZko*o+z z?g0lwR;ITj>jgI4>y-wWh_iK#m>A2lenDiQNCz=AC+FJ*OVH!_;Yhxf{-x0rDA}oE z#*9mNv|s|+Js_dyQFRdl+u7A+h=F;LhL&4l;)Bc50^pmim$Zy5v`seS@TFaF2)`vJ zm1e+(NW%}|`xm0l9kR{T*tc(zwI=N#>M-Kt!KW@CCYm=-or0qncx)moF_2v<9eH`% zhf-5$5?AT!_wy8IQZVz?;VDZY2h1gOi-pkF+Jpaf(OXbX3g9`YA{X0(YKBIhLL}Vk!fr~1 zFHmRb=EVBS%br6e$qJ%m^%X(PBAuON&Kh2)?|1_*WC3ie}H@eV2likNShA(dF$3q-CEQ;b%hhf3Xs!vmOFN=S~BtG zi={;x;u~>*X3d&KI0Tm6%8K{zcLPlV6tGWLmI)I~O7$X8w*hm4JbgDFIf_S^NVbqY zIMDh8G})No(T36mPH9*aP)}p&V%<=c_T&j_60|u~K|Q1M5%cTFg8?mf@JK0oL>g)v z8W^mB*BxqooZXm@2x~{IGBgVDp^%-^Uxs3pA?ubqcn~|Q**bkAA0K@tFo^(@kXEI# z^7DnA^A|79+p-8NOz=;GU1X@@)dJQ^1E6rBzp$c=uueM-<-(RP(vlubx;2gocO2=JE20-n_v;~rHU z`yJbE+&ERLKnn!Fa(lnSzz$!Tfq;xC%>wl*;?{I~=ai)N^!Er{!P{NChLzmJz(kEv z{OT9~pZ^XadEL4J=OgOsG+zjz1Y3CDzBVUeMIUH{05=0`I<Zs;+QOyF&@>@qd*Ewt@HrA_-# z)6bN%rSD?q^u;c5(K6rmI4*9(#*OoFcp3)a)&0+lt-|FZz~olF&Q(&Vplffl+^Xmk zeFYV3vpGT{Ubjl2BDdN6bH8mWTXnw=8npZzo;Y{i@w$a6zk?3$WK}jj-?k4(_^PsR zb7IOZ?%wn-%|HKN=cxa`fA{~=J+Pb|0M)As)1M{m#rGEN3ZixWhc6ZW^Ck9w`>x!7 zzQpx!UwZxLOOi(;6`GB-r=O@4OQc~-zb$akDMKWq(9SFkB|m96x=C;_;QZaTg?5k^ z=Pj&yfKc>}qA2%P2%Ng{?$7H%fW?T|pT>5N)+=@c5>ATgZUmtJLV)OsS-&s#QeEyu7 z);g{B0JL}}-rNq|CnGbxP4J&7|LMDeOC1gV-@p66a}QQ~@x3n!I&$!7C$B*KdeQnl z;}7SB=d7Z&hBN)i_Zz3KuICJGiS?8!7zkxp5@BV}(&Ybg&h{07hMFn&MO2Pgyna5r zF7f%T3zl(}c@N6^C4N;n{`1oc`vmqx)a6L+RXoj=A~Cd<{(U#u{nyGQJ*5?rHcQN0 z&wlFPy9C^v>7OX{E#B9*;D~x}yIE*ZzGc_vkGHDaand&|th3-aLx<}hO6|nMm`>bQBOIcoOmzgkV`?va% zj`NWZu6h@rJSnsD+damj|Ha;WhjZQkf5T^sloGO6rHD}WCRrKTD?~`PY}qG@5R&Xo zc2>wLva&bXWRGm&V_(l#o#*fR9ry3LuH(Ls%m>^y9y$drPo2Nh1&aPoeHW0m7jun1% zc)qgn_MA^;PU(Jmkj8ebKtub~OUgFJ>h3}d+(Z64)%>oY6+Xaq#I=x#EIcEm zb9+fZ=WBTFZY)Da;`@)`;URK-X<}@acNrJ_CbVDopQpf^&fgci+VD}vFW_vlQ4Hw{ z=}`C`qw~@HS}IL@hrCZNzYDd`eLEfbc!*y7PL?_wd=B$@W5PPilwyrHO1Zfu`=UWK zT~%4xE$ZNi5^fLAR5Q)XnarXE+T$feGVuG%D)uI3cmCqWL&t; z=g`Q65pGOt&AIQ(EwfGh`!)~yPrC{oP71I`tTd?hzmk8bN)`2z$Xw`M1Lmqlq>VBO zlei)0hr!Um`lrz!hQj>h?H|zwTH>7-7HD656vYvyrClE_`0xM|{pnzGPi{c=RKkV* zjt!bss^rWz-;Dv+o5Auy)0=g1Za5dteYM#zXF%r&m0egc6Uu6;4VfcspQzf5CWMth}p52xqstcTT$l!rGk?^OG&8B1PUNNzsl zvEcDM!R4y9+OB`JNXwxL2kiPlFg9%MqF}|5+&F&CaP3bTAwM@AJK+epHgx%*MDY7(T!!4NY&!P-=4p0e4;G}Zt;z4 z*Wb7=PZ<+Y)a>)KKm2lwP-cJnEH(MK_d%iFNg9r^+-w1~3lh zA2Wr&xJe&;P)Z;CV5!aCO=&HvaPkT~-8QN=#w15)rr?pW&~?$FAGk#Z3^%O{7VfeL zNwVF(^vL%Z$wF-TATvg)*&^WGj={cSZ-!wD=XK zVy=tvnlLi(k+#6o&N3zc_Z|opV)7(%l4hOg8UGggGelQE~ zKV${r6msb=yd|&S48_(fiPDhRmVLU|q6Kzv5-jMfq_-xV-P~;&%KAy%BKG5>q`DWp z`LCBkT4RZ@cjxb3#Af&B4N;a(e|JB6F^;$%>RLkc+$@%f58zs21DQUSO;8kkg5|GqT^?$0Llhr#Tv>qZC z?H_Do!&GrvMlUnqSEAK#TP~J+9fbi|;a~)qy!je>gm}Hu-1$BVF8JwbC~5iVlMU0q zeAIBhz??T$zT*?C#wRM~uSO~zPgv+~(49^Yr;t-ndf4(ch}k6Kay4v=u92~hfP9`) z%Lm2^X3^wB%$`Gg)XzWb-1E}x)Rryv)*bCdHW#!o8H9w%!h=SiP7;znp4v7WzO!>! z3tngUSHPy78C4ss4JPhiGB@a2p@scb-Y0Fd%af8R25+{D;l|rEOR{%R;K2McAqkKd zw-*e57kSB**n&qy%8>aK|EKqlluom+%-5@z87h!N9N3foh)Ia3Z%czwd+Q0Y+T(>T zy66*BTHPxBMK^uy{EQk3?)kTvF)-SOTq0^!XUNNKpy#^wDs7TB4)adE|9AR-%_g;A zivG+E7S|!V7hT#rg|K2R^JcDv6GY8KLGAZ zd#9zJx!~Ji!-d}NZ5DQBuSKMLysnNRgVWe$eT zo1gyDWA1fcEfv2GQ*Yxot`?bA4F$bw148G`fx59@W;Bw@;6Rwhp1<9nvq&w<3W_e5aJ_a< zbL~OBB%euEd2UD=90Z;_+{4K%v-g=`7}X!0dQkT7D|M><_mu;w@!AGuz4HJu7yMwp z&4AFQC(n)Yfg!P4{_`oRm4uS8ZU9^rMq%lue}Y>AK?_OGwXZ(%5E$t~Tf+6T&JlJ= z1F8X_7^gKT0Sx`5vWC(F+qo7q%=}%J@b;W*3xix(EsgO~OyfWc7cROh=F7WA)Uh%hJq~@`nerv2w#JIsgsczRufs3UjkCDV}A$rf10DAd!vaf9n}LXPD5`R{zuX~;9z z9u;b&jSj^XVeYtoqHH#p%(s*6`8tOgB$&+;@}EgN${ZOG4tuuP_8_6q;Tcyrnd7fy z`3jA0!dm$LbQ#UdJtXE0;Ix}c@JXm&binN|-6@w7^TC=_el+~G+-(qZz5aAh?C?}- z<|_cSwny~6p(ON@*Yi7{u=a!a-`Gj^;QF1f-{gH#4bbLo9o}cSnVFWA=4rp*{?SyO zPRMPjzPtB=o7TismRX(6qlC+@@lGznJ00WAhnpoI!8eE3%|8Y=1dG66V#px2{dU9h zIxOHP9e%bLJK3PGHv7dE>rRU~Ut${>Qgf@@Rzl}Az%dH-+xgA?w37;a?`Cs4ysv`o zVZkA;YVie?K92kuE9y;knh861-g=_qq6fI?FGru$B{YJb-7abbyY(YqzK_oO>qNHoNmzYRK03{V?5#9+Cn5{b%|ayR@LVu zcA+XaHyAYu>zUtv^H8HYCBOk)+{W$NVf@~jpc`K;Cv71?3(} zGq3JTd1-S*@CAR=$@$$m^fdT}gQk@gCiTZNudT!%I!4F1YvEnHchbZZjE|0{Q)F81 za(JUUS#RbIaQ?7r(ervXYmr(OX@xCXe*N(Rcq-9~8y~ms3)RmQ!*Yt7mDrL^^Y9IK zrK-L2{71N@z*>ZbhR*I9X`buz*R!w!&qGQSb%!Y~M{)zAkM(t`kRiwQs`Bg74diandqjp&O}w!-C_gB~0EMy)1d22b?i1T6l=kwkRecjSmVQ zefpM?@SdeLk)f*n!QPB~zImiQ`)GIaIs;>NQYLbWkCal*;^trdef2h}tm`RYwa-&i zehWNQHerF-Z2agwH}@|yaoejRCvca;Uv+@Je}Q$zij}M9E5Xv)$KM4{mF3ExBVkXL zB)BbC<}-f>Tc|2#ASRRB5!v;!gy5C0MZ@J&2IL3A03R#cZo)t4uL?>w8YYeY`Hr9| zcHgHH`LF7rzla5RUPGk#`@(9cT&(&Vw=n>M3^pOp3pC%GM?VGPN}FuZpIneXLE0Y{6}rtk8@0L^&QScxeupEGDfB-hXA& ztu1Zdc-%l8`*l!zKKR%puH)fsYm^(O0kJ`A=i~dNEgBWIy~d*N%N{nf?8s<}b+Irc zC4YSJf@LrjNNP>YSsk!gpXzOIwc30--myIn-gIew=5Cxd92dT`=~q&5K8vP%)2jTP zvcGbFxX5o+`mySkNZsIlNrWk_=xl6w5unp@Th*cBEW-)==)6e}hY1-M<*g(Xc5`TQ% z_tb_oBSd+19X&6v&=3OCh!#U$(c|JlYsbEn9>xr{RiTcCiuNQ;o&s#ez%S1oTW~(n zl)i2fZ^+8TDW%x@kIM=S8pp{=zADfew|3Xjy}7JaKj=}boZe5ETYa&|q&c3`PD@>YSC#VcWw ziav?JG6LVWpg$*8<>Pf}lG`XJQ{H<^K(?OH&&uzyT+Ht%=e0{+B32K~3`0O9ViX_pcOJ6(CXgM&1+?STVcTh=0 zOuVr@{H*7*lkK0g05nqr@FkT_1@T|15+;gZE9mcClZnckwffPO?ssgCkM&I6a=LlQ z;>Cr}=i_`SipjiBo?ROB%T90;=^c3T&*Ea9H@*TbP4Tdpm;gp-xdH+}#i1e&+UA93 z{VYI>1Q<#|H2e=O^Q2smsfI>n5HM*X8~|vSz)3`)2}HPmh-Vav^f301RJJK#)M5@4 zEUv+ufUFtOF{0T%7!f>+gQEvnc_7!0p?Fy7%8QLhJq-;}DBq)=H_TF$h5#xXY+@|{ zZGb8Q=ITNLI5YJVO|YT1J_1q#!z1dB12znCmk;FYy`~n72Hh7VY>GHAfUppd+LJA} ztHd|~#6j({#Clm=1nDM0lc5pdd!o=D1xRZWw2?E=Bp|>w5Whcgb^yCIEATM@r~%2s zBAt4~It66N0Lw(UFkM|;72udG8F!BXvY#Fx^#Ba7Bz(|n57ZG6P!}dUQUNxN#15g8 zpAYvD{(7+psxZ|c(+i{2q~eODQP5xB1cky)Ko}zJS?K8lCg3q>MIaIxG;akb3Un&s zh{1B)ogZ=iA?1i-!xm!1LjX7e1aSdTn;MwU9s*+DW&~~lISVAh1L!6+SO7iG6vmr3 ze<0~tKt`f@QFJR;SA&~Pi$B5?CYs(?IfaG$1B7Tr6)!Kg=#?nj3(|6uRlOJt|An3Y9EClhF&JnSqdwXzv7|M6F# zoXi6~RsaLTdXJ^#qEPMM=yEAf*|bVwak0OkT6Tu?)S-elF3(_&8i&7E?bBK%Z6BGx zZ`<>lb1@d$cDXnu?%2&8Pgp6yc^J@obQ)*0=@=yO<^APdbz76W^|5_ICP;bIWDq!^}5 z72||G;?dTHsUbAY3MgVyZc9o)WqgJ;K0PpohzT=2nn$ znUeyW!T)sCS?|H#Lf{@a!DRUaA(#{RW7FMvmjjLiuvDO%53>ZIR(pkwji3+ks$aWP zWy+!sGzx8xZVY0V{&$!~tXS zt-k&xkoyP1rUAt__SXzCIUg=SM!UAO!C2z)xD zj0tbLu2$n9H%Vym%&puHgI=ptId`!3QpzzCnjeM7+loDwrw+Vkv=5igkJM015#vjX zEGk}&I7CMz)VIix8-N z^n~5X1#i;LMFw{)KEtMRq$Q-m=xv!3z4~`^5hI)WY(tKV6>-m2$wjueM>E*CU7N!C zv@*)$^$VWBrbUk2PGvVdR#v=uE(9U?yoV_e`ZeEUod!Soh4oCRR3-^9kg20|wwg$A`& z8z4_XER zg74z7o4*9Os`s$$en&^I6670J0pw{g_|XtFpZ|uoeIh_30kAsu1Dte`mgweNLobair5ff0`ooqvw+$Mu}VQG0#Xbu;O)VF zel>wtfeeU{l(Z3c7%xbfSPT^yjp_y`C_{LO^h4F*jUn2#S;&~~UI^N51#OVPvxk-}^*&|1@9Ilqnq#o`W za%eIa&!kgc{pDH7k-%}1@}jwFpUNDO&B1P&81Aw>Cei)fabz`Ks16+_H@=knJpFM6 z?Lp}zyS}dT$%Kmq+WQ+??d@7V9y>ud`KYqGZ6jW3ZDa9(I>i=~;T+4v=q$MYTwA9; zx}o-X|7X4$Og9Ww=13H^nwmC?+z!b`Qlj5*ZC%*drm4x1I@{;;GSI|NS~jCaDc2=bh;R-zyi z0dyS%t@#j-$t4Iq0Q8j{j5s91;swkd8Z@GlkCz4HDv+@wsu2W`1n?aYq9H=~1+Y^~ zL&X8G{gsAcEMM(VlLg8sjAAJC_CC83e-~xIKCL6!z9V@KZ3HngL@2nHFGYU<&&q%wmDEhax}`ar$6j z4#7kjQ@R?#fx*~AVlIdc0JR)2iroOgYgIr&4=HR|+suo(StQo`!KZK({8cMajZ$ zOW6RK7FhL)f-q=-=!gLv3j7{opb84odpw+$BcwTM0nI%t9RL(I(>=CMS;Ota4=z2VuqZuach(TZH}GcQ>32-Gg~X=X1@RAS#mI+W%Lh< zt;_3K&hR=S4u-|563={%LD2TZDpyI;j-8~c-4e$)iKEDS-kmN^3Nc0j_g(oviOlpb zI7rLIN~+rMQK`;|tj|;&9-kCQE&|3imdD!b!v`iHqsj#F-U*ah023;D&lbSmlR-`QYts|9e*;*m zDs~ve%K#oKIbbL}Kpa6JlK?QPYRF^(_lcBu5u14jn0T0%$3~ec=(hR8N8` z7QpU*Q%8cCn;5)CkQ3lZfg}BDZgR5tU2NsurY74`PMm63VO#ioYb;BgoUyJ>C%9~h zuI?NK&imDN8W(G{G%GrBJZsLu*q2k)C#HW|Jh-OfkWEz4=bxpRU>SLjJSnTWO>%X{ zv-sn=^jCVPI?F01o}4@XO$uJhDaQ(HuMPape(c+lU`_{40M?fA`n2(91Fav^#Q6T9 z?X?%QREZd6tQo*!dIys*)+aVxCKr2P&9G&7?!vWa$5$M=(1m^eg5XumNn z1;$1p4y0;SVLGgo3~qK0q+Q-nZdgc9po5tVcvzP2fzVlCvy~m`Gy&FfF3=lHlZ~n|2o{t81T??H64JOB@lU=9;A2~u5R7GGX9p{d*iMH4Nw}4C z^Bg0P&LKgg^3R_?qs#+xE2Qg%qH-{F_wL<;W%C(WlX@d+ClV|F(^qfWmYv2ZIj<0W zYGy3Tl~`oMI1_f}oa%R2NuBpqesS@0%uv>O|I&@7rz#ISBn?LT zHVu13D(8Kcx!WO!85tw^l8&AA(Kcc&z^nzu$GtO?s{xF^j!ys5iSISU{gwXtgI8KD zmX)%9P21^TuV@n`DIqV9b#WmRb}tHY*nGOC{A(#X$L9l4k?Hvh7hwIrgeQjl&LQM0 zFgLIQ55)@eaVASd+GqWKmNn`*uS>{imVR{cHPvH1q69^x= zQe{ZM^1ur>AQXi(5fwlnO3t|TKlp5mX)zn@WGM9^S`VmEi5cD@MN`_qXNWjT!7^Dx zl!>xZV2I!bOyhkZIvj-R56t9T1M+exMp;2sOa(k{^%FJ}x&obPsq+>i)TPj*PlA52 zCSsQYs{y0`F_2LwvytNVN`hlWX(U)L#6%9XK-j9lNTF~B3o99MN2kjtqyaqxq6>nV z@5fv*nYUmnyARfJBM_Yd#Z=-aqznKh1SGx;kxB!U@?fM(#2!LK;G1pFQq4x%P5V2m zMv&`|$ihy8_;?CR2tecMm+(Kmkj2_68Ge-rAx(LE5qz*j{gp%V7S&Q;nvPuY!g$L# z7DxSt%!$IDSnNlCu+TNg%S!unuo{GlIDu*btewFgwrj`0u3A|^0(qN))tw8zZ4wJn z0q=B6TjkdS%mNmhqbXm5R6tIi^xG9``ZfW!-@E~gM_v@I4scN*eO}mzn$UNi~ zPGv0l+soTzAV=+2{K~w*NXG5F?`?{PAC4(yq!`qN_fLj74wJ^d7CB-3Kq7Zlu3A&g zbJR4ID|j{}Ls~9=PQt&Z{qfp%-R19*dyBw{0J2Lct%{CrhT0fn-bJ=V1+ja9+Up$1 zqNT$PhXCw|0>xM`g!uC1OXT)YMh~tJHhTt=mQC7&HI7Eb!0&;+BUL)&F32T8UG(Me zC7nS-RV9i@n$RRHj8|lUeR6`b6e}t2$bAsS8>n>Shh;zqE(n%6E9CoVcnl=f(Yy?l z4z8Ge|Dad*3ZDmrxG#(AL4_3QP=c7lOSBrmDzXBvszeZ_Ul!<6qS?lB$o&zO3CzMi z1#&!8aYfV3us#qgnrSwSd`wu~fdVHS${ToiL72n{2nI4>w6+OKg@}|>Vbo#R0>Uid z$oG;~ylff+R4M2Z;M$o`lmN46{^0Pv|LeEog-N7LJT)~ng_#Cqs$nkfFShDGrN#UPGEQ~K!tp!12wnqjz11w^tSRxN}o2BHpyqwvB|9PqxO z5hhR=Vupwr7+6_>^Ln;Dt_8;TQ3_X_qw^&i9%$ksm<|~F5f6)vm4&Bvo|x$|NOpk! z6Cx>WLj(R~>`(6iO%|fyfN4`-xIoLNa4(R(K(zlEV6BnZ^40`7f!LCaywzUdPSeP* z+bSnU`3ZW{DdZ}bwG3b(RaoFU-;vh4^)#W>=G?4omNJ{phALWoh+4aX#1#G9WCCQvUOcJG4V&J092QM!q`r8u?3zW zs%Jw+#16EMDnNyZ2>8JGu|o!cXv)B6g5N?sHDGCyLDwtevUrjZ$bK=3D`o^kabayS zJFgp7I~dqdx(E7jqg@ZT`e7B~foxw60PopNdvBtr2-3Lo-*YIye%3Pp=K;`_0x|fX z-q==(^}%iTbWnXzbaHl9qJhX0a*l~7TrmZjIlv*C3}Ij`oa!D_QfndD1m4aZaP<(R zLSZojC>Vg2`-cS3v%wTFOe7`VJco!X^-G4=x3|-T;IMEQ;GVUig=qm;2A~*-fui$& zf48tYm~wDh@L4NbsQrWB1Ozg9pEu5d)qM&xo+GkQj0b9WC^SBT2?HnxL(K(R6urP5 zAPzAQ;M{Ne*W^Ii1I~0Ew7HQxsy8j3{Q0vbP$fduO8Fu-bf%1d@j+dxS4~-?#?hN5 zz3oFf7{HbeJx+Cf28P;!Mw-B6E80(4rci0OTHg`r`kBe?>%CZ`uL2&J!~dSe#hAdw z&-Wlk_@zS)VT5IRS|Vw^@!i#l_KunSA;?zhe#`|X_ix$)Gy9;h)yX*Z_Il3u_;NSW zyLoqO1o-megTL2*Z7Y2a-U==Q9sz{!tWmPPPfLcOLewxmP9v^}dDa4VxuXLQ9&l!+ z2zbAYyyj+U7%@b5GdDT;nyahppWfW>=k~(*E@Wh~u{7JK7MkoFOJ*K zS5@t?Zu)6_`ONxoVLyZne4WOqR{*KcX0+K zqhOFTJ@<+{<~3%jlMMIw7o1%;yLtAiyDfQ+SM@ad^SAYEm|%o6IpBrA$^HLNw2uGx9kVJ4D)k`Q z7Kqt`>05}PU>xyJ7Wx9Ssd&kQ7os(!(s%G3{Bu2Ruz(i`nC341G-NuSW3|bR=(=>y zzxBhg!?}R^Z>w!{6+OGIj(pr3z_k7m6v2P5xEGf^g!t-o+m8sD4)dc#6gYbaJdBxQ?)s{;jKZ?!TQ&W=1Q&33%({3U!mw2wkQ zanaF;qZqPrVAyDdN!e21qJt6(oV14=Ikqw7MUIQ`^G4KI_Nar1J z2~hi$1?Cf=xzz)fhIbJWgpmECw(iEpy|AdLCb%wCq=S2i2qAE3geY^=S|BJutlL1h-k{Fqo zo*?DiQbn@1#WJxCoDauf(q4k)M6+=9xw zYce;Te#x6xWJxA1@k9)Bi`IrJ_AwhV0jIIcdn(LMr+3U1EamJg3@%+18nt<=N)c?k zYsyMB#4)=oHCmPvCA?+G7BxRmK>JU19qsJRE*`WBMmR2FUkt>$x~POX1p-)8QAY6- zpN1``fSG18r(~=q6M9>4hirgfITj^DP^L$fn|Cmthq_kK_C_6VXpqq|G2y1et01l= z3cS9MR_Fua7%1DG2Fs%iZD};yt?O~f30-%+m60;=>`BfL{UVMf#B+e+?SCqBVW1TV z1%nJA3he+o7Yvlg2dg}Uv;6(fp?Pko=%XoeG#8v#xyJ~dW>xULkP@aq*la#h8Un#6 zKFkYS0OikB2oa&O1r({R&@;6LUNho_g@xaod*G>HF(4sB6&RRrjphu1%6&3=2b?>K zh0{O5N+2L3Yibko*}vnWc`{@|sMlfpo={uN9-E<^kmn8PMoC=|?+A}`SY(@De zrFgf#Q`Ii4t($Mtv?gv+UG4P^5NV+3AtYs;cYvo{Z(2BI$D9{?&h`RL`%1&uDfP8Y z2g9ZD;mvQ!s|pW4IPevppGXM6+NjT}>d95TR7>|PEir?j&nO{bHfHtq<`Dar-G&tF z4}-364btfU1~cAYd;jkk}DO9M&%Y4HvQt(2ov=cmV<-^q{~d z8UO`9m?#)87K0IgDBpiKRplyn1E^@WYU=r%Ie{v$YCg_R* z;WZ*9;{stVq^O&G6Bz@f)2#|6HJFG-Pz%U)Q}{sO6IBaf^}wefd`Id!P`IoKgvxj~ zRC6rpI>!UC3AC(ed$s7yu8=GlH?(WP-XPN(?uqL1{uWn0QQgSX?H0E1r6t0~KjdWraMd8?R@aW2w z>y6&9G}^;H5VY$w(tju*$$I^P;J{UTFwQ2*<>-5Cg|m3l-qC%!VTZT|lZBy_kuE;c z(Cl~_b${bwwpSPU+pT_0a}E_>tjUy2ryG$5s{>^Pgn69 z-TK`%1z6wus5u--a`-1$MN6nZRN_Auk6at9?JCjv`QX$ zTkcF)&&{uarz8uloH0k=2bLV%gPh>xmj*1t0Qjae5IM^dg~o>>i8yo;4pUM!xIjf$rEb=1$2)@{iIA>LERd$I! zN3FV}A*|7gM(24lebqN;l=}q*NdRtDHyCoR2Z}f>p6AUhe6;8+Wnb|CUh9XwxfHv}dOIlFrYE$9;t7 zdkV_&$^FW4x-Z6hP?bIxz*11mBBj_(=`zjChVO^B`isav>N_L;*zw2Y>M2O6ecOBh zKB;3+tyicA->39DUxMYM2!{cr6!dMmZ7k-5>@4X{x;RJ}LJ?LKx(MW#|4uE!tv5zJ zEW_WYnb`H?Nr?vZ3XCtmOqjMx+_Xw>S=@zRj%z2rS{CXt=iIgKO5rS5P}cB*3uuh{k9qMJ+L8R!|8=aY)(Nv)B~jE?$Xe)2fSY@RPPbt3MJ)hz#jlMsf-9@-Jq;C0Nj(%^9N?BeE2rN z6J;(#)FfIABGi12E3ZL55hC7ns0y+IXCEMy&f?+C2`}X8D1P2+7n)^$Fq2vE2=LL1 zEl(XEmkeeW3@AQia$q8+(9Efk$GNaQJ)dcInOI#(Q>Sf`Q&?emyqwc;eUaAgv*2m* z6uqD7bD7K4?##PSrf>*cxKd>H@3e*yJ1kd;DXkih$T}~k0D=ghDX6xEf_{4q=@#Do z?*tplK|kyo4#=JtTZ#nZb@uUFFO;&CD-~Rd9}$EO|pO7^lZhN6V9Y_GvejmB}<6ZvVvyy$FjrfdH2$ zJXxO)eWi3Utk9>=IG7yje)_#9gVKSYURV3Bdoz9!9W7Lk9hoBi)U#)y;-Fdf*_04p zbU&rb#Cp$q2J3f4tW8_IkQI+msFdb-*2-!jWlQ^E1yOp2wFmuDb%o+TWsQ*Fi<8a5 zC3@`Y6XcZl=Tx5=aH`u_t|-}53I5&uV_9mLw_}o;EGX;B*3I;%%ymz5?-30Nhs-zl zCO40|yeYJe_%T|3<_vaEXY}hj0m1OUSEv*bde-^-z2@%QDc$gDp6-k9^?x_3Dc7zq zJX3<2bxza$)*b_#`7wM|=!DVh#>xXiA!CHL*3ZrG9PAqHM^)YdGRJ<(v$Js-e9Rt% z${Ke7X%u>!<%;mkS?Hw2l=<@$x7KB=+L{(>L_ak;ff!8Cf>xF+xrRj;#rv>OYAO-u3FqD@BC{WNkLs zT3d{q?c2&z<`LX?ixtokL#-q|@3&9^k*%MR4LaxufQC*6-2NORxtbDDrmUJ;`ui^1 z7gTbqJ)x9dL;X1>-_tRL@xEYl=EL)-)cA5+{`%f}(!skdGbh*MM#AR}pArEgqM~54c1uT zrLCkXybrLekbDTBXx0GvngsM8*H~Hc(}AQZ2BJ{w4#6F86lD;VidukFWrVIfS>fR8 zERaM1%#Zp1mj|hTTfC#@HG?(c6@DR%Kk)B<~bx@SHVu$mfgp`67 z2&Ysb^g>9g;@$myb|BP5)$&2}G>_vWf!*m)9w?{325e8EUM*Jq^GTdVnLKq2L#_ms z_g;Ozz8m?@jzx7x!Q;Ub#Cbwq%C5)33T<&+B;qL(YFJxlO*@ioeyhj$StwXM@+RXE zjO>NTK6f2s%YXKq6@8MH@-|KLSCfOziz<=KuVc1(<(Q*)Lk0@Twu(XN8IlzVC~crP zq~ChImQ&^6dD!rHtWU=>GlNXkYl&>}KAudHIbtSyn_riTSg@q!bQ9U=BNBzyGbo8~ zsrGL!ls+fEm>oFPGyZ<Wa>Maoekvugr`u5ee&v+dIujNXw=7tb41o za-9PlV0PKTx`bvG4_V*tE=?C^tg6dy;IAd(TZVJDCsdx#^XxK6zS6C_1Wn`FY+lrT z4BKftVa~~U`o{LxOtznV5$YDn%S)LUhgbDVN)q<&_;S$WoN6A*fhx7+<6s`98KQT( zt$;~+aGX5TyZ*eyObYEXmb{VsO$&B>?rV(SBu*g6PlWK;{huWC%5mzA>vMAitVO~T z-g}Bi23UZ&kNQ#JJUPZh2~ee3MgcAH9-E=lEG&obTHE-4Z{Kg}!=2IE3uOkp{yLKD zezpK;lmojIpOb9DYjKh!!d)7+@M*i%SBuT`F_{1j^xe@F|Ed3DTIPId>2v0srw86^ zS9b`6rgh{xG+$IVgl4PY--fSW`SM@P&?EJpoOYa7}hoS?? zy(F@&EXO464(BRjiodwJ;p-=|RjPTR7+V>GSmD%(wZ8c>? zzN10XKTWT@kGfo@;;&tJcpiu1-HU)KJRVB0AkRPfr_B`MXlw5=M8!A~bbg`DqEWZJ zk|EEX{OvIAr;C!5$Fmzemy*Zq4yrGZbG!nCkqyA^p)UZ?l_eZ!CH4-P$F;dChF+X?p0cQ4tu9wXN}m1_&o+L(zWi)qw3tCof`qE$Sl%(7Y&#Ku)1 z@VRrTf-WFR<%M<;1uo=BzjynO{NbkEex2x`=a&*3aufgv;vec!5)`YIAM3U1aV1~f zD0g)zSXWz1`{aSuxmT-ygI{JG53;z)=j{JgCoYp&f8efwL9&8ViJwT=VLi1#G-uNM zyorjYIxX+WuaeTQ#3xEYFL%r*)PlADk8 z@u=IP73_X-Fy>^3#Cj~(D{0DACvm9w>&S1eEd@|nBdnwt2tM!-+Hh4 zuxQ&S!Md$wk%O;2#<$JBl?@mOynjtm{oRH7#{7=KfVqn0z`f>D{JQN$pBu{`*awcg z6L{Ua+FVI$ISN!fzIbD<9zM zd18$aYv(`PfV}^D|5rz5JaRuXI6CR0;73OtoDoakT zdB!@-ah56(;AD>EpLwRo5Y>)u zw+6l7^~VJb&+|{ax#PwJemG`-dDrX~KlO9Us*8R*N+=&r`+#uZ?+Gz-dNDIe5y_B8DdicbsfGv;vGU%yDxXyT~jed|WZ zo8}8zYsBGidEE$>$+#$hq$`~;z@&uG*sPYIzl6T)5j(>^MrIOwD>d_d>@O*U0#YtQ z*-%2m0doym-%~wLYx9Q-;QSUh0|x94ztrI^%4m+!{tyV-u zg7GRdQJ=<1A(|5jcrru0Q)^GstUn~fh5D_Gz1(x#eIF-C9KbGg5iTP@@SFFI`OPWj zn>CZ|_v`ifD8&rlUqegpesNI|!r`_HY|64!EU{f@gEfG;x;(5a8sAW8p`USnKqw?L2B6imgN7l_h zTb_9NET`rzhv}t>&u8jiJU=h<>Sup|6<07t?Ni#=1sna%QoqGmi5=d;`TMfL=6lB* zT&{sS=Z;FfzQ`QK6&1FBowWu_VfV!q>(T85k;BSU=2~lJ(rRvUCAXduyggpzw=1(^ z3@RlZk|7g*`)-}qgeC9Es=;lWALHYX8&`?-tkcsKDr{-S>t`MC+wFJ@oJPd#rmOZYK4OXWr)BY(3UfNT ze(}q$P@5qU*uEfkR%)3&-YJX=1E%NPTZxPMKSUk%7@X%s;gW)Gq)DnX!FTas@6?Wu z+*6j~y_!2M#`KV#Zesqjq@?Mm<)nii`vHTLrl@`8Au~p%8+7y(GE<(SPh_b(9Q_u$ zKvu#1YJ2tJ8h1&jic(PH`kmbnX<6B6z;R8_2_N$Uj;S%Yc7`2$thr+>ZhWc7ITG0wZ#`i9+c+e}B2%VU_`IRaST!WwxteadQ^GMlLrBm=8&fL8 zyX3Kcf$ez4T-Mjy%D3M#*?s(kspG6tu{DKX?Vc?YUxFjCAx&PYX^(@KyKvh~*yX%~ zcgF;{N*_%*E3s~Km7E7t8J;*Eoa$i2vQ@Tw33pOjs?KTvN4?PPwtdBBV>IW>?dX{Gjussh)RmmN1Etq#5d-%@nb9mN+VVu1~jtF%n zIB6y+T5LUD%+NVa#w?toVnsNyt^JEuOpM>%AJ{%TVu4YR2mEZt45W?b?gBn^#He!rs1`$S2Hwy05e7Fc-pU zc8>m<{Um9$bTfnIIxBKRk!QSN+j<@S75;aJeCM3+<2S1WVNnuh_RN)g5{o-jiEFn# zXzPe)=&Ut7&K+S`&`JFWn|UEa&U?0{x?inRN$~;Lt*pS|jB&@mFFn)45x*srcF?nB z_x|~e5xTg&lD?wvz4*eVu%`dZab8j0{!M6Vqx6$^RcYHfX5iD0ehqVKZto)tp$WD$ zxkSrV_innt)GrzBCg$aO_~CVWhf?Ick;hN1#75^@Yt;L{e%BSacfYxG!Y-Z*zr|C1 z>`BM7_y&To5a}vi?O@P!3)oR$b#dQ3c@?bhTTU~!t7kkkMZQh1mnw%Ecl38QwqqyM zty+9TX70||%n1qmJ_qAT{N~>W{V8EJ74B1w9-nw1WSC@=P!73-u zH`A=5pwJWb#!EQoiowS7kxZ!~Bc3H!5?E%LMnTCoQ)&dhc+(nGIu(9YRj#pb@^a&Y zQ&%5te&yheZttN}I^4Qg8R{O!B5?Yj|)EH*MrIY>2Fc>=rv4A z%RTO_-5fkzW2e+S5+aUiX#0DA^~W(QPjupVM|q27{ad#tJGkV3u8+F^(YIWWN6l#z z#32GtZ^nPHll7$vF)%!ROo-n(GV&S`!{9Y7I}qZ4Dh7>z8_o3ngErB6HSuVfi?)>@f)_rpJ%T*;fu-6)Hb#_b37;?71kQ+!Id1025NjorG z8}|0Ti|2PP&1_REI=dP>UL2DF-LK!A&Xblc=_OYfc7;5?a@Wl8LfWt&EtgLaENs|K zR(198V0fuL!__nyv#sHC#51!VXR%B&v#KX$=U?bWQ{GA_@%uF7JYv#Bn%1;#nw>*G zkM~1%sc!vj(Wfp=Rd4nr!n78t`>@}*+O@tm8sZU-G6xV6;C@^$e|bHSQmmbmWHY!| z=^+Zc(njSZy*&SdZ&Q=6@(F37rYqMXK4vC;pPGdg00;6h*?1J~-=ZNrC)bXdnu?Ue z_8AQl9I9PEhjsF_rshMzLvjfgm&kcbF!&{8jZH06>z8nTvl36ggJ|+q^ZgszwIyfX zxfl6}KC6^J-nX2&Z*ED#RT4m`S00Oe1#LTqC#cSj&ni8=GoJs3Usu&JvtnEi4?!)5 zb?S8+4xdpUe!-XjzFXAC^A>|Aq27)d{Lea>GEN_Yv>s1*$My(=)a#?eXW;L?`DKjc zzwE}VOw{u@af-S$&Vxf;=_D0{^A4?M^DS#fxv90epX*Oj(S13tzGHRch7}xXl1E2; z)m==+>BdUC3FVQiAgmF1N>^<@{NeqSqBZ^-e>!rPoC0U>0Jrqm;cdgklrOI{39XFY z+prZhNEieMN*o<66?B0M;Z(2fF5@$k+YR{N7u5Lt=l zOG<`-`!cuWroZ+{-SM-pbjE06#0opJY5{f`;97+aoBJihC z_&*4%{doQ*uKi#9w5#*`m>W|t?Dp#N?+@%EK56i+Q$MVD{^KR!Z3Usl!a)eRl|$j% z;g@K-5dGiux|Q5L9M)yp@a?fT|8IOH+~EJk3H^WWU-|JtQabSW&3)C_geDp9=M!E9 z?Bt)9fUdg(Jt_3(TKk{B|No!f?MRAy?j>|tpB;?ne{=j zK%X>Jx)sH#A@NJjaH`T~(m?z3fk(%+W|Q9wP)tmYiq59l`I)HD)qdG!-_*3EmnGkq z{{1&*IvZ(I%dO45IVTMko)rGkZhf+z+f*$vx~?*|*)(X!aAnc;}s8`-I7t zrRXAR`K36T|6I$}^;6E-f8R2|i?bx8(l$5jKd7!Ds%S_{hC{sv#CP8!SM22czkSqq z6WTSj*GLOqkt-?Es3B70Sc@p$FZk8|+Gu0V{N91*m5w8Ode6Im1rJyEh3*q{4~%@P zI=0{ruhZa;Na%}s(_H>kXWxz{TqkN>mi%pfp~tAy9nvQnc`D9^4wE}H%QG>bYv0$q zJYOm=&~TvsFj@QTToZFvQgUw8&Gf(z)1-74+oxMk#1#z7-iy~MIOTEW?)Z|JvysE( zZC&ceM(#v8Lc;0xQjd*0F1M2nodJELGbcrK4mn6&=7u7=4wF3;{HeGKhD_CO8nEi4A8>eiIUeJoyT%)p`zZJc` z%;G8i(7_3{4;>BN14~ouB_)bIonH0J`36poZbCBSqjII>iSL_RzPZh~mSw*?6McK2D}%3WhO&Oy=gFKDhWajL< zKHul}TjxB_TIY{*);VXbW35W*J-uG{ecji!uYK)(`^JV#b#zmBALrRmr!$O1e0Ucp zu;a&_Q?nzkidY?Ga?uR^VW)g6j)oP!IIBc|am`b!(fw9j9h-S{{4JfPGz0AM7P=jp zGoH1ddY@1*O}){+^0S}0fG1t_-7a2p-2>v}96enb$dCPk9;=6k(cxsg}r}~EP{B470m`^#+*fW_L z=;2l$s(6+mZQ#~1=x4sI+nzdJ$py>o2RVHcPKl zZOqc6L=)jwI{_ogq# zY@cMJLg(I-d!xGTS5NEBeR;z2l-^a&$^5UXIS(m@1m75^*~?ltVL-{yT1P3|a=bx& z{L@!O#reg5hCK{i&xQhqWs;ePRFB8H>rGozJ@U`piqZ9h=VC?Vl3pIGxL*Y8AzzYGbyBS13M_E}Dtw zu(G<@&i}S-)~eh1IbU~mpbSYw`mlWtl{`7nZ8JXZVkoR#15 zttdtl!c?2NokFSSOZL9dWM6o}OxJ9rU7mcYU+=|DvkHyS`)_MhK4s~i9PSSrXw=qf zRa5o~36A?Em1rRGWrWhN+_sK`E6A~#-s*yFF?Jyq?UHXN&%fuThMX&(fNLHZxY6bxH>4CNy=|1Qewg@@t;&M=;vQ=QM$-qJWQiBH z#6RRz@%E785_*1KKtP;#wJKQ=*WYZzXQC5Iv*AmMEdMvRi(^;g6X5@Juwss5%{i+H z=8@W`1^rQsQ)BM~EY-tSP)Hr)?uh-=pal&k||q@=*p^5g%;HcY(lA%7uQ&)!;dJ%*N=-c>G9+AIGJZ_cndsTm?eeJRI97%PLzg$L^l|# zA%#=e^*jT0SvwOw3r}yN=1JM|_a>4VWEsE7rb|$`tgzmExJKJ>w$)bgdu+?Mih{*) z>--k|BTskjKb0MARFHEmuje%7Qm(+qOeaBz|C!PWJ+ishLzsnuJq&Rkl9qcJN;L+#+J6} zW$}=_Hk*vB7j4qj^X>0$Ea>iT9Q^n+Vd%ljjHp;khAnZgO3M?$mE=cSpj2_$R>kjD zqu7Sj*H0pD$e$YjAKO;os%hK0yE*-8$)Q6>FJk$BU2@*8qhwxhsCLVDoMs>MUhn;u zxE;PfRR(gY7X5rdJdeSIsX&@C^QffixT5pZQmMik&IWkoOt~R4i#nfK)#1M8zt(yl)vXa_lpx1 z3%1|Yu_xj|j!%tpSYIWFcTvRac!|Z|ADzQW#MXXQ|51*$uVv7zyk2>D<6*^TYpOop z6~gM;e^7@536a%kp4OQd*}OFfCU~=-#Koz8dMv|iv~db=I0}}|?ZSy4scWEGTN6L+ zs4Iknikfh@`QL0`+NDWarAf_qsDbr`j@h&b)^O8Lo0VjZ7JEK)+#3|+_)%u(-QO3I z4ya z3cI;u7q8Q{$-=Yj^O-8wotz5U+CAo~Xz~iiw^%Y(nhzB2phRm7{bwVbR@30M$=|Z| zgrQ;?L>tV@}(i{s==FC=4y%Hu2#QAP%eyY zP1d+N!`C*;7x%A!RbMuKeL~7(u7`Y82$j_cnJd?B^#7&S zT`nLaP95bJmtP(DSLgqbhRuI$EtnksuldgPP#;7D{>lGxa=E<1&w?0N4%Zas;zd%_S~ESL>dtOu;KY7*WxCTGznOi+QKc5LC=JKn1x9tIZ z0DxUxxJ8L+Y-YyN4V@uEx&C`?{o?6jz_&)T*SYWQR0lt%CZ*rNHxag_`< z4yrh@-yYowZz%|Ak@0%9`abgraKXUnCKI$Urg{udWe_=%a&p+D<$(yj>{!^nu(`ue zFjthSoL}og)4>Mwi4foKOrE zjjLWhwy$D|Q7TUncxdhrXnEatQx#s0aTNT$j9F8*aBH-|)%w9h`3ZH51@AryQT+-p z(Ocf$c1GmRk;TzYK8vB<#N`BEeE}ANicq=mdzhEUsR}_0R_OUq_iuSe{C1UiE**lR z0rav4hz}eJ$=^haPM6U3A|dfa5;Yq zaLI{dtL)-*FPT%A9y1}{zF0w*VUY_L%sy!B34&piP+JbZdNt^N>4fW#QE}5d+q&<1 z{Zt|1CH=Ti=3`xjWb*U|#sVgu8ZBJM>^d2R1$8#S>W&_9hbKO|WPlNaCwM1r8UX-vVRy6Avi+At7Afb3wUSV^wZExV!1IumX)lz(aqmziPoWB(s%)E5| z?MJLntSvNN57>+s4Ta|?#HAv8GL$Y(+ZArXbJW|WJWk@Y)Lt$T9r^p`Qm@UM>imBg ze18M_w&-NurSsN8lK$YV!!s-qGF?N=`Jk&o#xq-Ob3-w!>^jm`i4E}qK7|z+Nq+J) zl^BxyVT3jS49ZNXq!4~F6rG4Yvd6dk0mK2B#lU_U^cF+`8&$=^os|F+U6wJ9_b$IS9G`{hhboDS~ossqO z<%{#5cMw$$_^44akQ@giK?;lv$>0@nHxCwh6A1km%nf|Q@btePn&wz?M2hDI2S_q+5TPwmtbUQVzqAd# z#t-8Ht0)omM4}Q1hAF0tyFe5%@Sf?1k0A3%cB5ghrNSH=#D2b#@4-kbXJVkOtge0t z`|{w=-f}-Y|JMt!&Th7zI@r;|6j*c(lLmY=)9+AM@yvy(d#$O&ic|xSXh;4J# zCS8L<+_V`H2$^`nJPi+LQ$b;OX{- z`!Cm~EQX*fmEkovpU^b^j`_ku>4RqrgX&%$<`Ud}C_{44f0*^^nEseI@`H5{nE&? zuyV4nFh57cH>Nr+?owA*$I`>da1OMT$U)`S=CBI$3a}-+K}bP=Rs&py3Dt+JH}DoP z0F(%QG2)g@93qL{!~d!O#isf{T|qGVBeQix|E*qK@>8azCbT`3t*v)b!DO<{9hSh5 z3^{zLID7vdjJM(=LpnzXKniWOx5Z(_5P&8ltWT(4)i3VyxXDtLHW)NE0b{qdQ zyf7Z_BLLM&$PO}8U0z1>`d6JQ84`TmbA2Zri7rGI52J+-A+1K{%&SClLw=JGg^99L z*kc$KF(WqT7~Ds6*#l`h@IbCL{^-ZfA?|V@tQhXEsykLc~DtOCw`!lc=VYEvR_T3mwFB)`a8bL$Z95X`G zUh+gICVz3(nwEj}-P~wFI9?P##Ee@Q!Uxe`AX0HED&4uayvJ6qTACKQG_VxcfIhwT zxuova<&^job>q?AT@g;hTbm3t&b#%0I-_iDpUUUds^ zCr!mwyqk=?)xWG9sGIxpbPH=qXWP}S4t-nR)a3tz!=U4;sl{c7fXQHLPLxfhpHviW#{4W-V-8Pv&Fn7P8#RIDjbYDnsTLx!^ODVsz4RV$&Bb8 z!YO@|*clUr2rqdaGNgxCy$(X1!U)C?@%)M4NyJncio5Vqf=Le_UW4xF$b1!R zA3L@m>zuw399{|(%}53UiP6Ihk`g9b4t~QL=XG&$fnU8pG@Bw55;U=( zLqkLTf+6aZ1Q}I5qD=@}*WqCVU6&tUGOX&i5lH|saq$h%Wm5)qX)`7j%XG(Hta}Ha#rZ2u7&a$#l5QLO{vJ#>TIzqT(Hq zWN?=?x3DllnGRJX6dZKTko!WWVTOzWsiUdY`SW}tBI|<7dwD^@R>cXsIiWV7A4+n1 z*w;q_%X?v8i@f?!vveg6K~p@R9~^SS1mxxKLXeKk0fTue1$FSC(9r%!O?fE7twEH; zfHpm3zWLfPSlkQ^O5HOqo1j|PN36n?%wDx-;7M9At;hjcPYak=8h8#q+_-u33!IJ` zhqkOIUh7<3>VZ~w@WH~8Gcq=)ZdrftEtWjVJ}^~m!Um?ew6wGy3JM}Ixtn3J16$I7 zs8t&+{$yF4A5fS;lp2G+EU~F4^}wsv(5;AaQ2d)Xh)SmP$D|{agA}ouHE_|&6aO;B z>i*|EwsJo2E~|#&n&Qpk+o&c`_9=7q}@$A`@@#}HJ%!> z^<&GC!0O(zm?rvQ8M&3J#jjR5q--?<6|lHYTPqZ_k}$ETTfKvIF=ns}57-Ln+TZN# z>=?h~i$g}uV}XnFAzmgLf?DJm52{0ZIh{US4Kv_ZJ za}_>Z22rRCBk3T?zc49-R4}Bxw>v_K`#y?>5O(qF{N#MbD(I!^+jf&U-s6}fbqD7e z>}J1pyp6;iz|Ad%<-sI>M zvk1z{Dmbc>!(iCr?AaHvK!+|3ba@Bn@FyRt#+cub`>Y`{c*p=^#H^Th>ZbM~V3zNN zcsMzs7r8M$nbGE0B@7`$`@FV6p@xyR@`$7anY*El!uQ6WpU}hg&Y$jC6IPB$IbCJ6s0bMoOwH<{eE0(l z2)^$VfRyM5Hp{p|jBn0#`7%yJ&tcqCK8EzH&KE^grAxG7HD$+FP$8qcegsKS5?&NZdOWoANS&yJ8CBo%UK424 z5>YwKXpLh;+zF*01#)eLKOqU3j^#z{x{*EkZk3VYs6rt`KGHdBYcrgCr1%Z{HQX8v zdux)1V0Dr-g>HPti^#aF>_)J?zhYg9bUBLpW?Y2OOjHsA@`EnAorvCks1v6`j|2l?)??b~5f_M|*_AOQ^ zCXj_m!Ce}-dvTpAMy|_Eap>xiN)1Qa%)+RTChjsXa2&N*iBME)YY1o*VP-NQ;EelD zz>3Wjy~`HwE-xb)BrMPOInEBIm_b8wD@t=!>|i{WNDi$>^~~VA9!VY`jT&fg7X$qu z3T&hVBog?DvOo-&91(g*7G2q0d*`qT{>vVfe2j6 z*aD__w;u2^AioH<1jxkP(h~NFG{Nn*mRMDKMC}iyZ~8Q-svua9bEjagee^Xx`0Ls4 zPcumL!c#L=LHaTW-^>i#`Bb6u3hYP3GC@s6B)PO69C1MMjN_c#{-$he78K{s<_Le} z;UwD*FE18vG$;my1ZQznv#1O`etl9Rzi^OY(#cm_x}aoZD~13;dQk@A9TpQQyo4Vhsvq8@?V?o_(*GDf*y>k)8EddKaH*Gk$$ zNPwwEOg#*@kuw;_OuFmvX_10?M+y?fVlj0htc*-D(1ev!9Z6fGfzw(t1|9F#@#p$u z;oErOyA?g_o{s;BjJe`|>HOIqvs^XGur@Z+Kgl5?=qf*5oI5zzkAVU}?m z7ot$VFXEE-Vnw2XOFlfa;EmFbqygRb>r=6zFqfiMZ;nzY?&3&J8>H1ZRp9$Tbm$Ql zC*~H&3_XxXt2N3{(1LORLk&1wwJ$_Ek-PVZZplEC&etYA@x_Wc;C{Z@R6nNJ*U^{_5_9(J4=15 zXp|J$HgVNSMZuDjcQN_w7eg=RgFLy>x9_$~G3j0qQ_|MeRob$C3odVl zhUb%otB31>$hgAyK%ODdO67c-oV@My>C-q=Q%E)hX*=wyKT%-RbUpJrL*goVYaG>9%v}95`*F8O%yZd3(m}j&*W*@`4;lXG(RKnUDPtM^IXKJThjB(BMa9eNr~`_^e*bEw;a;zBD%%sU?ewY81>i)iSYPn!_;Y-@# z$e02zAJ^(x8bI_nM!)_#WYVPecRiQf4y@R~Cc&H{xVql<;66OLl$;g_`2RkTv;Y`l zgZSV7*Zf*yVn!9=$LXYt?vpTdp83nS@b>U^aFivK1h3L6VLHIr5>Uv?)pc6@FDt(3== zqf_+=W>}Kif38H|MJsD-pWj&Xyf}M}xRiXNcYinVz@H8>fZ5e;nm{)pw7qU&tJ=?0L|wn-0-x%7O7PXd ztA`)%*SgME{^a?lZXwg>o9^?uXDMnuI&s|K*nv|kOIK=bso1t9mTuXLW%Q?bV^-X( zY@3Lm`*5kQ&G^by{%N01;N}EOg9FE33Qf-Kp$g3wsGO6`16n&oF0T|IqU{a^ccPkZ@1y74$Ozb8z; z)k)~>TXz;}Y?`%-&41bufOL=?z)|Cn4bUo*-w|a@sCr^iItsBG?#?r0*yXq^kJf!H zP1=>f3X9T1-Y?d1%PIp*A_>Oi<42F))uo=1VJNou_x?ee6I?xZ^;B=^7#~Z;zu)jVp2~2FQH6{v^rav?wF>zR?04AY zJjIC66&g(QQ$9IuP8F~)Ff@E(xR1IPX+77)06M`2)-Q5@!8>fsb9FjbV ztqpX3#)%J;eU1S_+pz?sz({pMTi}IN13XA*$Bv?5S9JDRDM;5-Aa@ICxN)S;#8Uzq zi{ILEM9G02$}V1{ef)R{9zt+H`qirwF%jK{bPaS=FVbDW2PfAJm|Kr&>>f9oHM&Dv zCHDEP8vR~Y-T12Hg~fo@U7s22-#j}?>K4AQSo}3-bmQZ8&IE;}DHZ{7mz!|xPWiDn z{X?7={~4JwClT;bsW^GQ6U!wEX0i!Hi!EcI=HD1>z=_`)cdy@&V{qG`jHL9iuKABb z6cH*4sq7!)2(JX?;RJgKdZbOPD$1LzRxVZd}6(qYp$ z)kz9Q)Qtke!pgw-tR|T$o~Z_(&mp&+RJRGm0gRbw8KB4@&LGo3!-$GSHZYKniHFyG z2MX7mZbCyvZmOdXEsEO`HtfXzK_ev+SBS{A5@#1usS)>}Hr#ZQN23KmEO&6gQt`hW zy521#+3Bdy(nb0Cv4dpN?flMNy9D|9eF1og917m1k*v@XzF9r4L9kbOPnx{UZTa@t zy(ZrU<78dfRZnCG$k^J{*6I3Blzrg6mHX7aDN^j$3|b=Hw&-!FmPWa!7UFKuHfk4<{0wzsuh7qYsOg1nVhEckZ34jDJCb%9XA&;`W+Ui6fM_6*a3NZM-bsp+ z9Pyhr9fmgp*t-pAN+x_t(c~evBo@$$Blbtw22lK|A)O*PHw*%bpb`)RO{kHAC2udJ zgalo{@ozw4nUZP==Q1iQYlx+t=6G5emQcr$lMheBU4R9otr{Q6dJ z!m|hFjRvV6KRh@?P2sxE)RYqfWv7p@WI@D}2Q)7Og?2J-W&Zie35azOQRD)2`G|HL z&aPxwJV5mH<%Q-V)V8>T4_>0zNHkW?7l%fFXV}f8?1Jqnfo~QhTF?yf>nd-L&>M@ zn>R%4yi#fL4AmcTs3S5n#r=*MAUi-Lya=`}kE~Ju;IjnaV*FXcf8qqJV2EHY;BL}p z0;Hp@59PB-53E8`&7niJ7xyFyh*ksi5Q9jejjIRon_hz00BwD=6A~C8BshXvL3Hl$ zPf|Q0(ZSeNUIcoDVM5)#12hzf>rLZy>~Y?=N1Zw0>ec0FzLevZS3SIODQjbJxlZw7 zh@!TRX@;7&w=lo0RaK(T{B*?T+8J-Y;zDSVGA+{4Ptq&ea^-p82}sfUq(Z_8>+Ju{8N_!R15u}6@c1p1~4sY z9J#=^F%u3vaT6ui0GTjB{?O$`QZ)iFp@+Z(F-x=}i3J!h z@3PqHBMAO_z>dH$NWoqr&SP*=(r(3X?vNND+YJB4$I{Bd<5l(gV%@a+@BvD@jCfg{ z>?f525wX|b?{FPeC`@FWa?HS`H^U%xvOH47lDhi`S0TUlrWl5=3eRO?SUkL_8`~`E zA|Y?o;VenLyT)kC?kCGqe)IISmf!7Ht5l(+<~M%)8a`!8OWXDQare8SnZDF%&S2q^ z19O7qy+gOIhs*rf9$Tg+AXRgCN^+@eMk;%0{SUib#_-&m?`StTd!1!65x!$Q{sv4+B3BhI|z@|HtNgwYN5Li)F z=)20QGhfby&Hun9qVb6a(FfQPq@yq;U>Igue!?+g99h6#G`T3K(tBPNEC^?_`NQ#7 zUF2G?;QQCVUpA(PM8AKY;Ma)1| zsFiSS4a;7yX?s+W$c<gqWp-;uG?Sd4s8#lWC`M!_pwi*Yn zL~Ld0uhz~*Dp~~}Gt86-f#Lgmz=QB;B@8wAG+`!6K^Vu8k9}^t0YxG_x<%uX&+X@o zvSAO0dl`Ga#~-=$->&?)^cg+1*|Aktk~6%fX~Wko%6SsXxHl{23Uc?%6%=TUOXjLv zTsTG9n)^F*q5Cn^T*Qh_ixu`few5^1Zg}Cq6{$4a@|>2X`KKFwGGj;V7S~pdYc@uX z*Dd!H@!Y^bqk7nu8;{j-`MFVA^<@2{rR*$LQ3lmQf14rC9*@+!lPe-@^tBV-=Ph@Y zTaz(F3|Gv4Uh%wlkT)~w|XQTTS*=`Konb{+j|eK6zD8;Gon-3 z7qEhswl3Y|V9homp&-Dgw{iG>pGZ+y2*S33?3$vxyVL;jdxQ{6%{E9d`Z$*QIZ8OJ zEza3Uq#t3D3d@}a1g|UL-og6{em)i9ym=O)o+4fmaSxx85Q8;R%+38CepAxdwkA1n z%HOYMcl!R$gkpL9D4pv0>zc~FNA#W?)#x!>x#a?FoSX$@snGMhN?ImK?PU9L&_k~0)JI-u(qCAAK-rX2K1Fk5hFeSUit?Pm zKX1-~k}$tZf+?cqrWucqidt=r-qpl-y&YlPf=O1gIaTtd*x_CtPoK~S(kYQZ{D*ZV zvgS&}hFd(9S30cXn2YaC@{C$E8ZDNU$&{H`H7uQGpDfs{sum6@l0MqsvXgw9^#gs^ z`NUslTYov+gw@~?Lf7=jjE8$$)QZw05kCWR)0>J9TJ3R_nzMZCKQNecDC_(I-`~%t zS!fl$sW}K)9@SuC-4qm95mhv{$T)xR#S11}h=}0IZu>4q5H5pDzm7Xf#Een~KIUD+ zGdfIuDCj!JS}Z;8DShUcpRm}9i^{uQJa%a6obX&7u#=s^H@Nc0xc!^-6-pO2;vNwYb!-&KZY`!pz;4KE5?<~%4W}-b) z8`Gn``~jb|rT>9r7sM>hoK~1Pt#A;+gVyPaP41zgp$oa*=e2bmmvT>w|>hmT+ zt}|i3w9c7&K-NVhIe0GxYV0u_LBLGc)IGA;wuC+8FF0xDq^0&{ibYuih09U7jWu zs9IVZvXKYwg{&bou{AE$z52S_Y=rj7Q|m`I9l5Q|dHgIn)9>3)$o~Go?iilXqj>yc z-iO<{SAIR0HdsBV?{phLz~|564VH5wy}$A%#W(x>;)-?a>lt^?(R(6ic=kj4{@E{_ z-w6PVYJjwHaE}J_Xd75eQ_Ahi3HZRalh*6}?C(?jxNVjGU6pOhlG>ZpC zKYOL0=iv{?61=Y^6&)Mi$epyb>-6r6-}if8K)bNttzeF;V5Zs*C)5F4gsB*M|KE2egMga5U!{IPYf?jo;aCisE)Q6 z!5Hoba3`V!&_i?k1L^UA4wX*u29y|tu)D~Gllkh(HE4q|g4stflLkvvurQ}wTQ4SU zlvA$Z*f?!5G%J!|)N!N8*Da+x#M#)xve~x7@I|n%()Dv2IgTtD3bQU5wbQ$<7@JLu zA8NZ8H;}-3xpvjl-{YTJeDi*OFs2N)zK9XGW0slv8qr3%-r4y%iepZ|NyO08nqyVi zMy-?H{=zchbx#h9MV3!(dw5t(-e+-im-6}V0-`CmG#f39W29$}ym1XlxmQuGli4`_ zIhn$FK!Wy6Lec9Cyl#`wj>lai^i|V`UnP4@H%}cuago(QRfe0jeN(KJu}UYk`k6;; zQ;uYK-&w8s#njZcCPB7@De9=nTt{z~YEb|4t+`TK-@Y=Mz1ib=PRTacjd$ew4odGf zA2ntBf5z7q$H)wybseed-Bs&dSS3o^d!4@2kuth*YQbu2J$KICmqHoS_12@q#)E>L z5l%xJsYV?WB2+iS*YU^+R->#CzsO}|^S)?o%|F z;41odpKE4vSF3|ODf}#e3IQ%;K_o&I7aG*?6xlgw*|$(vy#P~`@KFImJVq5}gY*!r zVB|RTq=_m|Y{tQZ>O-M$7L6T{fW{$_55y+}ILU3O_Ie?6fmdp`0dblJ?Uam`gZV<+5PYD1$xQDn60#ZctvjB`7$*9D14B_B6oBMN7A zeYj!m6Y*8<-IKz4`?9S|l#DoW(^e!jZXUU(j`<%%2ICKY{Yft8KfLhZXZ3X2(Yq~e zTfx0JrwH9+WdRA7G^@U9ku`Fa%XQn*uz$~udm0;)D6|W4@k?eEVZS2&vQNf!fDd2APDSld)c&g0Hj9-n~Po1f>%_g^aaOg9a0tLGUmcae*A5He`YWW!$q z+HJL4pVR1z;-ULqg+I_e&3smqt77Oejl+uOjCrdv_TOBTt{FkwE5Pxb&*fo50-behrVVY?HN9YSp>B|y`C6xT7St7hjOwQm))cneh2cfoC zAsc)%VBTdQ2@{!h;v9^Q;0^>jLQuM(tzWj+eE&`i!kqD)eQ2+`bke}d#ccLWYh1OA z<2akd_Nb?=^?j6Lsq3 z5U-fPjV~&n%*{7LnngUi_@U&_R{i1*}cotZv6wMXObK6RTQ5NVk?g$wga?E#~m+#DjsZw3$PZ3k{RM9yB_cC76>{s@|AgQYRpPv*a}$ z#Ua)HPKgpz<8IF2>a&gmHp3phzVSGs$SL)OK5>)O{mUG$uYLs~u_oa>dX}J?Ej%PTDC| zlX0cF^b74SA&ygQ+}y44VUI&!+Z|_N>gCs4u%OLuR`cbhIUUimmzs$d?G_lH{@wl& zT#t2;7ZbJtaE)G&KpvjTJWHA{=-|^NNZ7Ohe%hQ;AJjTrMn(W|!@GdRggk^z7#h5b z%qYl{PCPwH@GBkN{rmp`7z5Nyh?*~CNxm@&jpy9gWvWqLl`XD%VSl}!a!uoN$(P;D(Go9gRVAoJJ*)lOn(idLVLoh2 zc^+vtreecZoLlAA`*{4O(Xp_tIWf!$>z;Es$`*u7z%*19p^;oapo+~iG5TohgNp1t zSa;2~{f$;DPC-^Mg>gJv0B|9QYSd0$ruFOJ74$mhfHGMk2zs6>%q6Hu&Ct6aC#D~h zFwTDP;>FDtl$yj@PaZy<4Jo*?=&3p!VE7&tqyK*As8_MV-TWB&MzLbY0UqkH6T^iA zUw`QDMN*RAaTjlRYOG>GZY;>@nnRa8ucmBUY^IQ#?w)~AVLkt~wyOBp=Ud&<|4CzE zpm`An-eI%s^%lM&-$zw!gYO)Hj@JzLrgOgEv8{zI1dForgAng?o#oVnr?zI<^%pS> ztnPi+t$5e{wWNZ;UfICRJ?b>7F4+NZ65|UQax%n6g*!w0zi{aHhB({HgG&mJzC<)^ zh;OZ#{gHj?oRuQ?o#vz{0WYoxxzd`6u1#c@N;l_{Q<*5C)k9+>$>u0!-~n_k0a^jS z{*$p*L{;=z+9FAV|G{O{yT|ko99V|DEd^H!t#y!N(-Eg?NAH&0ZH`HzIW1D1?T1Y03zFgf-%IEqv>1HrQJZ6Uns zJdX*&ZzGdQ10V$9mEMUlP`dA5kzG8t>+amZk>n5aH%q4JY=?*xCETd1p(sSP@{zCjGYk^I}^@WN$prG zc9426-M#B9SKu?xPaEdRq5A46le_x`xASY((3`)Dw=)}D3f@ePF$%)dUJFH@vmew4 z(tL~pw&FlqqhnW8zMJ7fawQ|1n(p|qNdqZV)V!E@MP07qY zxCT){y%1Shzxz>bePrsuRJc#cJ1x9`>xt!z;lp8g!lE@kTowHF@|NA#<@84KvgIU= z8gEXJK^{`4KvVJ$VMCX%curx=7se#s-@*Odj%Md>1~5)?)~9I1qddQg9YmVHh}VB{ zrwL+9ixwO}syH$vGy^!$9bKiI+bDUqZ+ETVE)lY(8zIpRRFi6fZ97)fi%GHQob^^Y z;IL9Of%RR+{9g7_f78sExU~7Jj_6ZJ@pDc0vD~V+{`P|sD|uB)m-WPF@k27ckE?Wg zw~iiSbB$F|J5HBuWuJk?>NISVwr8>6jZ^vaVQC|jH``DllF$iTns8wxb(jC)Km>R3 zkQL{w+Qr|(rk2isc>*@wm4wWS#v6JCsBkU-OI_@8%_Z3_TEcXT#!5Bs#nj0>l_sog znbF#6MqVp&9Ic0?8p5Xs1)l{OQ62es7NTo=IQ*UNWBwK86wCWf%t8A};&#YXKkTA=;dF3Rph%HsJOGh}e~-vjg~gYvHgq3|O9M=Wsi=_p z!M>w}tNjPsL48;`6lie7f9=tJZSuB8H9G(UWQ&Od$h z?Cj#4j1VQYOM4b+87b;*8D5gQ78{w3cFn$hiy=Y-Ssw+^H^zNaP+^G>n`9klDS==x)6G*QbJY(N`(aw z*>^^2C3c|H7Ps0JR3qWdIi|Dim&vb>VFqfAQx|Ib#@`Os?ctum7{b<1IZl?Cd?Kie zJgC|5i})iORYhc@@RvK=7EP7DpE!2x9pQZf9RX6CWz$L}6T0ZNm=Mb^k`_>*xc(7O zg_b-wA@L!`k~RW*Kv$~z`7nm`hKzcEjYWDnUT@!;v#9F&1XxsD{?g`PebGx|w8COG zZY@b@=MT#SInp{UJren~ba)MX8lX8_#W6D*Yd|8_&$fg)=Jm$CoiV%nnLUl_Z|Tpz zDk6}I`2h9jK!B&osaMj$Xr9|s3PP@2igeIDuBAWw^1|8b){>gH9s-iVJyUKj{bll% z^T+cF9C!VYu`KXdOXY%b$D6y=w-?VT47ooif@3Z{FEQ3jX))mbYc|8H2_* z=yAUh3=K9J$d@JmW~=W=`*yb@Pe(%#^2%+~)0HDV`6-w<4IkG3H+X(59U)qqpDGOMny_ z$XpwKzq5Pe_#^arMwWGd;>!kVM$*fW{tGw|GvM0y5l#2MJj8**u!fzmx+WVGjfH)# zLxI@Ij50V@NG!}AqDWBF} z&A1hnPSpS*2M_0G-FVhBaqb^jH{N8kje5QQM8oGyRX&y-yLK@WKKFm_?0}^$ z`te|reuOVL5@r8dFw{_slLCd+zYr5dGuSZFEXh`N`Ij!jH)b4^@uXC6c+9|t7X;;# zN45C&?y!XIy+~X$KHZNC<*(4l$-Vvtm7LH{1z*i0XZOh4oG!!KD}4M@6z|(HF+HxO z$H0VB%AkUoaq6q0$6G@Q+qS@m*m$s+vEO6y^;X>jCq9%HrOxL$0xU*2^sQJq%2w@K zTfEzNBFvz}C?|T>FJPs^ed1%IrY5j``(FvNnVH=vy3nX5F2}WZj4&G#(BkQA`=KRGbjH<)8)>)u`8>Th&LIPtlL1oRi6O|# zk?F5Uc-mTO5>s$))wNPv!!xgur=CerG;vr-PNurZC}cO8uDu%w6($v_*li@>gnR<; zM}rH&3N7W`LrfChk;PxRlyY9`^HIwjHoV^XWIJ$2dsq4;gR!;IMPPss@3?<&sHxIo zG#ZN%z+MRZ3J~4Tug1tgqg3hm@qcaBEp3K^jX#oJR zEd3)p_I3W!^g=B8nmy(E5eZOs@DU`z3Ih2iQfUjr(Xz9@1}HPrGL&j2j@|d%n6f8x zlG%!BQyi!K`fugdj?Ls2@M3HE&OIbc@{+fB!jTMRc?+`a@Bi}zeBcT4j|9}jA}=fGR?#TE4eg(`j;+sBWu_Fok&X&&b^PY> zVx9g@Kl9uFy&I=N+PdE>iVo>}~<`R*>@}HzvWEEHnu>XR9O!%#HJ`!5Ad^$X-VvA7U^OtL}H~u}6#7U_z`mp*gsV+BvLJm&PcwRgYJ~r%<9Uu@gE=wsX6?JRNw-CtvufAU}@{KCj12IwWa>*~yGTts( zN>?0vc@4O!xUX-|83(1uKe)0@S-N*QCM#0fOguDCZfqSax?IfL6OzX(%TLwOV z!Gut{8NLQK<-}{@4_hd<@T?o$&ck*-2YC3yJbPmzy5&6OuVR&vaUTRtCW#g~5R#npfQ zS*9tWIS4I9PEgNYH^6Ump~wueNjxj zbSpey6d?`dru>wRcaF|N^ztr3$iS5sq5?C_r$0d;SE@SRPn=#mJ#JEy-8uaPm%sll z34!=udn_Gf)4X-FbHva^~;p)lkTlzh@ucob&&C_VnC6$hp6#|I(4&`Fr-? zR;hiV<}3uFx9U^xPoMZ?)9aX@()b&=)Ik20KmPhPV|AY-eN|OoZ?0BrHe$#jjaEWH zB~DoewC<_oz7H7`D$M!tds>u9jsjc%8}~~P|I0u4D9g*r^7E@zmn=8x{G{5zjqguy zJek}wH@e6NfgJY?&#M}}lTtFLBz-vtdGRQ+l_f{u<)=&3f@Ie?WU2)+%yh zCaUvBr(yBGp>OFn4|NwDg}JUQj_@9GE%+_AJ3FTxUTf_ZhCs~u6BT?DB*TUjD9@cf zOu@Gn*Zl%=Q7^kdGjaBs+Ps~mhI8a+S(|&IttM(NW%?VJIIL`P#qE0p4S(@bH=}RRdJwI`5fVL3dF@-0t!jE7Um82n>8Rcv1p97`#Fj z7%3igA>A?^-9yQ%_jzm!3zy(R!cu z&TdtLyG^&CDN(4+%yj+|7LFs>v=P@6jr{k)ay2&0Vr;r|zf5T45dH%Hu@xQ$#TrQs z=kHzX%x9EIFq@M{O}~{H=9y;Y`t|pRijyH%Vnf<_APNc!@F9Hkkhdw7E3gOfKKh-@ zrkl_d8|LFX$s%;ArrkUTNY1Fr{omi0|1Ems{ves*~T)M@Lb zd(E1M>7qbIXgN%#%q?)}IL9ueI51Xd6|{rWZ2FJ8{l=g|=Vr3BBAc9p_5>l9rI*#mdg! zVnsMH&&2pzSh*pyv!69?c}dJq@lj%H66Qn8xj5SfO<{a=QLQGTcxUfwFRjRgMDaGJ zm`Qv+O+|b98HevbSm`BvG7WrYX!4PTUq@^PGmki`4^xyEyLlyYmY3VUum0KSa{PrhjI+M{);Xm$9*Ln_dim@v* z+jybW`94mH814@_Qj*<)KpyKa6dzM)M9K5Fn((v4&nG?6=V#G%(xtmyJsHaWp1YRt%r|_QKi)UV$tzYDoOy~G%6T6g zj?AxC(o$wdWoCNFsu`<)-dz<-S7}kXe;tlBQuRBz-z37QKbo7Hi%szjrp38f>=qn7 z^SB-xoP#(BUadC{2%=KNV?F&~Pw`VDMSDUk1G9KDi`Mk`8Q%*uj6)@~4D)*z=4s9e zTK{@6;c>jOe)9BAF08iN;KFA)lj6AOxGOo{k`=FSEw#=VFE2Cfv`r1=XAfqnwDf$O zk=owyE?N_!#COHmdhe_rikZ>{)uw2M(LL1Io2+|HEfYGxbW~S$g_QB<_+ zOcc--eh|-HI`Zg_@8UPNV>d;F=u7xE4pRix_chKr4ti_xV)6=iooNweW6$rx!!q-! zt0RPmR(5XIN5gvh0`_u`Q^#vaxo&GB=_>a#51iTDDQ+YtiW3i!Yl|s0H-lh2NyTn; zRYsAkdZLDxE}7Hl@=Blm2Xcd1Y#@UZ^YiERD!uYLJJ?F)C7n{Ms%0zd%w0_F^_9u2 zwLm0lMXJ@#+9}I4lm7R%@aa;W|+K2(?oVh6GC<#;Cd|)G{ zKRSkKt!&MShHNVcU1yO(aNmovEX7Xemo6#AE3gSZdStzq@^9etyQVbl zm8lVH&+~E%pflf%7Ji%L|LJA)Rq1 z#s{KBD{teSs_1L<=JXPDYn^`ma;fRYUB1t`T#_rhTx{>RlVX5SSJg)13||-3jz2Ip z&2}5r(uU^58W?0LPrx#Mg>|Ysm+C5$h_oWfZeaAJ;oGB$Yx!x#+N6_~_a!=oUVFzh zJ4ct>cREopz1=vAgJUvr(yUV$b7BrJY{riK{oT6lOYG_#iQN2)mJXV+U%6ibY zHx{%0Fe`_(oID&=R~U_y>=Ae8hO?ZS3shrpac0d=huS+dAz|EWl{BfLW0hW%AW=W% zyXY`)5no&Ax3EwV=z^#w5qX-Aj>N@UYScXx}y&`ZhB9TPkAKh14ze;=%?J_s7oFEZ3# zPTYau==B@@=bHK>(@`5>J)?Ej@)6wviJeZ5jj(-vW%ENZK5@-f0k94!+!r2b_i=VH90X_ZY`6u6-3qEyNxvGWM@|v#6m}F&`-Vhde#Slp zUa0JF<|7$QMN1iRC#S#Yo{VzRDAPqwUSV)2$Bbol+Zq8TcM`PB8-PmoK~ zrzB=M8joe)a}s6LskO+K7}iVmbk4p{N4eCP97r6EUHjTOxch{s(yUs@o}=gMJ@!YI zv#+9~G;`C^w1;?8SOLgFV$-wG9Ydri8|hC{G_iw%iwjzs_)?n5qNw?EvV90cgRC^E z{_^$FrO~pgr{Jcn?J^cwIM%B7crS%w^4<5;3Y)QvHNUM$r{S^sZbwIIUp#&b7%Q{i6M!)*e?cJbfx*IL7Pyxha1> z>iUFFJ3-W|>{Ykqp04d!wXE}ReI&5>A2=5FoW<~(RrQVH3?c@Hzz!BNTbvvP(hK_; z?Z;iZw&mJc{<+K==XSglf$3e^U*!2!OUSpAUtI^+sZITgA7Nx|uknCkf2lxcO zhlc&A1deI7>%#wPOT~s#z$UJqM5DMw?a5R7<5TxP%&!Ln^wMgwT-JFjwg*=)Ug8`~ zv5aqw_9x%jnXzj4zNpo#2V-Szu35nk4?1=L#yxUMOhTJ6q(uYnJm6hJrtyr^4?|AM0TTE z4>F<>BeT-e;YwKF90s8W`bs%(Qrb$5jxG;GiHy{t{6j-Z zI0tWKfEfT*h#3OojA4NQ+w2d_DS%Llg6=IR^=6a^zCBvE+rti4NBNDa7|6E0l2=nK zln=U#t)Zu-2>daV#1h}hmX*zxmz~Z1F+a~%#YxR4N8~^aehq*KsQz5vx3s0U)~;IHymh36=-T78YsnL_2{3H8-V@QT%8l%@Kw4~;6|Ej0~sQ?#AjwwK$4 zgsM!7<7n|8Ri#an!(%l$1+xggI$&~-x!>+d57ct?PR{)K_*PI_NL!brd)F|XsR>Jd zNnci5zIp`m-cftYtJ)(jNO$?gSMI=7MhW{UL`>-wz1~e&t;8Gn9w4VQEteb_c_p%c zob_ICa`h`AxCK))at_qj*_uu%Du!(y_*Bmo9hTYK2LL4VLwd-1Y*3MNxUQ5C_v_&|MUz>|Of>PcBGe;zWrKcS!i^h@MH~R!|UER_&x_bd-k6sHB^MlE>YkpkHPH ztl&ov`hTQ-01oRElnk`IopF8{N|(Q1`I?pOF;r7CYyVshzrbkzR!OOV3s}Vmm=r4M z6UwI(EN9v>G!e>KS<%VQQzxASAK^V@1Hp37Q`^aWadEv@O|g}EVvcV|f$^=34C|X_ zTya<2Gpgr2QT3E$60xJzFR8>css-+T=fFs&W@pFja`xPpMii&MeEv?o+?9%8`^ZI` z?xzVqhXju%_zujl$5tNIJEvTi`A$5z+z87y;oIyQ5*`kMFaUOBkVCdmfH&;w9gBed zFY%%Z2H9B`l7sZHB+<sRZ{|Zk`{hIO8`b6-u>;C#PZrB!-{7k@l zv2-wnShB9(xX@J_Bejxcyp^EIs|tzX{rZAIb(*@8&CJ`>!AV_@rDbH=`9gV+mv1r+ z-=sdu&*zMai_08w{%x)Nod-}1xoO|Cf`U@mhZ>qR>Wf}U#e`B{2!MOluFJ?esy08j z2C>Xxw{CCRJ9UP`hnvS8A|%nEvj`N$`tu!RS>|gHbhfp&5=v(6m6YuE<33NIE-!3f zQ6XSQKfoZ6X*J^(l`&XQcuuoLS?8eT#cwQO^nEwp#VKU(!t8J1s7M0_tk)@nM5%nm zW5Z`Yz^~(6T5vQ;t}rmayIy-gK8noz;F0tEt`s+S%KDBGW6lpgB(~2oPy>n0SGmtp z&O3gU@_Zxh2P;Fpw5k!`Nk2r`&{+NidGI4I4YwT57USl&=%nk+29GjPU6f?J=ylY( zN**;6Cu5ZLm~r~NSjM};@^XSTh-uus$8N*YzFal1ks@%3iH%8Fc`LZYa#n`Btq>a9 z72;PW$3GnCge$Jx&nybjgvH&Q@m3h@>s| zn&Cx8!*BCyNtK#)C*>xLo^Ps{dfyn7jTbpZfvDH5`q%pek9#w)Tx zp*5qyROnA36|HznsQc-A2CggL^uGF~KR9M*fy&I*HcVo8yZ-b)h`N0cumgF4pY3|8 z1-Y_zQ+x0`E+X9v`C3j+A>-WKC1ZqYT)i>}9i^M-FEG^}K9qF}mMS7T(|oeAa9Co7 z9hRDP#^+RRfiO?MaCdd2FqzrzGRf#X534Djn#=A*$?VIrz$fCjh+}u@C|xk(J;%F~ z``hbZ^@EO6B-p2`o;O^^q6BUpF4FBLMn-yDk$q8IGu-yme^ujdt2(*GRT^5DJ8usr`;Q3ZWHSXJaSGfFag(p zbzgd&0R7wy`$y@=UMJACL74@P@FBz9wU~i!Ye1nY;5-gh6DFO!u2Kp?ebz+gS z#?584yqVc77Gt|zw);MQRpJI&DMCpV_u|4OxSxLh6b|n+!>-q+C3i6c(6DAd&f53| zer@c`?2M<>k3&T^%Ylz+q6TUsNQoqQnI`M|13T>VFSN_8tn{i0F;&SGi3)7ob)H35 zczUQhUd>Af4j{RZpGxY7{b3%$BcTe5=HS5UwUmk`#SrS)<@yM2_=ruP;YoFcI)skm z7Qb%S$%Xgf4ZK3TeV1x^m;b%vdx`Ym#^(n&9{L?k2(!l^=rnjQ&=dc zAV(eiwIM5eeZ-c)MPl2lB(51fcJ9J}=%*(qIO2BMNmBi=%$N-B7%($yNwog4T)z)N za1&eNVy+7rF8)0`xmlO+=tZ^YGr0))p_CFvD_42P?20Byg&^6O4@XSpwxv1?-lW9;`#Y4n%84?KkF0yL+B{2j%)ceai1jAiyXAsWJ$1N7`x zUyt745kKyb{2}Gry?gMq^_B9VH-np7HH?}`v?z4flg!wd5E537f1~=z%wVFz?3t8t zDJQ3OV{>K>J8}}6yG*a;aZ(GoN0UFf+!~+ zQd2+~I;mUb)Z~8~*hbNV$RGuc1OaH!+YgcyZM(VCF9HS`U*}v>;=nGxc4=TyS9lq5 z_Gvkd^#d-H+QvrY=D`ugc_~gw?LyY!n4a0pCjBkMccA}NHs42CJngu={LIm z{gE@j%;i41x0#hLzVY@3^c%T%$ae4Q`#L-P)3?P52@~`WeLjLXuxi2p`~i;VFTIl0 z-`sMw@jCuvZ>@;Bmj=hJJiy_7_mpJ5uVpA`054l55I|@q>QtsM=DspSC9kANaG8UT z=#X}WpwOZAIa};zG=reiz6#(+3S$z#rW72>W|a9fod*xWVg)TatGRVbEX+KVYIfFa zwDj}}es?CPGsJZCNgBd*1D=lMwl)pv7k29IEvl$~qLdQVR?R5Kqb>V>R-{t_czv*y zZFSHVmS1Rnk=LixeC?`Y0$)k9@8YM*$1<@YEhU@uP))4$=s*!(&ErX-&dK0~{36G4 z#T`wZJOcBLf1Hm-EXC3MnnT=HZCbahaTltRHXHbukBqJ7@rlv`+SJazg&N@ zWn(to!Squ*bPQi%ZJiH=Li4iF6NOl0EHbM~8y*!InKR;C)O)yAbeVZ@;gPM(aHCt0R=qndHIpo_Uq%Ns;LU*(r4%i zH?)EG4sDg*j+~s_pe=f;aDs3-n36FDkVX@!l9>G@dU`$n#7=r~ucWrN^X3K+$XOIX zFtD%&In4J8rzZYFy<(ehHK%A=>T@$sU-b_(6#II_;F84$t~2V2f&`g(lW?V2L0eVS zsFFfx|IdwkE-M~Yz?Zg}zzbq3JR87zLL4{$+*FXK-fXc}f6vRlQ3;^IEEaZ)AN%#R z5w9PZDJJu49*&L)P)fD7UTQ-O*Ia#MhZfeGKzrg-ln%}G1fPBS^uWPWD2HZEd<=KC z$*gpFGJ?AoXnkCTpID{$mFzq ztJq%%9puZgiZ!j1pI1woT?&6O2#D$mmQ$S)h3!`5EoS8wqfx#3HyAA~EC##ug8|hn zN}7xlvrgBn-3ef^{4S{8IA(1{Z-SOVI7`pUf3a42h8I%j#s@}}}6NccE)kH$gN~LSu?1p|(t+nt`0`@lEvjh5IN4SJjlw|`Mu~8pWbis2{C}$ z6}!Rkcxt_V5;y|>_>SZo){FMu@H{PAjjyvtlQ8=Sq|_l?QjzhZ0}MMTbpPSQ)q*K| zL^p3lPIe6Oc+zuY2nK@wA2S)4rJG_HWfYZZRF`9P5-hc%ep@BLeo1Jyma# zEpZ{bb7*^$r$6Nmw56!47K;(%HX7UjVXF; zVee3^@Za&7I`^R^@ZUP~F?wvG&l2&Lj`*hE`}98~%(abRx3nt?GGq|{071{!^=vfl zTBgQXob;U0@q-l}fg+;EwYc4%@mn9MqQa#qd9b@Zb;ZUdhqV;z!w*NqALpB^sdd$9 zKGTRQ?5C)l__Ss=^Esttq@eAIvS2|Y)4ky1acA+}92%+MOb!tdgQjNXpy0=QAfmn0 zO*X6>BM`KF2zX0zo$Q*m+xvH?ZjPFkA1ML$OHt94COqm%$`O;|mgo4A~1dXa@EXUhyTfi@)&VK0=N|KOluiS6|PX{+%Dd@ z%1qR=q-^{$HI@G>NQeB)$rh93@M&hYJ3p3v;lH#1xamdI|10fk9N=%L7`F3%f=ch- zO6K!2&3Yd`tb=@~bZ!L7yVlI;jss~%PC#YP_9rFTdB_{SpFf8O`hMtr07ZgpvY-zi z;tXud#Qv*be_ylriNZO52xMCdWXg-qqZ1PA3gjpuA1#93=2nexX}#CoaI7;ViyTte zzOct!^ys(_*KI-{6WN_i1F1BMX5w9RXOJ*_8m7qPS?721>=NYTYun3?BiEVDwKO!Q z%pzw6ulY6|2Xl2k9pB0^rhW>65IH#8@&}?SzpnzlNbC~>froLGBnMXG)71Lu@!#hB z|1Zc0{+lXGchLb+0|fy~mmm;d6gbB| zKTjjGbWdevZ=!L#`KS4D)x=+9wh=(X&|^+5lLQP`r;e%IYr^W%J}m|Lg-qMhk$;ic z?A%Xj*t=&WfJ%SW8J37qwG6*=EwZdhFPvOl18UuR(@Dp!`KmL90RIB38^oF{j{gshg2t9*7=n%gmZpdTi z$dLy%jd{fCe7ik!Gb(Io{LuX?>s+FoI>1*C%rpkx%;dFmkA%bf7d9&NN|0y&^jDTq z!`X)I&<9yL=B_oU{N>DiPG#zCRuo-ha0GTH-Pg*>if*L{Qh5dpAa;4jrDhtC@qOeZN`O8F(&`FZ}+!xLRX3G=|q&taH~| z;xas_WwBi9ODuD0LbkQFQ6dnMmg$;B9?<@5#jh;BE30DLzwjuF=3Oc;P@hZZQPqqw zX>N*nFjD#Gh4A>d*T_jPMf@O7KSpAcQTxFSSv3QLqSN~?-!#ZzM;zq|!PYBI)(;J> ze}y8u4(NdT1HXK0$ZB`I2_&)e!7#H}&gX8($+xe#*qCWnI629~(5>D=z#F zgEw9sBM6=)!xU(qgr7?7AUJ_(vNv8YV?c_E29{~=B6+(~*vYwMXQbQj<@Yx#nBxg% zK_ib8zr8WT#W`kDoZnszt_%iCt3L=sSrE%OM(cfZHaDHh9A*S(wr+A8q(()V5GHC2 zw{YFPFw!2(3SU9++Ln=o%FBOF@%+t^l?8I+{QP}_-n$CE$JT~@T&N@UHT(UiG!pxk zzI!!OUs$B2M;`fj6#4DHhiS<>fA%}9k>nKMlEU~99Zk*5T*gRAOVeW5Fi$q*+Wdt@~4 zF+!NY$e#BPcq61+&3NKn4SFeo-!&Vq-se(s^diSM_%n5GITkr3|)US@5c@Jea7L98qO;h%X}FrS_e*=!}|J+<&ATf&Fs$Wuxx1LV84wLSOoKt!?_Mgf16mOt2qPMF4=V|DR#Mt3SZ8=q9UEvR?GanA{9BS zpnPOE=_vWWcs{Zy1=ZHZkHu;R;wH}cU(U*yEvn&sDpQ~?`>B|&i=>U3)@xv~|8s(_@Ef$~?D(@_fS^h75eQZM-fON-THA6>nQOz@ABu{K zE|(em=y!bz4`1zz88OjpxtLsvfkrRPctX_s`JvcOh6w>iUY@?yhzhVkSPv|IO7Pq9 z(YCGFO1S{>rM-CW$5w0#2i--B-SI#$b)r~AZWqhR%Bt(@E24_NCJL)XZsxS}Q9?D7 zH00%-D@E58G?CnT(tp;!$2IL{7ai;euvqK%7+amnb$T#|tvW|{D9(@NzgWeP3~Z;0 z)oH}HO=bHki;cIZ-y>FC{0t1j|M_PY+tYJjHsOgU93;%cnYahnXR6=>mM!1yDJ|X9g4=Q%85&*2RunRnd2AGJUN}=SVl#?% zkJZ~Lud99uU62i95>RcF3H{0f)riX5d;ncgRecDAk%#*hr-nJ*<~Tx0wptj?rG;;n zJPBY~`W{?=ebT^C3uW1#ed_G2b`G{%8mCsB?CxLhQ&&D#0P~7{VV<(zoSAsD(2!Jg zbfO*|u;;U)6dfInZ~2-*9LF(zX)@}q-dU4_r>Cb!$3^AmxADuWL7`PI!xB={rM!Vm ztFNy#Dp5>MtO89Q1h8^_kxoXlf|_Dy9*&1cLiI+eG>;ZexCeAbwxPHou(SeAlnhuc zH9tcqHM{*KBOpC#<=Bkjd5@|I#R=*;RU*2Z{ffT@635ojV;;S9&DBd$%<@@VEjX^c%Np?3+txOkuZj9(pbG%=a;Rrqc3>_q!2-A|t` z0R#nbW}hVKz$@1JWY--w;0*Ip1w@1$x~Bc4@0w}#TvvoUJ?D5@b@g+sVDt?!@2Fi2M!Y zX294)=7*mez!A3LZEr|K_0L9do*u=ov#Rt01S%m&pC$ zG`qx-*9C1|x6=Hl*h#mJm&&U7AbRII6?p(kmhY3MAu~2IGIjr%U!1m@Ztw@z^O*lt z^SKPJTk!#AtnhV}j(u(M^K#cZ@5oA<16`-bx6LOE)zy*g2x3;qXZiD~IkvO2*IZXD z(w4hRbh1ZmVw(HY-@Pm1x^cFl=?3L_&@1fbdg%q4W7@cLw_gFf1jG426G_joTzzbO zx={d<>Ye>o|;`}EEo z3W8unoSPfX?ubkUH-oA<86hx-3TnLFGd|8qGh(epGc`g2VGxC{9|SD*iH2VnpE zg7*Jqm4hcjU*HLXeBxw~R2m@Mrv4kBO~VJ*AYX(5pL%*UWPQHd@aGKj|4&Q*zkIZo z3uM33-bXwB))L?x{#HNz?$$PBJ)0qRFNejA+3MvqllGcJK7Wp631gPj5>*C zE>cV<&r&=2NBuxq!TRpjsbenGGW3-Kh_t^@eoa;1x6Z7iQjWBXn!*}Odg`Iaz0mXw ziQDtnB)4Q3+Vq@`u-h2vwF6Q{ghBS=T@tF4F{VCf9^+c%6j zMaO8KI+?XP%(K>3S+Czi%9abd$a0TXwZhlMI^9P^4ptTys+(KviUT(#Nd6}ah7zbI zc{`}*f$Rj>#R3PLCp7ma+|l_+WcfTX%WJvSaOr~NzPn;PoL83EcT*BMQfjtXiZ~8o z@>!Hm5VsDJARSy_k>%iM_1bmE40x~E4xBdbrZVYegycyah-?nG>;BH>rzXoRvV<^VB!z5bT~=AiC$l>ricabgBydDI%$ zYKL}TYFGB#tV|&upgAv_c;M=K)&P@mctC``Q` zH@98gE|DMTd@Q|$rQ#Wj-LwmZOlcVM!5#s>&3<+;Tqk#HNsGNk$4dvXr`7HW+w>*c z7xlndhh*Wam2;Zn8}qzS13xu(WzEGQjGw0P)PUy9WAiQrMqUmq7`TvxgoK^d8U~l{ zI)tXWx;k@xAiH;s2g#6G&ulAgFB$M|_u-vOxJw)^rme+41 zG(SIo>`-fbX&(dx2_kqapl4fHSXidPkjj_wcve|U%RK)0QU0;3_k!F-_5gOndAj{) z?qq?vlPmE2>5c%9ve0sAE=_;`_q5-tSMYT7V+>M3Ci#_>+~-0+J9F}M<&~6dDmA|@ z)I6QWJ9TT4`GVGiTp%(ZF^72$3Mog$EKRrzFLD_kyG0P!e_V$3UgkZL9vP9^0m!n~ zSn?!If)t1<-$QMwEZvnV(Qr%G1GL)dC@@SN!OHEY0(fkhBn|QbBy}16?eO?I<@p~0 z_y6M}?;s)WAN*LGKYKBrK%ttJ+lyZT28L(4PkI_6_J8^U_9Kc#F;PgmTYQfJOz53F zd&7fG+=9!mHmmYw-KnE|x3$TB)3^exRdlBrR8g@IFgR?=DVevllqCxzux%Y37iqXB zt8Ig`m68iaO3md6(Vm#YiGF%vH-%U{uR)oL=Lu@4+>-cfcOk>Wd)%oTP+A2#Mdw}jGt&2gVJ z$OGfCx8(VEw-=a#?&NQR>ot!H4N48rlU|V(cAhfA;~v49C~Z{IxXm#k`lg9cB6fLe zsaFQ}F9Kx`wdI=9$%y7Mh@P+;>NRd64x*V>okEB3*lWs93a2CwR^2^V{lIU82qTC>fJ6b?H%o1Q_~RziK+D&A+xDbggp;W8f}8hs3Rl}^!06gVsH&?w zqivg;M7pbKAP#nkLUsM9t;opgA_&cCyN*@0rXHsfs9ux5fhFHMkzLl>KV@WHCfAig zus1ED)k}5$y?%wD(C!Mu?AAe-c9TcZ3DCSbpZ7Txm7N}s6Xn?;wO8tiObf>%9PLDh9q+KADmi;l`SAU2^$HY+m1uK9K>V|vdHVPC z|H{6=|0R|==l}PK{~z$E;Qb^SQc*Ke5r~q=VE8xg7ycIic>nzkhz_8go7g#pgp@!4 zcBxg}G>krNblErm!4wNB$L?G8`M+gfgn|?Z_YEXqccbA6cY$R9nENpN0c%#Lx*QQJ z*V!@@@D4X`SG2h61Ag>gJFXl=86wFq-{cVGl&f(gXuO>XSbwOVqtu@%d$4)oX!Kwv zn3GfV`lS0#Xgs~7-#b9i3fYaPhD5Tn$^veGZ<+*PANzJM$ZRsQ*j?U5S5$PoArhdOtXT%+31jv z@S&dZ#OOGF?cRrL?f5)NYccDgqQMj2Ll#*;ety2e-3!iv?p?{Z(zxbKfIkcHs1NA{ zt;*Wk+XY<~`J!WEL73kNdNq?#tfC#aWw|o!Xk}+NnD#z!)2oj2i9>$E`tL;h-p{-z z2(TA0k_Ggb#cq-a;AA^XEB<2@dK5ff5R3BB>$J4ojeG+GuTgLK?#uFreo0`E$M*R= zCxb;At>l%6^>y8XF!AzG!wj5`D(x`GO0uV7vrgfuw4`ypreC69cS@RZbGRJ*)DF6R ze&0RbFGc{c@E&-m_tcD{xpm%q7HTIZ09-V?9C;MG`Bh5kR@lUJnyJ5hna$)eeV6>K zt#4;XTVKHOVfV;?2HSyyE(+4Kw#RXu61?Y2CUwD{22CNIwSk90dqUZ1flAU(y>GGLd*_v9Lec&nZP&BF~O^z%*L zUN9{1%>8|j=%|>M1t$(xR_VE45i|(rxiDcoApQW3$*8a!c@T><0Id9ia!LWvxfFqn zIf3JTPj7~d2^!tGfQFGIxOK{21ifwH3w2BR!XkhF?dkgIVZSqvHJ3>3aY_tJ&BT+;~u_L^_^BERyWky5{ipc(Ex= zgr<{DPrlHG$w_`l$bz3OJ?)`7?RN8hdkZd@G3 zAfkJ3kFdJhRit0DS&s5!mEAnR93X2CwWbmi?N8=3@;S9Je!g}!gu%I#Kb@08!+H58 zLULcvu&lb8O~9Yq+%p{L++Ez6I~p1q-lB%ESW^cFzPh?P8OGCU zS&Zx53%1DCkKBMCNgmt~Fjo*a-UAro3ro#j8KQSfv4yAM_}F)()Z5$3yGFouv;)wa zIT(~AVZyu5Gu7C{e0n1p2{XC(wfFpm3lX$lP3n)J-L(KI1Yoe(rccAQTeoj_Fq3*amsVFLX3S4f*@D%Pfsu3j{~FwILNR4**>58=FFYb zuh$j+@C^R%F8QB+{qJr@Tsr>sUs?cf)e8-yqoWE4iMawp^U*R(^JDtcI{0D|KGg^G zZzK%qB@P*Q>%%ki@;De78D-&XJ~-W~x!pBfB!bw{Vl7)zRW67)*=APEsa3Vm%}gBMGAB)9wWwIB!^YC=R->%{W3lf!BBGvgg>?)K^L3Fey18AmHc+ z!(@~$X{l!RPX?OZ^m#0V*Pw*6vsAb5NsZ}z`R@_#dng2Vf3~u+jJG$DNQAQ}KiTk* z*jiFf9uz^_Po?-C?q*d~2+2AvL~G$b8}9p1-+ugs<+N?}+fBUlZO9^t7X430ZGsD$y*B%Yp!|v=&!3;r9bR&-3hsy<`S;WP~t5z0xyOo)JS;i2a zY|(Pi^XD(n9IgO=^l;7)zP-1{yzA!;#HJp56WX;VvV(=*vzcpuST8o8YhQY=@|izA zp`zTzb&0J#Ufuzw3~n(ej5e3J5sVLl*L=8yk7t@U_onuBM8(9KeNR$SR*&{mn8S|h z&}eooJwMa>qXk~mv5JZZagvgWLgF=!E$;#^_gA=DpO3iszA@&3c0!?U#qHgblsa#I z*U^E<{lU|BUoW`idw%-c%p%%yu3F#*DIB-ij_LpeQrB0@8rewtKHv2>)J#u2+Hgsa zEY${+w%{uxrR=hsjWw_@hF)W0YFb(dmOK=ydu(zyeEhhP`L?S~mRjpO^2?jNQ#4vr=FUybe&+6VH~ zx85_4N7uj{hFUhP2a_Tb?W#qh^W`dlJ=>og3vV`@l@xi8IelvguUmBB=Wb?i@#W7? z_4R!d60%M9RwtVEV!W$4qvf)@SI zxXyFaFBX@Uz@j%{zC-{1{d=%@>}l8i0qeKhw`OnopFXEy&7bllwLb-S!0)- zTrXBu__;uKza?fh{8K$h&ims8ul=d?zw_*gU-bRuoesuFJn?-^midLri@G9~jCFNY zrj6O-I~|}l+S9gm{d3JfXDN^#EM|EXLiYOA9_jXTo>`u1zC4NITmpE!GI2OzdAY+X z0WO#2q`686obUUsU1hVIM(VV;d0gnMXlv0@*8k)bwbsVbJ|wHOSzW1Jpyh2hMaJN+ zP3;Gdm%B|kyAf_aKRWy@v)XxfY;1D_Y5z*!b?5C`-IY~Xt=ZrZjX0I~B`;b;L5na1!nparVRo_)KzBkZ+u#L7?G=!04ry5a3 z248nmCVe~`vm+&T4`ySv9?0vvLYMRNH>1M}M@Fj_qPn(jVm43$#%=Q~t-lz>w*H^? zt~9KvJKdvb9T#AxYAt1J1*BF45g}|LZK-7_ATtI4H6)10j#Z55vW1g0--2` z0+PrU41@s1vL_MHL?9$sAR#OXCNUvl$vub8e7Rp{=H8j--Vgo20}muQ@Be*&@9$mD z0S%)GpYx#ixMbfcWcZ#qs%y!6;tL*nBf zA{QP<{X}H^(h?Do&h8a#PHkywDy9BNX1_sa!UClMwRQg3{5?$qnkZ$N4EYDWX{HKnd<3F_N)I%Wr`rJs<>3MH z$lodiZ08MuP`Er|BdEmn?#~aXq^gM-TSKlb4Gq@TdLKynmjnyE0NEWAw{&Lj=1_rn zu)^OqJj)AxnR$(o)xCYXj^r$3u9fZ+G0>35?$H}u^O&+C9I3-uz$gQvTF|m;vv@-^ z%FoC6+J{|sPMK_wSflu6ZlW2oJ!A$G&F$cCa>$Vw!>O?%HYvp|s4eCE_WVFQV){lt zAbt0?PhGvYWFILb)}pj?wv~o(@l4`UG9oQXtc)=?H7SSz;^t~UOQv;bKJZl0ReEck zQtahais;bhqZu&BzKsp(?Mfm&)tazytk|4kz>HxYMG3;c@=T&ptCGUMCe>7ZB=)12 zyVrU!Xn=_kBP;VjfgtuT|JAo$cLx3)hn@axqGJF}^TWs}O7AGg?u2 zFoH42XD~A2u6-c;xzt+1ugM(`fSvSrbd-Kq3*isR^Q)Ll2Cm3__y%ozGn_4gtDtep zUZ`d~r&g5ZFS5L$=m-eyB_5SE8g+LTT{FQMJIVKSsS-Ojg$ zQ5=sk1Aiz8x*izBZMNI!&^i4XCP7Tx?DX$0TKdXVY_GmL2@HBOw>pD|XjLbh7+kzl z8`=ke3A&ot;n4kbi7L~UAui0_51_>RMnLraK2KGCQ$tC3-8@>JsA9r9uP;cb8ObOS zx5>C*WwLnrz1DfbF~b8`-ej{)%hEDvH`Lb8N?(Vo3EPp&WSRD%>Z*Z*!4oc77Caul+tImil1muJp{uLXaw4uGX%V1`obPeBSd;^&o=8`#Q8a)oPD?uW;*r7HXB^|{M zPw@04ynM;;e=ss}1zy-#Q9;REbS%&JdF)$ilDcM6ycQ=~8SP7#6SCsZRA9DJQfcFbGb)Rfd0KTu?~8T%s?~@WFHK!Wei1-ytK+T>lWRgRvP9Fx z-DyigPFI*K$lavKQuKH?`!-dHu%vs6Gf>3NHR|R}foMduwU4oG1JKNm;g;+BdjvRj zqOuL70;dTI4D~^+i5pAAy_YMn7%a+{A37m4SY$37ECRrT4>Y7)%}U44hXf-p(@P#y z24^w`(}M#Qe+Kd#Dfgho$dYag{8HU~p@R3IlN>Xs^~hP#akW9}>a)cORiGH7latL^ z!M3g9p$!Yl@xrJJ>dK6ZNl8I0r&G&Qj*_j|X}DX$_T9)-#$5U|YUHQ&3KH zdz@!90`X2EHFD@-IV3FY6BohyQa@eE;-97fI1PXz87I}Yr}*@tJW|K;f|#jtf1@;6 zb$%C8AmX&6&=!@}j-BZpp#SDm(IQ!7DKzpTtt&N}Mh%5ql-XFT<)#hNJN7Nox1P9y zbZ!Hm?uO3FqIJ~SY~8#G3RPKZZ#=OS)dJLxXJt5|_*Es0I{$O)xx1Es%tA?7<*=|c zzOBdb4KD4_A?=7a^FwBDD+a>Ok8sL6uYKm=&^g`_#@2(>th|!wGlO1Y@mFGLG!gvG3ny2Uv270#37s9%k%Z;N2G0L zMszkl<6JSrzXV5oYLQz;D0tSZlOe|C1d?K}MT(!G5EW@p9drRdg}XJUMZve@ua!n& z&uM#FpBOS=t_bBIAy?aI_0XwNvd!{vJVK=F*7Y@ z5cMjAv1ok^p@qp|Y37Jf6VH!u){v-&Vap8-(y?3%Ad{|vYoA|wot1NXUq`=zM%Gop zj8^F6w0GWV?ph83a=j0jpN2S(4|GfD=UD6oHnH=BIDKomIoaKRs=rC53uw~r3qX@1 zPV+~N2I*2c%3>7MlajA$Q_d>7AG|))8ucY=Ta*Xk(_(Q_<$&R!4{Pfj$*=V|$+!7z zUR#@TG@4gZD;Ev7vq*G-;pShrm&PjRT`ap#SeqI6@l|Fd)iGaNO#k59GCl1|a($yi zMh-9Zfqog*5&l{Iqjrd!WSu78q^q>TGWkgd{m!Qsmp($=rQz5q9Ua>CA{LiGjsr zA`uZR7Sg||GJV!}qcL^7x^UA*8+h#D4?5keKrQ;j(P(?qCt-GW9sNf`_e=fT+NfKZ zBzqU8BL^Z=y-AeG2^|-Q28>c=Pt-awVuup^4VUiK6}PuQ%#uDa{YBHosIkHMNJMS^ zlvNtQph3>*mu-y}M_r9l>?We3rRt#M>tCv6eb=D!~eXk)4(8aG$^QH^mrlSQ#14a%jTb4x388uZnG+Nto=)GmGFS=ia`wG1e;!=(?7QogeXXy3dkhCOKnxwYpY;a22c*UIOYr zPh>i+-OSh!4hO|1$!U%0i=LXG^2fwO{ow%Pbv$3}r(u6rO6q#uQdQ$dQ0q3^XO z2<}jFyv%~^(HDsR&#~;$%Hm!VFZ2p?ZewaOE>^oN}89?HkyiEm=DQ{8O9QlJ~xjnR)Sy6$iHF6MDRm~C0AZDl&p2L7*Dao1c zKpcv|xVi$~javOC6-*PTUtf@(+}eTe*(|;+hSOw?OkEg};MqYH%LOG*^+=d5C_pej zMEmji&66z`FV%$yrn@?9s1lM!H~_I-;8GLEo}(SF{~*-;MECA1jf^NTC}_vSh_Hd-1RPMs}2k zL~l(6w50qJDn`!m@VKmXrqD>=BQPlmv^vR9<>3pymlqH`nNKmj`m}HzI<)pZ4w)y%DdzwKxqZ7j`W5VPi9UI~i1PKF=fLJ&- zid8VftWU(gEysb9$xherPWmz{7KqIf?#mq8l6A?gyvd1~LZ7x#`gF17(4%xkp1yhz z-<2xGp06X;52J07bUEOqZdsx?W~jO0tEq~5m$8x+4R&AhOd*3t+iV}G98JGW8qGUZT#E!6DBLHJqi%!7m`6$OVBL1w81(} z34Q%d#>#l*(9KRowfOt}6Pg%|GT4jA1OU1KGX@8<_ft&fIaFit(R&;1qpNc z70TfDnNn8>(m-Jk;3T`cIsT0jA^Pm4l~vD0 z33R-aulmc%JcxB*0V2Db_Ree*HG#20MZCSUDV$15y~f19@UBk?xf@ts%YIo?k6l?6 zLZgHUo;6tAw@Gs}{*(HzOo2*zd;)f+xjOmP{VAYrtyBI&dE#@^p}Q(ot3sxKlyjk) zSpUhy@=|j*$+E(AlMnm|93L0#OECv486HhQThS}~Dds2Q1#wSL3A>@*`)mz?{}WH@ zQRn?hsTIXa6KFp;$~Il>#*0LUbJpf4%S52*wq9yYz_Z=}dUBoWs@=MaCw;%a=k|-S zX&m9N%rD)sC&Rw&4lRs|YW^uwRU*FRbE)QP!h}^pBhkD0$H*xw9_*+=t!|vd!1r!* zFK1vsi0&G2g9xnhr+Mj7yw?=ll5n)54jTLf5fTzUF8TAo zMpx%8e6L;6jo#jt_taRh3)iWrY;_w%`2PIKr4Dvi$4 z+$U-C#JMKVEGQSi#y~XARuH0=roRg=IKB@9n-)Yw@;vb6A&aGkv>GmYG}M$c{Q)|) zZk_~J0{`;PKi4SvZ~gPf5yvgkgsyRA-;aPK)RUXP|5M=mzp3B;_lw!Il=+`f?X<+Q zTdE`24DxN-&fss>ylKx)`~N@E?*IGc|3|Ze-{1T%4p;tlg=GtXR`Ki?yxkg>7l9ia z!HH6haBs?2RDoOf^`w#J%0j6KaA|xi|EI*5SGBv!C``x{P7WT z>*%|hyX;PZgQDz-cmwJ7hnFtpGKQg=Yrh(U=~($U#&f**b;rNT^kP%S zk(ut&Pyw(PJ&IAl@Gl$Qt9YT*2r*9v?hn zaQeREA%I2(wwyHd3&1JZ8Ex18?v^gM0pM@Y-a;a@KA`iliPJDW9WYc1zQ z7}Z9}P+3ee?S#5u#JFag`0Dx$kGzAK`QaJ^qgm;#|YKeSb&@+FWdWO z9{SXNNBFt-4P^NXgIb^80-j0a5Hqy4y%lKu5h?PkIV%_L+AX6;l{T+lytt;)$%cQu zADBh;Twmew02?$Bpv=R+tMBgWiU4LYcEt33*(DmlCZZkf zbzNsuks1j1sjs}bi-GCwFBbm#H<`V?Amd)?pE@-E1ujdYr|w-4%>AJfPITC+g*tb>IhAwkfY{ALt5 zd@l4)qT5N0wMTd5m~Hs^MdT@|J!5Z3b#-GhBaPaf(enGX%F}e$^F451?F?$z4uo=n zhw1rtMU9>0T4|X4jkYXJ`U+F}4rlbKp{4t~!k}zq^faT7>wbKDSNznDQxu-NyeB4l z8rb0SH9K@8EOvVg@LO_h4$SBIypaat&W;%lWB<-1zx(q)1W7|F5SO!$HFs^uy=12WROy3RTy1DbNXSDZkXFt< zH3zE^jemA6?*A+3p47AQbUbBH&~Y>nz1Z_~C2!A1&z$WFn=s(7+|FP4g7|sJH~$6T C=@Od& literal 0 HcmV?d00001 diff --git a/modern-react/my-react/cypress/support/commands.js b/modern-react/my-react/cypress/support/commands.js new file mode 100644 index 0000000..66ea16e --- /dev/null +++ b/modern-react/my-react/cypress/support/commands.js @@ -0,0 +1,25 @@ +// *********************************************** +// This example commands.js shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** +// +// +// -- This is a parent command -- +// Cypress.Commands.add('login', (email, password) => { ... }) +// +// +// -- This is a child command -- +// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) +// +// +// -- This is a dual command -- +// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) +// +// +// -- This will overwrite an existing command -- +// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) \ No newline at end of file diff --git a/modern-react/my-react/cypress/support/e2e.js b/modern-react/my-react/cypress/support/e2e.js new file mode 100644 index 0000000..0e7290a --- /dev/null +++ b/modern-react/my-react/cypress/support/e2e.js @@ -0,0 +1,20 @@ +// *********************************************************** +// This example support/e2e.js is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import './commands' + +// Alternatively you can use CommonJS syntax: +// require('./commands') \ No newline at end of file diff --git a/modern-react/my-react/package-lock.json b/modern-react/my-react/package-lock.json new file mode 100644 index 0000000..ea9d9fc --- /dev/null +++ b/modern-react/my-react/package-lock.json @@ -0,0 +1,31399 @@ +{ + "name": "my-react", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "my-react", + "version": "0.1.0", + "dependencies": { + "@emotion/react": "^11.11.4", + "@emotion/styled": "^11.11.5", + "@hookform/resolvers": "^3.3.4", + "@mui/icons-material": "^5.15.15", + "@mui/material": "^5.15.15", + "@storybook/jest": "^0.2.3", + "@storybook/testing-library": "^0.2.2", + "@testing-library/jest-dom": "^5.17.0", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^14.0.0", + "classnames": "^2.5.1", + "msw": "^2.2.14", + "prop-types": "^15.8.1", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-error-boundary": "^4.0.13", + "react-helmet-async": "^2.0.4", + "react-hook-form": "^7.51.3", + "react-query": "^3.39.3", + "react-router-dom": "^6.22.3", + "react-scripts": "5.0.1", + "recoil": "^0.7.7", + "styled-components": "^6.1.8", + "styled-jsx": "^5.1.2", + "use-immer": "^0.9.0", + "web-vitals": "^2.1.4", + "yup": "^1.4.0" + }, + "devDependencies": { + "@chromatic-com/storybook": "^1.3.2", + "@storybook/addon-essentials": "^8.0.8", + "@storybook/addon-interactions": "^8.0.8", + "@storybook/addon-links": "^8.0.8", + "@storybook/addon-onboarding": "^8.0.8", + "@storybook/blocks": "^8.0.8", + "@storybook/preset-create-react-app": "^8.0.8", + "@storybook/react": "^8.0.8", + "@storybook/react-webpack5": "^8.0.8", + "@storybook/test": "^8.0.8", + "customize-cra": "^1.0.0", + "cypress": "^13.8.0", + "eslint-plugin-storybook": "^0.8.0", + "react-app-rewired": "^2.2.1", + "storybook": "^8.0.8", + "webpack": "^5.91.0" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.3.tgz", + "integrity": "sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==" + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@aw-web-design/x-default-browser": { + "version": "1.4.126", + "resolved": "https://registry.npmjs.org/@aw-web-design/x-default-browser/-/x-default-browser-1.4.126.tgz", + "integrity": "sha512-Xk1sIhyNC/esHGGVjL/niHLowM0csl/kFO5uawBy4IrWwy0o1G8LGt3jP6nmWGz+USxeeqbihAmp/oVZju6wug==", + "dev": true, + "dependencies": { + "default-browser-id": "3.0.0" + }, + "bin": { + "x-default-browser": "bin/x-default-browser.js" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "dependencies": { + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", + "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz", + "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.4", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.4", + "@babel/parser": "^7.24.4", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0", + "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/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.1.tgz", + "integrity": "sha512-d5guuzMlPeDfZIbpQ8+g1NaCNuAGBBGNECh0HVqz1sjOeVLh2CEaifuOysCH18URW6R7pqXINvf5PaR/dC6jLQ==", + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0", + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@babel/eslint-parser/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz", + "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==", + "dependencies": { + "@babel/types": "^7.24.0", + "@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-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.4.tgz", + "integrity": "sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.24.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz", + "integrity": "sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dependencies": { + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "dependencies": { + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", + "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz", + "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==", + "dependencies": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", + "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", + "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.4.tgz", + "integrity": "sha512-qpl6vOOEEzTLLcsuqYYo8yDtrTocmu2xkGvgNebvPjT9DTtfFYGmgDqY+rBYXNlqL4s9qLDn6xkrJv4RxAPiTA==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz", + "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz", + "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz", + "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.1.tgz", + "integrity": "sha512-zPEvzFijn+hRvJuX2Vu3KbEBN39LN3f7tW3MQO2LsIs57B26KU+kUc82BdAktS1VCM6libzh45eKGI65lg0cpA==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-decorators": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.1.tgz", + "integrity": "sha512-05RJdO/cCrtVWuAaSn1tS3bH8jbsJa/Y1uD186u6J4C/1mnHFxseeuWpsqr9anvo7TUulev7tm7GDwRV+VuhDw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.1.tgz", + "integrity": "sha512-sxi2kLTI5DeW5vDtMUsk4mTPwvlUDbjOnoWayhynCwrw4QXRld4QEYwqzY8JmQXaJUtgUuCIurtSRH5sn4c7mA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz", + "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz", + "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", + "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz", + "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", + "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz", + "integrity": "sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz", + "integrity": "sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==", + "dependencies": { + "@babel/helper-module-imports": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-remap-async-to-generator": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", + "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.4.tgz", + "integrity": "sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz", + "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz", + "integrity": "sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.4", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.1.tgz", + "integrity": "sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-replace-supers": "^7.24.1", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", + "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/template": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.1.tgz", + "integrity": "sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz", + "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz", + "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz", + "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz", + "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz", + "integrity": "sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.24.1.tgz", + "integrity": "sha512-iIYPIWt3dUmUKKE10s3W+jsQ3icFkw0JyRVyY1B7G4yK/nngAOHLVx8xlhA6b/Jzl/Y0nis8gjqhqKtRDQqHWQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-flow": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", + "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", + "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz", + "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", + "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz", + "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", + "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz", + "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", + "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz", + "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz", + "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==", + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz", + "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz", + "integrity": "sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz", + "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.1.tgz", + "integrity": "sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", + "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-replace-supers": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz", + "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.1.tgz", + "integrity": "sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.1.tgz", + "integrity": "sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz", + "integrity": "sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.1.tgz", + "integrity": "sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", + "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.24.1.tgz", + "integrity": "sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.1.tgz", + "integrity": "sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", + "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/types": "^7.23.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", + "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.1.tgz", + "integrity": "sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz", + "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz", + "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.3.tgz", + "integrity": "sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.24.3", + "@babel/helper-plugin-utils": "^7.24.0", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.1", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", + "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", + "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz", + "integrity": "sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", + "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.1.tgz", + "integrity": "sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.4.tgz", + "integrity": "sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.4", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-typescript": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz", + "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz", + "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz", + "integrity": "sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz", + "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.4.tgz", + "integrity": "sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A==", + "dependencies": { + "@babel/compat-data": "^7.24.4", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.4", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.1", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.24.1", + "@babel/plugin-syntax-import-attributes": "^7.24.1", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.1", + "@babel/plugin-transform-async-generator-functions": "^7.24.3", + "@babel/plugin-transform-async-to-generator": "^7.24.1", + "@babel/plugin-transform-block-scoped-functions": "^7.24.1", + "@babel/plugin-transform-block-scoping": "^7.24.4", + "@babel/plugin-transform-class-properties": "^7.24.1", + "@babel/plugin-transform-class-static-block": "^7.24.4", + "@babel/plugin-transform-classes": "^7.24.1", + "@babel/plugin-transform-computed-properties": "^7.24.1", + "@babel/plugin-transform-destructuring": "^7.24.1", + "@babel/plugin-transform-dotall-regex": "^7.24.1", + "@babel/plugin-transform-duplicate-keys": "^7.24.1", + "@babel/plugin-transform-dynamic-import": "^7.24.1", + "@babel/plugin-transform-exponentiation-operator": "^7.24.1", + "@babel/plugin-transform-export-namespace-from": "^7.24.1", + "@babel/plugin-transform-for-of": "^7.24.1", + "@babel/plugin-transform-function-name": "^7.24.1", + "@babel/plugin-transform-json-strings": "^7.24.1", + "@babel/plugin-transform-literals": "^7.24.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.1", + "@babel/plugin-transform-member-expression-literals": "^7.24.1", + "@babel/plugin-transform-modules-amd": "^7.24.1", + "@babel/plugin-transform-modules-commonjs": "^7.24.1", + "@babel/plugin-transform-modules-systemjs": "^7.24.1", + "@babel/plugin-transform-modules-umd": "^7.24.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.24.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.1", + "@babel/plugin-transform-numeric-separator": "^7.24.1", + "@babel/plugin-transform-object-rest-spread": "^7.24.1", + "@babel/plugin-transform-object-super": "^7.24.1", + "@babel/plugin-transform-optional-catch-binding": "^7.24.1", + "@babel/plugin-transform-optional-chaining": "^7.24.1", + "@babel/plugin-transform-parameters": "^7.24.1", + "@babel/plugin-transform-private-methods": "^7.24.1", + "@babel/plugin-transform-private-property-in-object": "^7.24.1", + "@babel/plugin-transform-property-literals": "^7.24.1", + "@babel/plugin-transform-regenerator": "^7.24.1", + "@babel/plugin-transform-reserved-words": "^7.24.1", + "@babel/plugin-transform-shorthand-properties": "^7.24.1", + "@babel/plugin-transform-spread": "^7.24.1", + "@babel/plugin-transform-sticky-regex": "^7.24.1", + "@babel/plugin-transform-template-literals": "^7.24.1", + "@babel/plugin-transform-typeof-symbol": "^7.24.1", + "@babel/plugin-transform-unicode-escapes": "^7.24.1", + "@babel/plugin-transform-unicode-property-regex": "^7.24.1", + "@babel/plugin-transform-unicode-regex": "^7.24.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.1", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-flow": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.24.1.tgz", + "integrity": "sha512-sWCV2G9pcqZf+JHyv/RyqEIpFypxdCSxWIxQjpdaQxenNog7cN1pr76hg8u0Fz8Qgg0H4ETkGcJnXL8d4j0PPA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-transform-flow-strip-types": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.1.tgz", + "integrity": "sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-transform-react-display-name": "^7.24.1", + "@babel/plugin-transform-react-jsx": "^7.23.4", + "@babel/plugin-transform-react-jsx-development": "^7.22.5", + "@babel/plugin-transform-react-pure-annotations": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.1.tgz", + "integrity": "sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-syntax-jsx": "^7.24.1", + "@babel/plugin-transform-modules-commonjs": "^7.24.1", + "@babel/plugin-transform-typescript": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/register": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.23.7.tgz", + "integrity": "sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "find-cache-dir": "^2.0.0", + "make-dir": "^2.1.0", + "pirates": "^4.0.6", + "source-map-support": "^0.5.16" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/register/node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/register/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/register/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/register/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" + }, + "node_modules/@babel/runtime": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", + "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", + "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", + "dependencies": { + "@babel/code-frame": "^7.24.1", + "@babel/generator": "^7.24.1", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.1", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@base2/pretty-print-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@base2/pretty-print-object/-/pretty-print-object-1.0.1.tgz", + "integrity": "sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==", + "dev": true + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + }, + "node_modules/@bundled-es-modules/cookie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@bundled-es-modules/cookie/-/cookie-2.0.0.tgz", + "integrity": "sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw==", + "dependencies": { + "cookie": "^0.5.0" + } + }, + "node_modules/@bundled-es-modules/cookie/node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@bundled-es-modules/statuses": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@bundled-es-modules/statuses/-/statuses-1.0.1.tgz", + "integrity": "sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==", + "dependencies": { + "statuses": "^2.0.1" + } + }, + "node_modules/@chromatic-com/storybook": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@chromatic-com/storybook/-/storybook-1.3.2.tgz", + "integrity": "sha512-XcEWNjpRNHCedKZeaXL1cArTIVAap4hZQS0Khn1u1R/b2WRhBqTFDl582sJDUixBN+qkhdStS23S1+Fj/BC1nQ==", + "dev": true, + "dependencies": { + "chromatic": "^11.3.0", + "filesize": "^10.0.12", + "jsonfile": "^6.1.0", + "react-confetti": "^6.1.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=16.0.0", + "yarn": ">=1.22.18" + } + }, + "node_modules/@chromatic-com/storybook/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@chromatic-com/storybook/node_modules/filesize": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.1.tgz", + "integrity": "sha512-L0cdwZrKlwZQkMSFnCflJ6J2Y+5egO/p3vgRSDQGxQt++QbUZe5gMbRO6kg6gzwQDPvq2Fk9AmoxUNfZ5gdqaQ==", + "dev": true, + "engines": { + "node": ">= 10.4.0" + } + }, + "node_modules/@chromatic-com/storybook/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@csstools/normalize.css": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.1.1.tgz", + "integrity": "sha512-YAYeJ+Xqh7fUou1d1j9XHl44BmsuThiTr4iNrgCQ3J27IbhXsxXDGZ1cXv8Qvs99d4rBbLiSKy3+WZiet32PcQ==" + }, + "node_modules/@csstools/postcss-cascade-layers": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", + "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.2", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-color-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", + "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", + "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", + "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", + "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", + "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-nested-calc": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", + "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", + "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", + "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", + "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", + "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", + "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-unset-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", + "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", + "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss-selector-parser": "^6.0.10" + } + }, + "node_modules/@cypress/request": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz", + "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "http-signature": "~1.3.6", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "6.10.4", + "safe-buffer": "^5.1.2", + "tough-cookie": "^4.1.3", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@cypress/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/@cypress/request/node_modules/qs": { + "version": "6.10.4", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", + "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "dependencies": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + } + }, + "node_modules/@cypress/xvfb/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/@emotion/babel-plugin/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==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + }, + "node_modules/@emotion/cache": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", + "dependencies": { + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/cache/node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + }, + "node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz", + "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==", + "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==" + }, + "node_modules/@emotion/react": { + "version": "11.11.4", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz", + "integrity": "sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.4.tgz", + "integrity": "sha512-RIN04MBT8g+FnDwgvIUi8czvr1LU1alUMI05LekWB5DGyTm8cCBMCRpq3GqaiyEDRptEXOyXnvZ58GZYu4kBxQ==", + "dependencies": { + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/serialize/node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + }, + "node_modules/@emotion/sheet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" + }, + "node_modules/@emotion/styled": { + "version": "11.11.5", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.5.tgz", + "integrity": "sha512-/ZjjnaNKvuMPxcIiUkf/9SHoG4Q196DRl1w82hQ3WCsjo1IUR8uaGWrC6a87CrYAW0Kb/pK7hk8BnLgLRi9KoQ==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/is-prop-valid": "^1.2.2", + "@emotion/serialize": "^1.1.4", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/styled/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==", + "dependencies": { + "@emotion/memoize": "^0.8.1" + } + }, + "node_modules/@emotion/unitless": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz", + "integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "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==", + "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/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.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": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/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==" + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/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==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@fal-works/esbuild-plugin-global-externals": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@fal-works/esbuild-plugin-global-externals/-/esbuild-plugin-global-externals-2.1.2.tgz", + "integrity": "sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==", + "dev": true + }, + "node_modules/@floating-ui/core": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", + "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==", + "dependencies": { + "@floating-ui/utils": "^0.2.1" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.3.tgz", + "integrity": "sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==", + "dependencies": { + "@floating-ui/core": "^1.0.0", + "@floating-ui/utils": "^0.2.0" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.8.tgz", + "integrity": "sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==", + "dependencies": { + "@floating-ui/dom": "^1.6.1" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", + "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==" + }, + "node_modules/@hookform/resolvers": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.3.4.tgz", + "integrity": "sha512-o5cgpGOuJYrd+iMKvkttOclgwRW86EsWJZZRC23prf0uU2i48Htq4PuT73AVb9ionFyZrwYEITuOFGF+BydEtQ==", + "peerDependencies": { + "react-hook-form": "^7.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.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==", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==" + }, + "node_modules/@inquirer/confirm": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-3.1.5.tgz", + "integrity": "sha512-6+dwZrpko5vr5EFEQmUbfBVhtu6IsnB8lQNsLHgO9S9fbfS5J6MuUj+NY0h98pPpYZXEazLR7qzypEDqVzf6aQ==", + "dependencies": { + "@inquirer/core": "^8.0.1", + "@inquirer/type": "^1.3.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-8.0.1.tgz", + "integrity": "sha512-qJRk1y51Os2ARc11Bg2N6uIwiQ9qBSrmZeuMonaQ/ntFpb4+VlcQ8Gl1TFH67mJLz3HA2nvuave0nbv6Lu8pbg==", + "dependencies": { + "@inquirer/figures": "^1.0.1", + "@inquirer/type": "^1.3.0", + "@types/mute-stream": "^0.0.4", + "@types/node": "^20.12.7", + "@types/wrap-ansi": "^3.0.0", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "cli-spinners": "^2.9.2", + "cli-width": "^4.1.0", + "mute-stream": "^1.0.0", + "signal-exit": "^4.1.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@inquirer/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/@inquirer/core/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@inquirer/core/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==" + }, + "node_modules/@inquirer/core/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@inquirer/core/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@inquirer/core/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@inquirer/core/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@inquirer/figures": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.1.tgz", + "integrity": "sha512-mtup3wVKia3ZwULPHcbs4Mor8Voi+iIXEWD7wCNbIO6lYR62oPCTQyrddi5OMYVXHzeCSoneZwJuS8sBvlEwDw==", + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/type": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.3.0.tgz", + "integrity": "sha512-RW4Zf6RCTnInRaOZuRHTqAUl+v6VJuQGglir7nW2BkT3OXOphMhkIFhvFRjorBx2l0VwtC/M4No8vYR65TdN9Q==", + "engines": { + "node": ">=18" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/@jest/console/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/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==" + }, + "node_modules/@jest/console/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/@jest/core/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/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==" + }, + "node_modules/@jest/core/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "optional": true, + "peer": true, + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect/node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "optional": true, + "peer": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect/node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "optional": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect/node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect/node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "optional": true, + "peer": true + }, + "node_modules/@jest/expect/node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "optional": true, + "peer": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@jest/expect/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==", + "optional": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/expect/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "optional": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/expect/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==", + "optional": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/expect/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==", + "optional": true, + "peer": true + }, + "node_modules/@jest/expect/node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "optional": true, + "peer": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect/node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect/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==", + "optional": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/expect/node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "optional": true, + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "optional": true, + "peer": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect/node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/@jest/expect/node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "optional": true, + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect/node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "optional": true, + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect/node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "optional": true, + "peer": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect/node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "optional": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect/node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect/node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "optional": true, + "peer": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect/node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "optional": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/@jest/expect/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/expect/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "optional": true, + "peer": true + }, + "node_modules/@jest/expect/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==", + "optional": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/expect/node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "optional": true, + "peer": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/@jest/reporters/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/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==" + }, + "node_modules/@jest/reporters/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/reporters/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/@jest/transform/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/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==" + }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/@jest/transform/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/transform/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/types/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/@jest/types/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/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==" + }, + "node_modules/@jest/types/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "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==", + "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==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "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==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==" + }, + "node_modules/@mdx-js/react": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.0.1.tgz", + "integrity": "sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==", + "dev": true, + "dependencies": { + "@types/mdx": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=16", + "react": ">=16" + } + }, + "node_modules/@mswjs/cookies": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@mswjs/cookies/-/cookies-1.1.0.tgz", + "integrity": "sha512-0ZcCVQxifZmhwNBoQIrystCb+2sWBY2Zw8lpfJBPCHGCA/HWqehITeCRVIv4VMy8MPlaHo2w2pTHFV2pFfqKPw==", + "engines": { + "node": ">=18" + } + }, + "node_modules/@mswjs/interceptors": { + "version": "0.26.15", + "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.26.15.tgz", + "integrity": "sha512-HM47Lu1YFmnYHKMBynFfjCp0U/yRskHj/8QEJW0CBEPOlw8Gkmjfll+S9b8M7V5CNDw2/ciRxjjnWeaCiblSIQ==", + "dependencies": { + "@open-draft/deferred-promise": "^2.2.0", + "@open-draft/logger": "^0.3.0", + "@open-draft/until": "^2.0.0", + "is-node-process": "^1.2.0", + "outvariant": "^1.2.1", + "strict-event-emitter": "^0.5.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@mui/base": { + "version": "5.0.0-beta.40", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.40.tgz", + "integrity": "sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@floating-ui/react-dom": "^2.0.8", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.14", + "@popperjs/core": "^2.11.8", + "clsx": "^2.1.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/core-downloads-tracker": { + "version": "5.15.15", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.15.tgz", + "integrity": "sha512-aXnw29OWQ6I5A47iuWEI6qSSUfH6G/aCsW9KmW3LiFqr7uXZBK4Ks+z8G+qeIub8k0T5CMqlT2q0L+ZJTMrqpg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + } + }, + "node_modules/@mui/icons-material": { + "version": "5.15.15", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.15.15.tgz", + "integrity": "sha512-kkeU/pe+hABcYDH6Uqy8RmIsr2S/y5bP2rp+Gat4CcRjCcVne6KudS1NrZQhUCRysrTDCAhcbcf9gt+/+pGO2g==", + "dependencies": { + "@babel/runtime": "^7.23.9" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@mui/material": "^5.0.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material": { + "version": "5.15.15", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.15.tgz", + "integrity": "sha512-3zvWayJ+E1kzoIsvwyEvkTUKVKt1AjchFFns+JtluHCuvxgKcLSRJTADw37k0doaRtVAsyh8bz9Afqzv+KYrIA==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/base": "5.0.0-beta.40", + "@mui/core-downloads-tracker": "^5.15.15", + "@mui/system": "^5.15.15", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.14", + "@types/react-transition-group": "^4.4.10", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1", + "react-is": "^18.2.0", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/@mui/private-theming": { + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.14.tgz", + "integrity": "sha512-UH0EiZckOWcxiXLX3Jbb0K7rC8mxTr9L9l6QhOZxYc4r8FHUkefltV9VDGLrzCaWh30SQiJvAEd7djX3XXY6Xw==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/utils": "^5.15.14", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine": { + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.14.tgz", + "integrity": "sha512-RILkuVD8gY6PvjZjqnWhz8fu68dVkqhM5+jYWfB5yhlSQKg+2rHkmEwm75XIeAqI3qwOndK6zELK5H6Zxn4NHw==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@emotion/cache": "^11.11.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/system": { + "version": "5.15.15", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.15.15.tgz", + "integrity": "sha512-aulox6N1dnu5PABsfxVGOZffDVmlxPOVgj56HrUnJE8MCSh8lOvvkd47cebIVQQYAjpwieXQXiDPj5pwM40jTQ==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/private-theming": "^5.15.14", + "@mui/styled-engine": "^5.15.14", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.14", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/types": { + "version": "7.2.14", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.14.tgz", + "integrity": "sha512-MZsBZ4q4HfzBsywtXgM1Ksj6HDThtiwmOKUXH1pKYISI9gAVXCNHNpo7TlGoGrBaYWZTdNoirIN7JsQcQUjmQQ==", + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.14.tgz", + "integrity": "sha512-0lF/7Hh/ezDv5X7Pry6enMsbYyGKjADzvHyo3Qrc/SSlTsQ1VkbDMbH0m2t3OR5iIVLwMoxwM7yGd+6FCMtTFA==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@types/prop-types": "^15.7.11", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/@ndelangen/get-tarball": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@ndelangen/get-tarball/-/get-tarball-3.0.9.tgz", + "integrity": "sha512-9JKTEik4vq+yGosHYhZ1tiH/3WpUS0Nh0kej4Agndhox8pAdWhEx5knFVRcb/ya9knCRCs1rPxNrSXTDdfVqpA==", + "dev": true, + "dependencies": { + "gunzip-maybe": "^1.4.2", + "pump": "^3.0.0", + "tar-fs": "^2.1.1" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dependencies": { + "eslint-scope": "5.1.1" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "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==", + "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==", + "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==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@open-draft/deferred-promise": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", + "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==" + }, + "node_modules/@open-draft/logger": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz", + "integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==", + "dependencies": { + "is-node-process": "^1.2.0", + "outvariant": "^1.4.0" + } + }, + "node_modules/@open-draft/until": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz", + "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==" + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.11", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.11.tgz", + "integrity": "sha512-7j/6vdTym0+qZ6u4XbSAxrWBGYSdCfTzySkj7WAFgDLmSyWlOrWvpyzxlFh5jtw9dn0oL/jtW+06XfFiisN3JQ==", + "dependencies": { + "ansi-html-community": "^0.0.8", + "common-path-prefix": "^3.0.0", + "core-js-pure": "^3.23.3", + "error-stack-parser": "^2.0.6", + "find-up": "^5.0.0", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.4", + "schema-utils": "^3.0.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "@types/webpack": "4.x || 5.x", + "react-refresh": ">=0.10.0 <1.0.0", + "sockjs-client": "^1.4.0", + "type-fest": ">=0.17.0 <5.0.0", + "webpack": ">=4.43.0 <6.0.0", + "webpack-dev-server": "3.x || 4.x", + "webpack-hot-middleware": "2.x", + "webpack-plugin-serve": "0.x || 1.x" + }, + "peerDependenciesMeta": { + "@types/webpack": { + "optional": true + }, + "sockjs-client": { + "optional": true + }, + "type-fest": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + }, + "webpack-hot-middleware": { + "optional": true + }, + "webpack-plugin-serve": { + "optional": true + } + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", + "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", + "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@remix-run/router": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.3.tgz", + "integrity": "sha512-Oy8rmScVrVxWZVOpEF57ovlnhpZ8CCPlnIIumVcV9nFdiSIrus99+Lw78ekXyGvVDlIsFJbSfmSovJUhCWYV3w==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.2.tgz", + "integrity": "sha512-hw437iINopmQuxWPSUEvqE56NCPsiU8N4AYtfHmJFckclktzK9YQJieD3XkDCDH4OjL+C7zgPUh73R/nrcHrqw==" + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@storybook/addon-actions": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.0.8.tgz", + "integrity": "sha512-F3qpN0n53d058EroW1A2IlzrsFNR5p2srLY4FmXB80nxAKV8oqoDI4jp15zYlf8ThcJoQl36plT8gx3r1BpANA==", + "dev": true, + "dependencies": { + "@storybook/core-events": "8.0.8", + "@storybook/global": "^5.0.0", + "@types/uuid": "^9.0.1", + "dequal": "^2.0.2", + "polished": "^4.2.2", + "uuid": "^9.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-actions/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@storybook/addon-backgrounds": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.0.8.tgz", + "integrity": "sha512-lrAJjVxDeXSK116rDajb56TureZiT76ygraP22/IvU3IcWCEcRiKYwlay8WgCTbJHtFmdBpelLBapoT46+IR9Q==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0", + "memoizerific": "^1.11.3", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-controls": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.0.8.tgz", + "integrity": "sha512-7xANN18CLYsVthuSXwxKezqpelEKJlT9xaYLtw5vvD00btW5g3vxq+Z/A31OkS2OuaH2bE0GfRCoG2OLR8yQQA==", + "dev": true, + "dependencies": { + "@storybook/blocks": "8.0.8", + "lodash": "^4.17.21", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-docs": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.0.8.tgz", + "integrity": "sha512-HNiY4ESH9WxGS6QpIpURzdSbyDxbRh7VIgbvUrePSKajlsL4RFN/gdnn5TnSL00tOP/w+Cy/fXcbljMUKy7Ivg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@mdx-js/react": "^3.0.0", + "@storybook/blocks": "8.0.8", + "@storybook/client-logger": "8.0.8", + "@storybook/components": "8.0.8", + "@storybook/csf-plugin": "8.0.8", + "@storybook/csf-tools": "8.0.8", + "@storybook/global": "^5.0.0", + "@storybook/node-logger": "8.0.8", + "@storybook/preview-api": "8.0.8", + "@storybook/react-dom-shim": "8.0.8", + "@storybook/theming": "8.0.8", + "@storybook/types": "8.0.8", + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "fs-extra": "^11.1.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", + "rehype-external-links": "^3.0.0", + "rehype-slug": "^6.0.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-docs/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@storybook/addon-essentials": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.0.8.tgz", + "integrity": "sha512-bc9KJk7SPM2I5CCJEAP8R5leP+74IYxhWPiTN8Y1YFmf3MA1lpDJbwy+RfuRZ2ZKnSKszCXCVzU/T10HKUHLZw==", + "dev": true, + "dependencies": { + "@storybook/addon-actions": "8.0.8", + "@storybook/addon-backgrounds": "8.0.8", + "@storybook/addon-controls": "8.0.8", + "@storybook/addon-docs": "8.0.8", + "@storybook/addon-highlight": "8.0.8", + "@storybook/addon-measure": "8.0.8", + "@storybook/addon-outline": "8.0.8", + "@storybook/addon-toolbars": "8.0.8", + "@storybook/addon-viewport": "8.0.8", + "@storybook/core-common": "8.0.8", + "@storybook/manager-api": "8.0.8", + "@storybook/node-logger": "8.0.8", + "@storybook/preview-api": "8.0.8", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-highlight": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.0.8.tgz", + "integrity": "sha512-KKD7xiNhxZQM4fdDidtcla6jSzgN1f9qe1AwFSHLXwIW22+4c97Vgf+AookN7cJvB77HxRUnvQH//zV1CJEDug==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-interactions": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-interactions/-/addon-interactions-8.0.8.tgz", + "integrity": "sha512-UOPKOe97uV4psH1O1YeE0oFuUQgD1Vkv95JjHjQG8KiPWvwdiezV7rrjPvw8RApnSKUopjFETs8F5D59i4eARw==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0", + "@storybook/instrumenter": "8.0.8", + "@storybook/test": "8.0.8", + "@storybook/types": "8.0.8", + "polished": "^4.2.2", + "ts-dedent": "^2.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-links": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-8.0.8.tgz", + "integrity": "sha512-iRI/W9I6fOom5zfZvsu53gfJtuhBSMmhgI/u5uZbAbfEoNL5D1PqpDXD4ygM8Vvlx90AZNZ2W5slEe7gCZOMyA==", + "dev": true, + "dependencies": { + "@storybook/csf": "^0.1.2", + "@storybook/global": "^5.0.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + } + } + }, + "node_modules/@storybook/addon-measure": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.0.8.tgz", + "integrity": "sha512-akyoa+1F2ripV6ELF2UbxiSHv791LWSAVK7gsD/a5eJfKZMm5yoHjcY7Icdkc/ctE+pyjAQNhkXTixUngge09w==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0", + "tiny-invariant": "^1.3.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-onboarding": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-onboarding/-/addon-onboarding-8.0.8.tgz", + "integrity": "sha512-dgZuoITOYRcZSBtTGQTQKXoUTuxjUH0WRcYxiZUCQBEUGnXnMbThDz6eFhq9QC0YWLYwyHjo5iAUpnEvBNpb3A==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-outline": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.0.8.tgz", + "integrity": "sha512-8Gxs095ekpa5YZolLSs5cWbWK94GZTevEUX8GFeLGIz9sf1KO3kmEO3eC5ogzDoB0cloqvbmVAJvYJ3FWiUx8w==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-toolbars": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.0.8.tgz", + "integrity": "sha512-PZxlK+/Fwk2xcrpr5kkXYjCbBaEjAWcEHWq7mhQReMFaAs5AJE8dvmeQ7rmPDOHnlg4+YsARDFKz5FJtthRIgg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/addon-viewport": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.0.8.tgz", + "integrity": "sha512-nOuc6DquGvm24c/A0HFTgeEN/opd58ebs1KLaEEq1f6iYV0hT2Gpnk0Usg/seOiFtJnj3NyAM46HSkZz06T8Sw==", + "dev": true, + "dependencies": { + "memoizerific": "^1.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/blocks": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.0.8.tgz", + "integrity": "sha512-kwsjhvnmFEaIl51QHJt/83G7mZ5YbzFKnWCwy8WUpi0xvVcyoFQSGGgwR3XRrzGfUEPK8P2FDHeKw1bLzyIejA==", + "dev": true, + "dependencies": { + "@storybook/channels": "8.0.8", + "@storybook/client-logger": "8.0.8", + "@storybook/components": "8.0.8", + "@storybook/core-events": "8.0.8", + "@storybook/csf": "^0.1.2", + "@storybook/docs-tools": "8.0.8", + "@storybook/global": "^5.0.0", + "@storybook/icons": "^1.2.5", + "@storybook/manager-api": "8.0.8", + "@storybook/preview-api": "8.0.8", + "@storybook/theming": "8.0.8", + "@storybook/types": "8.0.8", + "@types/lodash": "^4.14.167", + "color-convert": "^2.0.1", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "markdown-to-jsx": "7.3.2", + "memoizerific": "^1.11.3", + "polished": "^4.2.2", + "react-colorful": "^5.1.2", + "telejson": "^7.2.0", + "tocbot": "^4.20.1", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@storybook/blocks/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@storybook/blocks/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 + }, + "node_modules/@storybook/builder-manager": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-8.0.8.tgz", + "integrity": "sha512-0uihNTpTou0RFMM6PQLlfCxDxse9nIDEb83AmWE/OUnpKDDY9+WFupVWGaZc9HfH9h4Yqre2fiuK1b7KNYe7AQ==", + "dev": true, + "dependencies": { + "@fal-works/esbuild-plugin-global-externals": "^2.1.2", + "@storybook/core-common": "8.0.8", + "@storybook/manager": "8.0.8", + "@storybook/node-logger": "8.0.8", + "@types/ejs": "^3.1.1", + "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", + "browser-assert": "^1.2.1", + "ejs": "^3.1.8", + "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0", + "esbuild-plugin-alias": "^0.2.1", + "express": "^4.17.3", + "fs-extra": "^11.1.0", + "process": "^0.11.10", + "util": "^0.12.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/builder-manager/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@storybook/builder-webpack5": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/builder-webpack5/-/builder-webpack5-8.0.8.tgz", + "integrity": "sha512-NG7XHNSZ0+1DtHYhE36vDtXlZHVUUjC0TqqYQ3+On6Ormih80MndbmPjL6XhfleES8YzG28MhNePdOY867rehg==", + "dev": true, + "dependencies": { + "@storybook/channels": "8.0.8", + "@storybook/client-logger": "8.0.8", + "@storybook/core-common": "8.0.8", + "@storybook/core-events": "8.0.8", + "@storybook/core-webpack": "8.0.8", + "@storybook/node-logger": "8.0.8", + "@storybook/preview": "8.0.8", + "@storybook/preview-api": "8.0.8", + "@types/node": "^18.0.0", + "@types/semver": "^7.3.4", + "browser-assert": "^1.2.1", + "case-sensitive-paths-webpack-plugin": "^2.4.0", + "cjs-module-lexer": "^1.2.3", + "constants-browserify": "^1.0.0", + "css-loader": "^6.7.1", + "es-module-lexer": "^1.4.1", + "express": "^4.17.3", + "fork-ts-checker-webpack-plugin": "^8.0.0", + "fs-extra": "^11.1.0", + "html-webpack-plugin": "^5.5.0", + "magic-string": "^0.30.5", + "path-browserify": "^1.0.1", + "process": "^0.11.10", + "semver": "^7.3.7", + "style-loader": "^3.3.1", + "terser-webpack-plugin": "^5.3.1", + "ts-dedent": "^2.0.0", + "url": "^0.11.0", + "util": "^0.12.4", + "util-deprecate": "^1.0.2", + "webpack": "5", + "webpack-dev-middleware": "^6.1.2", + "webpack-hot-middleware": "^2.25.1", + "webpack-virtual-modules": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@storybook/builder-webpack5/node_modules/@types/node": { + "version": "18.19.31", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.31.tgz", + "integrity": "sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@storybook/builder-webpack5/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@storybook/builder-webpack5/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/@storybook/builder-webpack5/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/builder-webpack5/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, + "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/@storybook/builder-webpack5/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@storybook/builder-webpack5/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 + }, + "node_modules/@storybook/builder-webpack5/node_modules/fork-ts-checker-webpack-plugin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-8.0.0.tgz", + "integrity": "sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "fs-extra": "^10.0.0", + "memfs": "^3.4.1", + "minimatch": "^3.0.4", + "node-abort-controller": "^3.0.1", + "schema-utils": "^3.1.1", + "semver": "^7.3.5", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">=12.13.0", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "typescript": ">3.6.0", + "webpack": "^5.11.0" + } + }, + "node_modules/@storybook/builder-webpack5/node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@storybook/builder-webpack5/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@storybook/builder-webpack5/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/builder-webpack5/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/@storybook/builder-webpack5/node_modules/magic-string": { + "version": "0.30.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.9.tgz", + "integrity": "sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@storybook/builder-webpack5/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/builder-webpack5/node_modules/webpack-dev-middleware": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.3.tgz", + "integrity": "sha512-A4ChP0Qj8oGociTs6UdlRUGANIGrCDL3y+pmQMc+dSsraXHCatFpmMey4mYELA+juqwUqwQsUgJJISXl1KWmiw==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.12", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/@storybook/builder-webpack5/node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/@storybook/channels": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-8.0.8.tgz", + "integrity": "sha512-L3EGVkabv3fweXnykD/GlNUDO5HtwlIfSovC7BF4MmP7662j2/eqlZrJxDojGtbv11XHjWp/UJHUIfKpcHXYjQ==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "8.0.8", + "@storybook/core-events": "8.0.8", + "@storybook/global": "^5.0.0", + "telejson": "^7.2.0", + "tiny-invariant": "^1.3.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/cli": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-8.0.8.tgz", + "integrity": "sha512-RnSdgykh2i7es1rQ7CNGpDrKK/PN1f0xjwpkAHXCEB6T9KpHBmqDquzZp+N127a1HBHHXy018yi4wT8mSQyEoA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.0", + "@babel/types": "^7.23.0", + "@ndelangen/get-tarball": "^3.0.7", + "@storybook/codemod": "8.0.8", + "@storybook/core-common": "8.0.8", + "@storybook/core-events": "8.0.8", + "@storybook/core-server": "8.0.8", + "@storybook/csf-tools": "8.0.8", + "@storybook/node-logger": "8.0.8", + "@storybook/telemetry": "8.0.8", + "@storybook/types": "8.0.8", + "@types/semver": "^7.3.4", + "@yarnpkg/fslib": "2.10.3", + "@yarnpkg/libzip": "2.3.0", + "chalk": "^4.1.0", + "commander": "^6.2.1", + "cross-spawn": "^7.0.3", + "detect-indent": "^6.1.0", + "envinfo": "^7.7.3", + "execa": "^5.0.0", + "find-up": "^5.0.0", + "fs-extra": "^11.1.0", + "get-npm-tarball-url": "^2.0.3", + "giget": "^1.0.0", + "globby": "^11.0.2", + "jscodeshift": "^0.15.1", + "leven": "^3.1.0", + "ora": "^5.4.1", + "prettier": "^3.1.1", + "prompts": "^2.4.0", + "read-pkg-up": "^7.0.1", + "semver": "^7.3.7", + "strip-json-comments": "^3.0.1", + "tempy": "^1.0.1", + "tiny-invariant": "^1.3.1", + "ts-dedent": "^2.0.0" + }, + "bin": { + "getstorybook": "bin/index.js", + "sb": "bin/index.js" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/cli/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/cli/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, + "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/@storybook/cli/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@storybook/cli/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 + }, + "node_modules/@storybook/cli/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@storybook/cli/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@storybook/cli/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/cli/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/cli/node_modules/tempy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.1.tgz", + "integrity": "sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==", + "dev": true, + "dependencies": { + "del": "^6.0.0", + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@storybook/cli/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@storybook/client-logger": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-8.0.8.tgz", + "integrity": "sha512-a4BKwl9NLFcuRgMyI7S4SsJeLFK0LCQxIy76V6YyrE1DigoXz4nA4eQxdjLf7JVvU0EZFmNSfbVL/bXzzWKNXA==", + "dev": true, + "dependencies": { + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/codemod": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-8.0.8.tgz", + "integrity": "sha512-ufEBLciLmLlAh+L6lGgBObTiny6odXMKqiJOewQ9XfIN0wdWdyRUf5QdZIPOdfgHhWF2Q2HeswiulsoHm8Z/hA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.2", + "@babel/preset-env": "^7.23.2", + "@babel/types": "^7.23.0", + "@storybook/csf": "^0.1.2", + "@storybook/csf-tools": "8.0.8", + "@storybook/node-logger": "8.0.8", + "@storybook/types": "8.0.8", + "@types/cross-spawn": "^6.0.2", + "cross-spawn": "^7.0.3", + "globby": "^11.0.2", + "jscodeshift": "^0.15.1", + "lodash": "^4.17.21", + "prettier": "^3.1.1", + "recast": "^0.23.5", + "tiny-invariant": "^1.3.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/components": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.0.8.tgz", + "integrity": "sha512-EpBExH4kHWQJSfA8QXJJ5AsLRUGi5X/zWY7ffiYW8rtnBmEnk3T9FpmnyJlY1A8sdd3b1wQ07JGBDHfL1mdELw==", + "dev": true, + "dependencies": { + "@radix-ui/react-slot": "^1.0.2", + "@storybook/client-logger": "8.0.8", + "@storybook/csf": "^0.1.2", + "@storybook/global": "^5.0.0", + "@storybook/icons": "^1.2.5", + "@storybook/theming": "8.0.8", + "@storybook/types": "8.0.8", + "memoizerific": "^1.11.3", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/core-common": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-8.0.8.tgz", + "integrity": "sha512-CL15M2oeQW+Rb1l7ciunLDI2Re+ojL2lX1ZFAiDedcOU+JHsdq43zAuXoZVzp8icUi2AUSwEjZIxGCSingj+JQ==", + "dev": true, + "dependencies": { + "@storybook/core-events": "8.0.8", + "@storybook/csf-tools": "8.0.8", + "@storybook/node-logger": "8.0.8", + "@storybook/types": "8.0.8", + "@yarnpkg/fslib": "2.10.3", + "@yarnpkg/libzip": "2.3.0", + "chalk": "^4.1.0", + "cross-spawn": "^7.0.3", + "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0", + "esbuild-register": "^3.5.0", + "execa": "^5.0.0", + "file-system-cache": "2.3.0", + "find-cache-dir": "^3.0.0", + "find-up": "^5.0.0", + "fs-extra": "^11.1.0", + "glob": "^10.0.0", + "handlebars": "^4.7.7", + "lazy-universal-dotenv": "^4.0.0", + "node-fetch": "^2.0.0", + "picomatch": "^2.3.0", + "pkg-dir": "^5.0.0", + "pretty-hrtime": "^1.0.3", + "resolve-from": "^5.0.0", + "semver": "^7.3.7", + "tempy": "^1.0.1", + "tiny-invariant": "^1.3.1", + "ts-dedent": "^2.0.0", + "util": "^0.12.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/core-common/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/core-common/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@storybook/core-common/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, + "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/@storybook/core-common/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@storybook/core-common/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 + }, + "node_modules/@storybook/core-common/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@storybook/core-common/node_modules/glob": { + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@storybook/core-common/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/core-common/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@storybook/core-common/node_modules/pkg-dir": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "dev": true, + "dependencies": { + "find-up": "^5.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/core-common/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/core-common/node_modules/tempy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.1.tgz", + "integrity": "sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==", + "dev": true, + "dependencies": { + "del": "^6.0.0", + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@storybook/core-common/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@storybook/core-events": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-8.0.8.tgz", + "integrity": "sha512-PtuvR7vS4glDEdCfKB4f1k3Vs1C3rTWP2DNbF+IjjPhNLMBznCdzTAPcz+NUIBvpjjGnhKwWikJ0yj931YjSVg==", + "dev": true, + "dependencies": { + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/core-server": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-8.0.8.tgz", + "integrity": "sha512-tSEueEBttbSohzhZVN2bFNlFx3eoqQ7p57cjQLKXXwKygS2qKxISKnFy+Y0nj20APz68Wj51kx0rN0nGALeegw==", + "dev": true, + "dependencies": { + "@aw-web-design/x-default-browser": "1.4.126", + "@babel/core": "^7.23.9", + "@discoveryjs/json-ext": "^0.5.3", + "@storybook/builder-manager": "8.0.8", + "@storybook/channels": "8.0.8", + "@storybook/core-common": "8.0.8", + "@storybook/core-events": "8.0.8", + "@storybook/csf": "^0.1.2", + "@storybook/csf-tools": "8.0.8", + "@storybook/docs-mdx": "3.0.0", + "@storybook/global": "^5.0.0", + "@storybook/manager": "8.0.8", + "@storybook/manager-api": "8.0.8", + "@storybook/node-logger": "8.0.8", + "@storybook/preview-api": "8.0.8", + "@storybook/telemetry": "8.0.8", + "@storybook/types": "8.0.8", + "@types/detect-port": "^1.3.0", + "@types/node": "^18.0.0", + "@types/pretty-hrtime": "^1.0.0", + "@types/semver": "^7.3.4", + "better-opn": "^3.0.2", + "chalk": "^4.1.0", + "cli-table3": "^0.6.1", + "compression": "^1.7.4", + "detect-port": "^1.3.0", + "express": "^4.17.3", + "fs-extra": "^11.1.0", + "globby": "^11.0.2", + "ip": "^2.0.1", + "lodash": "^4.17.21", + "open": "^8.4.0", + "pretty-hrtime": "^1.0.3", + "prompts": "^2.4.0", + "read-pkg-up": "^7.0.1", + "semver": "^7.3.7", + "telejson": "^7.2.0", + "tiny-invariant": "^1.3.1", + "ts-dedent": "^2.0.0", + "util": "^0.12.4", + "util-deprecate": "^1.0.2", + "watchpack": "^2.2.0", + "ws": "^8.2.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/core-server/node_modules/@types/node": { + "version": "18.19.31", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.31.tgz", + "integrity": "sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@storybook/core-server/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/core-server/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, + "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/@storybook/core-server/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@storybook/core-server/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 + }, + "node_modules/@storybook/core-server/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@storybook/core-server/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/core-server/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/core-server/node_modules/ws": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@storybook/core-webpack": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/core-webpack/-/core-webpack-8.0.8.tgz", + "integrity": "sha512-wt7Ty2/aVAWSYbtXkpJ/oCi+NKc2SVrZVqqsasdt9IjAS4LTATZ89Ku0u1FKI61OhZbckVXBW5bPXJYibCK24Q==", + "dev": true, + "dependencies": { + "@storybook/core-common": "8.0.8", + "@storybook/node-logger": "8.0.8", + "@storybook/types": "8.0.8", + "@types/node": "^18.0.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/core-webpack/node_modules/@types/node": { + "version": "18.19.31", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.31.tgz", + "integrity": "sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@storybook/csf": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.4.tgz", + "integrity": "sha512-B9UI/lsQMjF+oEfZCI6YXNoeuBcGZoOP5x8yKbe2tIEmsMjSztFKkpPzi5nLCnBk/MBtl6QJeI3ksJnbsWPkOw==", + "dev": true, + "dependencies": { + "type-fest": "^2.19.0" + } + }, + "node_modules/@storybook/csf-plugin": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.0.8.tgz", + "integrity": "sha512-x9WspjZGcqXENj/Vn4Qmn0oTW93KN2V9wqpflWwCUJTByl2MugQsh5xRuDbs2yM7dD6zKcqRyPaTY+GFZBW+Vg==", + "dev": true, + "dependencies": { + "@storybook/csf-tools": "8.0.8", + "unplugin": "^1.3.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/csf-tools": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-8.0.8.tgz", + "integrity": "sha512-Ji5fpoGym/MSyHJ6ALghVUUecwhEbN0On+jOZ2VPkrkATi9UDtryHQPdF60HKR63Iv53xRuWRzudB6zm43RTzw==", + "dev": true, + "dependencies": { + "@babel/generator": "^7.23.0", + "@babel/parser": "^7.23.0", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0", + "@storybook/csf": "^0.1.2", + "@storybook/types": "8.0.8", + "fs-extra": "^11.1.0", + "recast": "^0.23.5", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/csf-tools/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@storybook/csf/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==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@storybook/docs-mdx": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@storybook/docs-mdx/-/docs-mdx-3.0.0.tgz", + "integrity": "sha512-NmiGXl2HU33zpwTv1XORe9XG9H+dRUC1Jl11u92L4xr062pZtrShLmD4VKIsOQujxhhOrbxpwhNOt+6TdhyIdQ==", + "dev": true + }, + "node_modules/@storybook/docs-tools": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-8.0.8.tgz", + "integrity": "sha512-p/MIrDshXMl/fiCRlfG9StkRYI1QlUyUSQQ/YDBFlBfWcJYARIt3TIvQyvs3Q/apnQNcDXIW663W57s7WHTO2w==", + "dev": true, + "dependencies": { + "@storybook/core-common": "8.0.8", + "@storybook/preview-api": "8.0.8", + "@storybook/types": "8.0.8", + "@types/doctrine": "^0.0.3", + "assert": "^2.1.0", + "doctrine": "^3.0.0", + "lodash": "^4.17.21" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/expect": { + "version": "28.1.3-5", + "resolved": "https://registry.npmjs.org/@storybook/expect/-/expect-28.1.3-5.tgz", + "integrity": "sha512-lS1oJnY1qTAxnH87C765NdfvGhksA6hBcbUVI5CHiSbNsEtr456wtg/z+dT9XlPriq1D5t2SgfNL9dBAoIGyIA==", + "dependencies": { + "@types/jest": "28.1.3" + } + }, + "node_modules/@storybook/expect/node_modules/@types/jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.3.tgz", + "integrity": "sha512-Tsbjk8Y2hkBaY/gJsataeb4q9Mubw9EOz7+4RjPkzD5KjTvHHs7cpws22InaoXxAVAhF5HfFbzJjo6oKWqSZLw==", + "dependencies": { + "jest-matcher-utils": "^28.0.0", + "pretty-format": "^28.0.0" + } + }, + "node_modules/@storybook/expect/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/expect/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/@storybook/expect/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@storybook/expect/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==" + }, + "node_modules/@storybook/expect/node_modules/diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@storybook/expect/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/expect/node_modules/jest-diff": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", + "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@storybook/expect/node_modules/jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@storybook/expect/node_modules/jest-matcher-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", + "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@storybook/expect/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@storybook/expect/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/expect/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/@storybook/expect/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/global": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@storybook/global/-/global-5.0.0.tgz", + "integrity": "sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==", + "dev": true + }, + "node_modules/@storybook/icons": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-1.2.9.tgz", + "integrity": "sha512-cOmylsz25SYXaJL/gvTk/dl3pyk7yBFRfeXTsHvTA3dfhoU/LWSq0NKL9nM7WBasJyn6XPSGnLS4RtKXLw5EUg==", + "dev": true, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/instrumenter": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-8.0.8.tgz", + "integrity": "sha512-bCu9Tu48WOQ8ZNUed+FCSMr3Uw81b4yW/knD2goqx15nD33B7xXBNSI2GTHH5YaEHVyIFFggQcKHLkELXWlsoA==", + "dev": true, + "dependencies": { + "@storybook/channels": "8.0.8", + "@storybook/client-logger": "8.0.8", + "@storybook/core-events": "8.0.8", + "@storybook/global": "^5.0.0", + "@storybook/preview-api": "8.0.8", + "@vitest/utils": "^1.3.1", + "util": "^0.12.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/jest": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@storybook/jest/-/jest-0.2.3.tgz", + "integrity": "sha512-ov5izrmbAFObzKeh9AOC5MlmFxAcf0o5i6YFGae9sDx6DGh6alXsRM+chIbucVkUwVHVlSzdfbLDEFGY/ShaYw==", + "deprecated": "In Storybook 8, this package functionality has been integrated to a new package called @storybook/test, which uses Vitest APIs for an improved experience. When upgrading to Storybook 8 with 'npx storybook@latest upgrade', you will get prompted and will get an automigration for the new package. Please migrate when you can.", + "dependencies": { + "@storybook/expect": "storybook-jest", + "@testing-library/jest-dom": "^6.1.2", + "@types/jest": "28.1.3", + "jest-mock": "^27.3.0" + } + }, + "node_modules/@storybook/jest/node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@storybook/jest/node_modules/@jest/core/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/jest/node_modules/@jest/core/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/@jest/environment/node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/@jest/fake-timers/node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/@jest/globals/node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "optional": true, + "peer": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@storybook/jest/node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "optional": true, + "peer": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "optional": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "optional": true, + "peer": true + }, + "node_modules/@storybook/jest/node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "optional": true, + "peer": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@storybook/jest/node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "optional": true, + "peer": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/@testing-library/jest-dom": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.4.2.tgz", + "integrity": "sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw==", + "dependencies": { + "@adobe/css-tools": "^4.3.2", + "@babel/runtime": "^7.9.2", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + }, + "peerDependencies": { + "@jest/globals": ">= 28", + "@types/bun": "latest", + "@types/jest": ">= 28", + "jest": ">= 28", + "vitest": ">= 0.32" + }, + "peerDependenciesMeta": { + "@jest/globals": { + "optional": true + }, + "@types/bun": { + "optional": true + }, + "@types/jest": { + "optional": true + }, + "jest": { + "optional": true + }, + "vitest": { + "optional": true + } + } + }, + "node_modules/@storybook/jest/node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/jest/node_modules/@types/jest": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.3.tgz", + "integrity": "sha512-Tsbjk8Y2hkBaY/gJsataeb4q9Mubw9EOz7+4RjPkzD5KjTvHHs7cpws22InaoXxAVAhF5HfFbzJjo6oKWqSZLw==", + "dependencies": { + "jest-matcher-utils": "^28.0.0", + "pretty-format": "^28.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "optional": true, + "peer": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@storybook/jest/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/jest/node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/@storybook/jest/node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "optional": true, + "peer": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "optional": true, + "peer": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/@storybook/jest/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "optional": true, + "peer": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@storybook/jest/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@storybook/jest/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==" + }, + "node_modules/@storybook/jest/node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "optional": true, + "peer": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/@storybook/jest/node_modules/diff-sequences": { + "version": "28.1.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==" + }, + "node_modules/@storybook/jest/node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "optional": true, + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/@storybook/jest/node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/expect/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/jest/node_modules/expect/node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "optional": true, + "peer": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/expect/node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "optional": true, + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/expect/node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "optional": true, + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/expect/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/jest/node_modules/istanbul-lib-instrument": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", + "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", + "optional": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/jest/node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@storybook/jest/node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "optional": true, + "peer": true, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-circus/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/jest/node_modules/jest-circus/node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "optional": true, + "peer": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-circus/node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "optional": true, + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-circus/node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "optional": true, + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-circus/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@storybook/jest/node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "optional": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/@storybook/jest/node_modules/jest-config/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/jest/node_modules/jest-config/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-diff": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", + "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^28.1.1", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-diff/node_modules/jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "optional": true, + "peer": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-each/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/jest/node_modules/jest-each/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-environment-node/node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "optional": true, + "peer": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/@storybook/jest/node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "optional": true, + "peer": true, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-leak-detector/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/jest/node_modules/jest-leak-detector/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-matcher-utils": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", + "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^28.1.3", + "jest-get-type": "^28.0.2", + "pretty-format": "^28.1.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-matcher-utils/node_modules/jest-get-type": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "optional": true, + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/jest/node_modules/jest-message-util/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "optional": true, + "peer": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "optional": true, + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "optional": true, + "peer": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-runtime/node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "optional": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/jest/node_modules/jest-snapshot/node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "optional": true, + "peer": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-snapshot/node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "optional": true, + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-snapshot/node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "optional": true, + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-snapshot/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-validate/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/jest/node_modules/jest-validate/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "optional": true, + "peer": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "optional": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/@storybook/jest/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/pretty-format/node_modules/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/pretty-format/node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" + }, + "node_modules/@storybook/jest/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/jest/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/@storybook/jest/node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/jest/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@storybook/jest/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "optional": true, + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/@storybook/jest/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/jest/node_modules/v8-to-istanbul": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/@storybook/jest/node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "optional": true, + "peer": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@storybook/jest/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "optional": true, + "peer": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@storybook/jest/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "optional": true, + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@storybook/manager": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-8.0.8.tgz", + "integrity": "sha512-pWYHSDmgT8p/XbQMKuDPdgB6KzjePI6dU5KQ5MERYfch1UiuGPVm1HHDlxxSfHW0IIXw9Qnwq4L0Awe4qhvJKQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/manager-api": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.0.8.tgz", + "integrity": "sha512-1HU4nfLRi0sD2uw229gb8EQyufNWrLvMNpg013kBsBXRd+Dj4dqF3v+KrYFNtteY7riC4mAJ6YcQ4tBUNYZDug==", + "dev": true, + "dependencies": { + "@storybook/channels": "8.0.8", + "@storybook/client-logger": "8.0.8", + "@storybook/core-events": "8.0.8", + "@storybook/csf": "^0.1.2", + "@storybook/global": "^5.0.0", + "@storybook/icons": "^1.2.5", + "@storybook/router": "8.0.8", + "@storybook/theming": "8.0.8", + "@storybook/types": "8.0.8", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "store2": "^2.14.2", + "telejson": "^7.2.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/node-logger": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-8.0.8.tgz", + "integrity": "sha512-ymps3MMTxtMWq0eDiXk1iO7iv0Eg0PuUvOpPPohEJauGzU9THv81xx01aaHKSprFFJYD2LMQr1aFuUplItO12g==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/preset-create-react-app": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/preset-create-react-app/-/preset-create-react-app-8.0.8.tgz", + "integrity": "sha512-CR7Mxdq9Cn4u9nDkQU+/4kbAUYmImQvxMPa2lQP+T33Ib0Xh9Z4NSArCl1Gmb2pfSOI/4ofEIFO+FN99mUfX+g==", + "dev": true, + "dependencies": { + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.1", + "@storybook/types": "8.0.8", + "@types/semver": "^7.5.6", + "pnp-webpack-plugin": "^1.7.0", + "semver": "^7.5.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react-scripts": ">=5.0.0" + } + }, + "node_modules/@storybook/preset-react-webpack": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/preset-react-webpack/-/preset-react-webpack-8.0.8.tgz", + "integrity": "sha512-ucdSQWE3VzleDprd5pmVbUbPPfkU9yLYvJ9pOO4XZngPY4fZdL3vWMsjhBL/PPs2tQ+pC3s6rWnrOqkSMmJ+7w==", + "dev": true, + "dependencies": { + "@storybook/core-webpack": "8.0.8", + "@storybook/docs-tools": "8.0.8", + "@storybook/node-logger": "8.0.8", + "@storybook/react": "8.0.8", + "@storybook/react-docgen-typescript-plugin": "1.0.6--canary.9.0c3f3b7.0", + "@types/node": "^18.0.0", + "@types/semver": "^7.3.4", + "find-up": "^5.0.0", + "fs-extra": "^11.1.0", + "magic-string": "^0.30.5", + "react-docgen": "^7.0.0", + "resolve": "^1.22.8", + "semver": "^7.3.7", + "tsconfig-paths": "^4.2.0", + "webpack": "5" + }, + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@storybook/preset-react-webpack/node_modules/@types/node": { + "version": "18.19.31", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.31.tgz", + "integrity": "sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@storybook/preset-react-webpack/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@storybook/preset-react-webpack/node_modules/magic-string": { + "version": "0.30.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.9.tgz", + "integrity": "sha512-S1+hd+dIrC8EZqKyT9DstTH/0Z+f76kmmvZnkfQVmOpDEF9iVgdYif3Q/pIWHmCoo59bQVGW0kVL3e2nl+9+Sw==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@storybook/preset-react-webpack/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@storybook/preset-react-webpack/node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dev": true, + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@storybook/preview": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-8.0.8.tgz", + "integrity": "sha512-J/ooKcvDV1s7ROH7lF/0vOyWDOgDB7bN6vS67J1WK0HLvMGaqUzU+q3ndakGzu0LU/jvUBqEFSZd1ALWyZINDQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/preview-api": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.0.8.tgz", + "integrity": "sha512-khgw2mNiBrSZS3KNGQPzjneL3Csh3BOq0yLAtJpT7CRSrI/YjlE7jjcTkKzoxW+UCgvNTnLvsowcuzu82e69fA==", + "dev": true, + "dependencies": { + "@storybook/channels": "8.0.8", + "@storybook/client-logger": "8.0.8", + "@storybook/core-events": "8.0.8", + "@storybook/csf": "^0.1.2", + "@storybook/global": "^5.0.0", + "@storybook/types": "8.0.8", + "@types/qs": "^6.9.5", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "memoizerific": "^1.11.3", + "qs": "^6.10.0", + "tiny-invariant": "^1.3.1", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/react": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/react/-/react-8.0.8.tgz", + "integrity": "sha512-pPTlQntl09kv7qkAFYsxUq6qCLeeZC/K3yGFBGMy2Dc+PFjBYdT6mt2I8GB3twK0Cq5gJESlLj48QnYLQ/9PbA==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "8.0.8", + "@storybook/docs-tools": "8.0.8", + "@storybook/global": "^5.0.0", + "@storybook/preview-api": "8.0.8", + "@storybook/react-dom-shim": "8.0.8", + "@storybook/types": "8.0.8", + "@types/escodegen": "^0.0.6", + "@types/estree": "^0.0.51", + "@types/node": "^18.0.0", + "acorn": "^7.4.1", + "acorn-jsx": "^5.3.1", + "acorn-walk": "^7.2.0", + "escodegen": "^2.1.0", + "html-tags": "^3.1.0", + "lodash": "^4.17.21", + "prop-types": "^15.7.2", + "react-element-to-jsx-string": "^15.0.0", + "semver": "^7.3.7", + "ts-dedent": "^2.0.0", + "type-fest": "~2.19", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", + "typescript": ">= 4.2.x" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@storybook/react-docgen-typescript-plugin": { + "version": "1.0.6--canary.9.0c3f3b7.0", + "resolved": "https://registry.npmjs.org/@storybook/react-docgen-typescript-plugin/-/react-docgen-typescript-plugin-1.0.6--canary.9.0c3f3b7.0.tgz", + "integrity": "sha512-KUqXC3oa9JuQ0kZJLBhVdS4lOneKTOopnNBK4tUAgoxWQ3u/IjzdueZjFr7gyBrXMoU6duutk3RQR9u8ZpYJ4Q==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "endent": "^2.0.1", + "find-cache-dir": "^3.3.1", + "flat-cache": "^3.0.4", + "micromatch": "^4.0.2", + "react-docgen-typescript": "^2.2.2", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "typescript": ">= 4.x", + "webpack": ">= 4" + } + }, + "node_modules/@storybook/react-dom-shim": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.0.8.tgz", + "integrity": "sha512-vOMlAz2HH/xfgZmSO28fCEmp5/tPxINDEdBDVLdZeYG6R1j5jlMRyaNcXt4cPNDkyc///PkB/K767hg4goca/Q==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@storybook/react-webpack5": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/react-webpack5/-/react-webpack5-8.0.8.tgz", + "integrity": "sha512-7K2hsT2H9B746bxrcFzIfbbaRajWkeZfeL7W8coSODpTUjC78Dno2bZO5FE3O0HdnbhJe2jJhDpJKVhFR0MKiQ==", + "dev": true, + "dependencies": { + "@storybook/builder-webpack5": "8.0.8", + "@storybook/preset-react-webpack": "8.0.8", + "@storybook/react": "8.0.8", + "@types/node": "^18.0.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", + "typescript": ">= 4.2.x" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@storybook/react-webpack5/node_modules/@types/node": { + "version": "18.19.31", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.31.tgz", + "integrity": "sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@storybook/react/node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "node_modules/@storybook/react/node_modules/@types/node": { + "version": "18.19.31", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.31.tgz", + "integrity": "sha512-ArgCD39YpyyrtFKIqMDvjz79jto5fcI/SVUs2HwB+f0dAzq68yqOdyaSivLiLugSziTpNXLQrVb7RZFmdZzbhA==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@storybook/react/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/@storybook/react/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==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@storybook/router": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-8.0.8.tgz", + "integrity": "sha512-wdFdNsEKweigU9VkGZtpb7GhBJLWzbABcwOuEy2h0d5m7egB97hy9BxhANdqkC+PbAHrabxC99Ca3wTj50MoDg==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "8.0.8", + "memoizerific": "^1.11.3", + "qs": "^6.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/telemetry": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-8.0.8.tgz", + "integrity": "sha512-Uvj4nN01vQgjXZYKF/GKTFE85//Qm4ZTlJxTFWid+oYWc8NpAyJvlsJkj/dsEn4cLrgnJx2e4xvnx0Umr2ck+A==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "8.0.8", + "@storybook/core-common": "8.0.8", + "@storybook/csf-tools": "8.0.8", + "chalk": "^4.1.0", + "detect-package-manager": "^2.0.1", + "fetch-retry": "^5.0.2", + "fs-extra": "^11.1.0", + "read-pkg-up": "^7.0.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/telemetry/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/telemetry/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, + "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/@storybook/telemetry/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@storybook/telemetry/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 + }, + "node_modules/@storybook/telemetry/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/@storybook/telemetry/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/telemetry/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/test": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/test/-/test-8.0.8.tgz", + "integrity": "sha512-YXgwgg1e8ggDg2BlgeExwdN3MjeExnDvybQIUugADgun87tRIujJFCdjh0PAxg0Qvln6+lU3w+3Y2aryvX42RA==", + "dev": true, + "dependencies": { + "@storybook/client-logger": "8.0.8", + "@storybook/core-events": "8.0.8", + "@storybook/instrumenter": "8.0.8", + "@storybook/preview-api": "8.0.8", + "@testing-library/dom": "^9.3.4", + "@testing-library/jest-dom": "^6.4.2", + "@testing-library/user-event": "^14.5.2", + "@vitest/expect": "1.3.1", + "@vitest/spy": "^1.3.1", + "chai": "^4.4.1", + "util": "^0.12.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@storybook/test/node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@storybook/test/node_modules/@jest/core/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/test/node_modules/@jest/core/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@storybook/test/node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@storybook/test/node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@storybook/test/node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@storybook/test/node_modules/@testing-library/dom": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.4.tgz", + "integrity": "sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@storybook/test/node_modules/@testing-library/jest-dom": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.4.2.tgz", + "integrity": "sha512-CzqH0AFymEMG48CpzXFriYYkOjk6ZGPCLMhW9e9jg3KMCn5OfJecF8GtGW7yGfR/IgCe3SX8BSwjdzI6BBbZLw==", + "dev": true, + "dependencies": { + "@adobe/css-tools": "^4.3.2", + "@babel/runtime": "^7.9.2", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + }, + "peerDependencies": { + "@jest/globals": ">= 28", + "@types/bun": "latest", + "@types/jest": ">= 28", + "jest": ">= 28", + "vitest": ">= 0.32" + }, + "peerDependenciesMeta": { + "@jest/globals": { + "optional": true + }, + "@types/bun": { + "optional": true + }, + "@types/jest": { + "optional": true + }, + "jest": { + "optional": true + }, + "vitest": { + "optional": true + } + } + }, + "node_modules/@storybook/test/node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/test/node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "dev": true + }, + "node_modules/@storybook/test/node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@storybook/test/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/test/node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dev": true, + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/@storybook/test/node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/@storybook/test/node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@storybook/test/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, + "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/@storybook/test/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@storybook/test/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@storybook/test/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 + }, + "node_modules/@storybook/test/node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "optional": true, + "peer": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/@storybook/test/node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/@storybook/test/node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/test/node_modules/istanbul-lib-instrument": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", + "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/test/node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@storybook/test/node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-circus/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/test/node_modules/jest-circus/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@storybook/test/node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/@storybook/test/node_modules/jest-config/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/test/node_modules/jest-config/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-diff/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/test/node_modules/jest-diff/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-each/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/test/node_modules/jest-each/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/@storybook/test/node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-leak-detector/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/test/node_modules/jest-leak-detector/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/test/node_modules/jest-matcher-utils/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/test/node_modules/jest-message-util/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/test/node_modules/jest-snapshot/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-validate/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/test/node_modules/jest-validate/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@storybook/test/node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/@storybook/test/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@storybook/test/node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@storybook/test/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@storybook/test/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/@storybook/test/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/test/node_modules/v8-to-istanbul": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/@storybook/test/node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@storybook/test/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@storybook/test/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@storybook/testing-library": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@storybook/testing-library/-/testing-library-0.2.2.tgz", + "integrity": "sha512-L8sXFJUHmrlyU2BsWWZGuAjv39Jl1uAqUHdxmN42JY15M4+XCMjGlArdCCjDe1wpTSW6USYISA9axjZojgtvnw==", + "deprecated": "In Storybook 8, this package functionality has been integrated to a new package called @storybook/test, which uses Vitest APIs for an improved experience. When upgrading to Storybook 8 with 'npx storybook@latest upgrade', you will get prompted and will get an automigration for the new package. Please migrate when you can.", + "dependencies": { + "@testing-library/dom": "^9.0.0", + "@testing-library/user-event": "^14.4.0", + "ts-dedent": "^2.2.0" + } + }, + "node_modules/@storybook/testing-library/node_modules/@testing-library/dom": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.4.tgz", + "integrity": "sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@storybook/testing-library/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@storybook/testing-library/node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/@storybook/testing-library/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/@storybook/testing-library/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@storybook/testing-library/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==" + }, + "node_modules/@storybook/testing-library/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/testing-library/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@storybook/theming": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.0.8.tgz", + "integrity": "sha512-43hkNz7yo8Bl97AO2WbxIGprUqMhUZyK9g8383bd30gSxy9nfND/bdSdcgmA8IokDn8qp37Q4QmxtUZdhjMzZQ==", + "dev": true, + "dependencies": { + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@storybook/client-logger": "8.0.8", + "@storybook/global": "^5.0.0", + "memoizerific": "^1.11.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@storybook/types": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-8.0.8.tgz", + "integrity": "sha512-NGsgCsXnWlaZmHenHDgHGs21zhweZACkqTNsEQ7hvsiF08QeiKAdgJLQg3YeGK73h9mFDRP9djprUtJYab6vnQ==", + "dev": true, + "dependencies": { + "@storybook/channels": "8.0.8", + "@types/express": "^4.7.0", + "file-system-cache": "2.3.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", + "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", + "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", + "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", + "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", + "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", + "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", + "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", + "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/core": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", + "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", + "dependencies": { + "@svgr/plugin-jsx": "^5.5.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", + "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", + "dependencies": { + "@babel/types": "^7.12.6" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", + "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", + "dependencies": { + "@babel/core": "^7.12.3", + "@svgr/babel-preset": "^5.5.0", + "@svgr/hast-util-to-babel-ast": "^5.5.0", + "svg-parser": "^2.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", + "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", + "dependencies": { + "cosmiconfig": "^7.0.0", + "deepmerge": "^4.2.2", + "svgo": "^1.2.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/webpack": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", + "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/plugin-transform-react-constant-elements": "^7.12.1", + "@babel/preset-env": "^7.12.1", + "@babel/preset-react": "^7.12.5", + "@svgr/core": "^5.5.0", + "@svgr/plugin-jsx": "^5.5.0", + "@svgr/plugin-svgo": "^5.5.0", + "loader-utils": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@testing-library/dom": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.0.0.tgz", + "integrity": "sha512-PmJPnogldqoVFf+EwbHvbBJ98MmqASV8kLrBYgsDNxQcFMeIS7JFL48sfyXvuMtgmWO/wMhh25odr+8VhDmn4g==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/dom/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/dom/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/@testing-library/dom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz", + "integrity": "sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==", + "dependencies": { + "@adobe/css-tools": "^4.0.1", + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.5.6", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=8", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@testing-library/jest-dom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react": { + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.4.0.tgz", + "integrity": "sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^8.5.0", + "@types/react-dom": "^18.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@testing-library/react/node_modules/@testing-library/dom": { + "version": "8.20.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.1.tgz", + "integrity": "sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@testing-library/react/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/react/node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/@testing-library/react/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/react/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/react/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==" + }, + "node_modules/@testing-library/react/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/user-event": { + "version": "14.5.2", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.5.2.tgz", + "integrity": "sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==", + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==" + }, + "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==", + "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==", + "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==", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==" + }, + "node_modules/@types/cross-spawn": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/@types/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/detect-port": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/detect-port/-/detect-port-1.3.5.tgz", + "integrity": "sha512-Rf3/lB9WkDfIL9eEKaSYKc+1L/rNVYBjThk22JTqQw0YozXarX8YljFAz+HCoC6h4B4KwCMsBPZHaFezwT4BNA==", + "dev": true + }, + "node_modules/@types/doctrine": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", + "integrity": "sha512-w5jZ0ee+HaPOaX25X2/2oGR/7rgAQSYII7X7pp0m9KgBfMP7uKfMfTvcpl5Dj+eDBbpxKGiqE+flqDr6XTd2RA==", + "dev": true + }, + "node_modules/@types/ejs": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@types/ejs/-/ejs-3.1.5.tgz", + "integrity": "sha512-nv+GSx77ZtXiJzwKdsASqi+YQ5Z7vwHsTP0JY2SiQgjGckkBRKZnk8nIM+7oUZ1VCtuTz0+By4qVR7fqzp/Dfg==", + "dev": true + }, + "node_modules/@types/emscripten": { + "version": "1.39.10", + "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.39.10.tgz", + "integrity": "sha512-TB/6hBkYQJxsZHSqyeuO1Jt0AB/bW6G7rHt9g7lML7SOF6lbgcHvw/Lr+69iqN0qxgXLhWKScAon73JNnptuDw==", + "dev": true + }, + "node_modules/@types/escodegen": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/escodegen/-/escodegen-0.0.6.tgz", + "integrity": "sha512-AjwI4MvWx3HAOaZqYsjKWyEObT9lcVV0Y0V8nXo6cXzN8ZiMxVhf6F3d/UNvXVGKrEzL/Dluc5p+y9GkzlTWig==", + "dev": true + }, + "node_modules/@types/eslint": { + "version": "8.56.9", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.9.tgz", + "integrity": "sha512-W4W3KcqzjJ0sHg2vAq9vfml6OhsJ53TcUjUqfzzZf/EChUtwspszj/S0pzMxnfRcO55/iGq47dscXw71Fxc4Zg==", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.0.tgz", + "integrity": "sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dev": true, + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.12", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", + "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/jest/node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + }, + "node_modules/@types/jest/node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/jest/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/@types/jest/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@types/jest/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==" + }, + "node_modules/@types/jest/node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@types/jest/node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/@types/jest/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + }, + "node_modules/@types/lodash": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.0.tgz", + "integrity": "sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==", + "dev": true + }, + "node_modules/@types/mdx": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", + "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + }, + "node_modules/@types/mute-stream": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz", + "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "20.12.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", + "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==" + }, + "node_modules/@types/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-nj39q0wAIdhwn7DGUyT9irmsKK1tV0bd5WFEhgpqNTMFZ8cE+jieuTphCW0tfdm47S2zVT5mr09B28b1chmQMA==", + "dev": true + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" + }, + "node_modules/@types/q": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz", + "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==" + }, + "node_modules/@types/qs": { + "version": "6.9.14", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.14.tgz", + "integrity": "sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + }, + "node_modules/@types/react": { + "version": "18.2.78", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.78.tgz", + "integrity": "sha512-qOwdPnnitQY4xKlKayt42q5W5UQrSHjgoXNVEtxeqdITJ99k4VXJOP3vt8Rkm9HmgJpH50UNU+rlqfkfWOqp0A==", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.2.25", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.25.tgz", + "integrity": "sha512-o/V48vf4MQh7juIKZU2QGDfli6p1+OOi5oXx36Hffpc9adsHeXjVp8rHuPkjd8VT8sOJ2Zp05HR7CdpGTIUFUA==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", + "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", + "dev": true + }, + "node_modules/@types/sizzle": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz", + "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==", + "dev": true + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" + }, + "node_modules/@types/statuses": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/statuses/-/statuses-2.0.5.tgz", + "integrity": "sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==" + }, + "node_modules/@types/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-n4sx2bqL0mW1tvDf/loQ+aMX7GQD3lc3fkCMC55VFNDu/vBOabO+LTIeXKM14xK0ppk5TUGcWRjiSpIlUpghKw==" + }, + "node_modules/@types/testing-library__jest-dom": { + "version": "5.14.9", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.9.tgz", + "integrity": "sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==", + "dependencies": { + "@types/jest": "*" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" + }, + "node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", + "dev": true + }, + "node_modules/@types/uuid": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", + "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", + "dev": true + }, + "node_modules/@types/wrap-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", + "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==" + }, + "node_modules/@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz", + "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==", + "dependencies": { + "@typescript-eslint/utils": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + }, + "node_modules/@vitest/expect": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.3.1.tgz", + "integrity": "sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw==", + "dev": true, + "dependencies": { + "@vitest/spy": "1.3.1", + "@vitest/utils": "1.3.1", + "chai": "^4.3.10" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/expect/node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@vitest/expect/node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@vitest/expect/node_modules/@vitest/spy": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.3.1.tgz", + "integrity": "sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig==", + "dev": true, + "dependencies": { + "tinyspy": "^2.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/expect/node_modules/@vitest/utils": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.3.1.tgz", + "integrity": "sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ==", + "dev": true, + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/expect/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@vitest/expect/node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@vitest/expect/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@vitest/expect/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@vitest/expect/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/@vitest/spy": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.5.0.tgz", + "integrity": "sha512-vu6vi6ew5N5MMHJjD5PoakMRKYdmIrNJmyfkhRpQt5d9Ewhw9nZ5Aqynbi3N61bvk9UvZ5UysMT6ayIrZ8GA9w==", + "dev": true, + "dependencies": { + "tinyspy": "^2.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.5.0.tgz", + "integrity": "sha512-BDU0GNL8MWkRkSRdNFvCUCAVOeHaUlVJ9Tx0TYBZyXaaOTmGtUFObzchCivIBrIwKzvZA7A9sCejVhXM2aY98A==", + "dev": true, + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils/node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@vitest/utils/node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@vitest/utils/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@vitest/utils/node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@vitest/utils/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@vitest/utils/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@vitest/utils/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "node_modules/@yarnpkg/esbuild-plugin-pnp": { + "version": "3.0.0-rc.15", + "resolved": "https://registry.npmjs.org/@yarnpkg/esbuild-plugin-pnp/-/esbuild-plugin-pnp-3.0.0-rc.15.tgz", + "integrity": "sha512-kYzDJO5CA9sy+on/s2aIW0411AklfCi8Ck/4QDivOqsMKpStZA2SsR+X27VTggGwpStWaLrjJcDcdDMowtG8MA==", + "dev": true, + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "esbuild": ">=0.10.0" + } + }, + "node_modules/@yarnpkg/fslib": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@yarnpkg/fslib/-/fslib-2.10.3.tgz", + "integrity": "sha512-41H+Ga78xT9sHvWLlFOZLIhtU6mTGZ20pZ29EiZa97vnxdohJD2AF42rCoAoWfqUz486xY6fhjMH+DYEM9r14A==", + "dev": true, + "dependencies": { + "@yarnpkg/libzip": "^2.3.0", + "tslib": "^1.13.0" + }, + "engines": { + "node": ">=12 <14 || 14.2 - 14.9 || >14.10.0" + } + }, + "node_modules/@yarnpkg/fslib/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@yarnpkg/libzip": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/libzip/-/libzip-2.3.0.tgz", + "integrity": "sha512-6xm38yGVIa6mKm/DUCF2zFFJhERh/QWp1ufm4cNUvxsONBmfPg8uZ9pZBdOmF6qFGr/HlT6ABBkCSx/dlEtvWg==", + "dev": true, + "dependencies": { + "@types/emscripten": "^1.39.6", + "tslib": "^1.13.0" + }, + "engines": { + "node": ">=12 <14 || 14.2 - 14.9 || >14.10.0" + } + }, + "node_modules/@yarnpkg/libzip/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "peerDependencies": { + "acorn": "^8" + } + }, + "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==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "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/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "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==", + "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==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/app-root-dir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/app-root-dir/-/app-root-dir-1.0.2.tgz", + "integrity": "sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g==", + "dev": true + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "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" + } + ] + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "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==", + "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-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "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==", + "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-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "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==", + "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.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "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==", + "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==", + "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.reduce": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz", + "integrity": "sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-array-method-boxes-properly": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.toreversed": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", + "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz", + "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.1.0", + "es-shim-unscopables": "^1.0.2" + } + }, + "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==", + "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/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", + "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/ast-types": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz", + "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==" + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.19", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001599", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "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==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", + "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", + "dev": true + }, + "node_modules/axe-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", + "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", + "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/babel-core": { + "version": "7.0.0-bridge.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", + "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", + "dev": true, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/babel-jest/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/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==" + }, + "node_modules/babel-jest/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-named-asset-import": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", + "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", + "peerDependencies": { + "@babel/core": "^7.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz", + "integrity": "sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.1", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.1.tgz", + "integrity": "sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-react-app": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", + "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-decorators": "^7.16.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-transform-flow-strip-types": "^7.16.0", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.3", + "babel-plugin-macros": "^3.1.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + } + }, + "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==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "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" + } + ] + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/better-opn": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", + "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", + "dev": true, + "dependencies": { + "open": "^8.0.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/bfj": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.1.0.tgz", + "integrity": "sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==", + "dependencies": { + "bluebird": "^3.7.2", + "check-types": "^11.2.3", + "hoopy": "^0.1.4", + "jsonpath": "^1.1.1", + "tryer": "^1.0.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/blob-util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", + "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", + "dev": true + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/bonjour-service": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", + "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dev": true, + "dependencies": { + "big-integer": "^1.6.44" + }, + "engines": { + "node": ">= 5.10.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/broadcast-channel": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/broadcast-channel/-/broadcast-channel-3.7.0.tgz", + "integrity": "sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "detect-node": "^2.1.0", + "js-sha3": "0.8.0", + "microseconds": "0.2.0", + "nano-time": "1.0.0", + "oblivious-set": "1.0.0", + "rimraf": "3.0.2", + "unload": "2.2.0" + } + }, + "node_modules/browser-assert": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/browser-assert/-/browser-assert-1.2.1.tgz", + "integrity": "sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==", + "dev": true + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "node_modules/browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==", + "dev": true, + "dependencies": { + "pako": "~0.2.0" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "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" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "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" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cachedir": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", + "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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==", + "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==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "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==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001609", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001609.tgz", + "integrity": "sha512-JFPQs34lHKx1B5t1EpQpWH4c+29zIyn/haGsbpfq3suuV9v56enjFt23zqijxGTMwy1p/4H2tjnQMY+p1WoAyA==", + "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" + } + ] + }, + "node_modules/case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "node_modules/chai": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", + "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.0.8" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/check-types": { + "version": "11.2.3", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz", + "integrity": "sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg==" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chromatic": { + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/chromatic/-/chromatic-11.3.0.tgz", + "integrity": "sha512-q1ZtJDJrjLGnz60ivpC16gmd7KFzcaA4eTb7gcytCqbaKqlHhCFr1xQmcUDsm14CK7JsqdkFU6S+JQdOd2ZNJg==", + "dev": true, + "bin": { + "chroma": "dist/bin.js", + "chromatic": "dist/bin.js", + "chromatic-cli": "dist/bin.js" + }, + "peerDependencies": { + "@chromatic-com/cypress": "^0.*.* || ^1.0.0", + "@chromatic-com/playwright": "^0.*.* || ^1.0.0" + }, + "peerDependenciesMeta": { + "@chromatic-com/cypress": { + "optional": true + }, + "@chromatic-com/playwright": { + "optional": true + } + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/citty": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", + "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", + "dev": true, + "dependencies": { + "consola": "^3.2.3" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==" + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.4.tgz", + "integrity": "sha512-Lm3L0p+/npIQWNIiyF/nAn7T5dnOwR3xNTHXYEBFBFVPXzCVNZ5lqEC/1eo/EVfpDsQ1I+TX4ORPQgp+UI0CRw==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clsx": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", + "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==" + }, + "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==", + "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==" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/consola": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", + "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", + "dev": true, + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/core-js": { + "version": "3.36.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.36.1.tgz", + "integrity": "sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.36.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.1.tgz", + "integrity": "sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==", + "dependencies": { + "browserslist": "^4.23.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.36.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.36.1.tgz", + "integrity": "sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "optional": true, + "peer": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "optional": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "optional": true, + "peer": true + }, + "node_modules/create-jest/node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "optional": true, + "peer": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/create-jest/node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "optional": true, + "peer": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/create-jest/node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "optional": true, + "peer": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/create-jest/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==", + "optional": true, + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/create-jest/node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/create-jest/node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "optional": true, + "peer": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "optional": true, + "peer": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/create-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "optional": true, + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/create-jest/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==", + "optional": true, + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/create-jest/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==", + "optional": true, + "peer": true + }, + "node_modules/create-jest/node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "optional": true, + "peer": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/create-jest/node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "optional": true, + "peer": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "optional": true, + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/create-jest/node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/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==", + "optional": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/create-jest/node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "optional": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/create-jest/node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "optional": true, + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "optional": true, + "peer": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "optional": true, + "peer": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/create-jest/node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "optional": true, + "peer": true, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "optional": true, + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "optional": true, + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "optional": true, + "peer": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "optional": true, + "peer": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "optional": true, + "peer": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "optional": true, + "peer": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "optional": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/create-jest/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "optional": true, + "peer": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/create-jest/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "optional": true, + "peer": true + }, + "node_modules/create-jest/node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/create-jest/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/create-jest/node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "optional": true, + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/create-jest/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==", + "optional": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/create-jest/node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "optional": true, + "peer": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "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==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-blank-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", + "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-has-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-loader": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "dependencies": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", + "bin": { + "css-prefers-color-scheme": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + }, + "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==", + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" + }, + "node_modules/cssdb": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.11.2.tgz", + "integrity": "sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + } + ] + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "dependencies": { + "cssnano-preset-default": "^5.2.14", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.14", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.1", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.4", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.2", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/csso/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/customize-cra": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/customize-cra/-/customize-cra-1.0.0.tgz", + "integrity": "sha512-DbtaLuy59224U+xCiukkxSq8clq++MOtJ1Et7LED1fLszWe88EoblEYFBJ895sB1mC6B4uu3xPT/IjClELhMbA==", + "dev": true, + "dependencies": { + "lodash.flow": "^3.5.0" + } + }, + "node_modules/cypress": { + "version": "13.8.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.8.0.tgz", + "integrity": "sha512-Qau//mtrwEGOU9cn2YjavECKyDUwBh8J2tit+y9s1wsv6C3BX+rlv6I9afmQnL8PmEEzJ6be7nppMHacFzZkTw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@cypress/request": "^3.0.0", + "@cypress/xvfb": "^1.2.4", + "@types/sinonjs__fake-timers": "8.1.1", + "@types/sizzle": "^2.3.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", + "bluebird": "^3.7.2", + "buffer": "^5.7.1", + "cachedir": "^2.3.0", + "chalk": "^4.1.0", + "check-more-types": "^2.24.0", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.1", + "commander": "^6.2.1", + "common-tags": "^1.8.0", + "dayjs": "^1.10.4", + "debug": "^4.3.4", + "enquirer": "^2.3.6", + "eventemitter2": "6.4.7", + "execa": "4.1.0", + "executable": "^4.1.1", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", + "getos": "^3.2.1", + "is-ci": "^3.0.1", + "is-installed-globally": "~0.4.0", + "lazy-ass": "^1.6.0", + "listr2": "^3.8.3", + "lodash": "^4.17.21", + "log-symbols": "^4.0.0", + "minimist": "^1.2.8", + "ospath": "^1.2.2", + "pretty-bytes": "^5.6.0", + "process": "^0.11.10", + "proxy-from-env": "1.0.0", + "request-progress": "^3.0.0", + "semver": "^7.5.3", + "supports-color": "^8.1.1", + "tmp": "~0.2.1", + "untildify": "^4.0.0", + "yauzl": "^2.10.0" + }, + "bin": { + "cypress": "bin/cypress" + }, + "engines": { + "node": "^16.0.0 || ^18.0.0 || >=20.0.0" + } + }, + "node_modules/cypress/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cypress/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, + "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/cypress/node_modules/chalk/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cypress/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cypress/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 + }, + "node_modules/cypress/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cypress/node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/cypress/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cypress/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cypress/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/cypress/node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/cypress/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "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==", + "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==", + "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/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-equal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser-id": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "dev": true, + "dependencies": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "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-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "engines": { + "node": ">=8" + } + }, + "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==", + "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/defu": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", + "dev": true + }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "dev": true, + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "node_modules/detect-package-manager": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detect-package-manager/-/detect-package-manager-2.0.1.tgz", + "integrity": "sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A==", + "dev": true, + "dependencies": { + "execa": "^5.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/detect-port": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", + "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", + "dev": true, + "dependencies": { + "address": "^1.0.1", + "debug": "4" + }, + "bin": { + "detect": "bin/detect-port.js", + "detect-port": "bin/detect-port.js" + } + }, + "node_modules/detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "dependencies": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "bin": { + "detect": "bin/detect-port", + "detect-port": "bin/detect-port" + }, + "engines": { + "node": ">= 4.2.1" + } + }, + "node_modules/detect-port-alt/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/detect-port-alt/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==" + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "deprecated": "Use your platform's native DOMException instead", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/duplexify/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/duplexify/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/duplexify/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/duplexify/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.736", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.736.tgz", + "integrity": "sha512-Rer6wc3ynLelKNM4lOCg7/zPQj8tPOCB2hzD32PX9wd3hgRRi9MxEbmkFCokzcEhRVMiOVLjnL9ig9cefJ+6+Q==" + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/endent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/endent/-/endent-2.1.0.tgz", + "integrity": "sha512-r8VyPX7XL8U01Xgnb1CjZ3XV+z90cXIJ9JPE/R9SEC9vpw2P6CfsRPJmp20DppC5N7ZAMCmjYkJIa744Iyg96w==", + "dev": true, + "dependencies": { + "dedent": "^0.7.0", + "fast-json-parse": "^1.0.3", + "objectorarray": "^1.0.5" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", + "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/envinfo": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.12.0.tgz", + "integrity": "sha512-Iw9rQJBGpJRd3rwXm9ft/JiGoAZmLxxJZELYDQoPRZ4USVhkKtIcNBPw6U+/K2mBpaqM25JSV6Yl4Az9vO2wJg==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "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==", + "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-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" + }, + "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==", + "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==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.18", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.18.tgz", + "integrity": "sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "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-module-lexer": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz", + "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==" + }, + "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==", + "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==", + "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==", + "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==", + "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.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/esbuild-plugin-alias": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/esbuild-plugin-alias/-/esbuild-plugin-alias-0.2.1.tgz", + "integrity": "sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ==", + "dev": true + }, + "node_modules/esbuild-register": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.5.0.tgz", + "integrity": "sha512-+4G/XmakeBAsvJuDugJvtyF1x+XJT4FMocynNpxrvEBViirpfUn2PgNpCHedfWhF4WokNsO/OvMKrmJOIJsI5A==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "peerDependencies": { + "esbuild": ">=0.12 <1" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "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==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.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": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-react-app": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", + "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@rushstack/eslint-patch": "^1.1.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "babel-preset-react-app": "^10.0.1", + "confusing-browser-globals": "^1.0.11", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jest": "^25.3.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.1", + "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-testing-library": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-flowtype": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", + "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", + "dependencies": { + "lodash": "^4.17.21", + "string-natural-compare": "^3.0.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@babel/plugin-syntax-flow": "^7.14.5", + "@babel/plugin-transform-react-jsx": "^7.14.9", + "eslint": "^8.1.0" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "25.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", + "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", + "dependencies": { + "@typescript-eslint/experimental-utils": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", + "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==", + "dependencies": { + "@babel/runtime": "^7.23.2", + "aria-query": "^5.3.0", + "array-includes": "^3.1.7", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "=4.7.0", + "axobject-query": "^3.2.1", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "es-iterator-helpers": "^1.0.15", + "hasown": "^2.0.0", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.entries": "^1.1.7", + "object.fromentries": "^2.0.7" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.34.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz", + "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==", + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlast": "^1.2.4", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.toreversed": "^1.1.2", + "array.prototype.tosorted": "^1.1.3", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.17", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.7", + "object.fromentries": "^2.0.7", + "object.hasown": "^1.1.3", + "object.values": "^1.1.7", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.10" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/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==", + "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/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-storybook": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-0.8.0.tgz", + "integrity": "sha512-CZeVO5EzmPY7qghO2t64oaFM+8FTaD4uzOEjHKp516exyTKo+skKAL9GI3QALS2BXhyALJjNtwbmr1XinGE8bA==", + "dev": true, + "dependencies": { + "@storybook/csf": "^0.0.1", + "@typescript-eslint/utils": "^5.62.0", + "requireindex": "^1.2.0", + "ts-dedent": "^2.2.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "eslint": ">=6" + } + }, + "node_modules/eslint-plugin-storybook/node_modules/@storybook/csf": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.0.1.tgz", + "integrity": "sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==", + "dev": true, + "dependencies": { + "lodash": "^4.17.15" + } + }, + "node_modules/eslint-plugin-testing-library": { + "version": "5.11.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.1.tgz", + "integrity": "sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==", + "dependencies": { + "@typescript-eslint/utils": "^5.58.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0", + "npm": ">=6" + }, + "peerDependencies": { + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "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==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", + "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", + "dependencies": { + "@types/eslint": "^7.29.0 || ^8.4.1", + "jest-worker": "^28.0.2", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/eslint-webpack-plugin/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/eslint-webpack-plugin/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/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==" + }, + "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==", + "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==", + "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==" + }, + "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==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/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==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "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==", + "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==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter2": { + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz", + "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==", + "dev": true + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "dependencies": { + "pify": "^2.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true, + "engines": [ + "node >=0.6.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==" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-parse": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fast-json-parse/-/fast-json-parse-1.0.3.tgz", + "integrity": "sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==", + "dev": true + }, + "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==" + }, + "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==" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fetch-retry": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-5.0.6.tgz", + "integrity": "sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==", + "dev": true + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/file-system-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/file-system-cache/-/file-system-cache-2.3.0.tgz", + "integrity": "sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ==", + "dev": true, + "dependencies": { + "fs-extra": "11.1.1", + "ramda": "0.29.0" + } + }, + "node_modules/file-system-cache/node_modules/fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, + "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==", + "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": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==" + }, + "node_modules/flow-parser": { + "version": "0.233.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.233.0.tgz", + "integrity": "sha512-E/mv51GYJfLuRX6fZnw4M52gBxYa8pkHUOgNEZOcQK2RTXS8YXeU5rlalkTcY99UpwbeNVCSUFKaavpOksi/pQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "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==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", + "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/fork-ts-checker-webpack-plugin/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/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==" + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/fs-monkey": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", + "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "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==", + "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==", + "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==", + "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==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "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==", + "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-npm-tarball-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/get-npm-tarball-url/-/get-npm-tarball-url-2.1.0.tgz", + "integrity": "sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==", + "dev": true, + "engines": { + "node": ">=12.17" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "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/getos": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", + "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", + "dev": true, + "dependencies": { + "async": "^3.2.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/giget": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/giget/-/giget-1.2.3.tgz", + "integrity": "sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==", + "dev": true, + "dependencies": { + "citty": "^0.1.6", + "consola": "^3.2.3", + "defu": "^6.1.4", + "node-fetch-native": "^1.6.3", + "nypm": "^0.3.8", + "ohash": "^1.1.3", + "pathe": "^1.1.2", + "tar": "^6.2.0" + }, + "bin": { + "giget": "dist/cli.mjs" + } + }, + "node_modules/github-slugger": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", + "dev": true + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dev": true, + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-dirs/node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + }, + "node_modules/graphql": { + "version": "16.8.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/gunzip-maybe": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/gunzip-maybe/-/gunzip-maybe-1.4.2.tgz", + "integrity": "sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==", + "dev": true, + "dependencies": { + "browserify-zlib": "^0.1.4", + "is-deflate": "^1.0.0", + "is-gzip": "^1.0.0", + "peek-stream": "^1.1.0", + "pumpify": "^1.3.3", + "through2": "^2.0.3" + }, + "bin": { + "gunzip-maybe": "bin.js" + } + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==" + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/harmony-reflect": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", + "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==" + }, + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hast-util-heading-rank": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-heading-rank/-/hast-util-heading-rank-3.0.0.tgz", + "integrity": "sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==", + "dev": true, + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-is-element": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", + "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", + "dev": true, + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-string": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.0.tgz", + "integrity": "sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==", + "dev": true, + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/headers-polyfill": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-4.0.3.tgz", + "integrity": "sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==" + }, + "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==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/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==" + }, + "node_modules/hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-entities": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz", + "integrity": "sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.20.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/http-signature": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==" + }, + "node_modules/identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", + "dependencies": { + "harmony-reflect": "^1.4.6" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "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" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "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==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "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==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "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==", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.1.tgz", + "integrity": "sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==", + "dev": true + }, + "node_modules/ipaddr.js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-absolute-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-4.0.1.tgz", + "integrity": "sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "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-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==", + "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-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "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==", + "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==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "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==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "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==", + "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==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-deflate": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-deflate/-/is-deflate-1.0.0.tgz", + "integrity": "sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==", + "dev": true + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "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==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "engines": { + "node": ">=6" + } + }, + "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==", + "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==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-gzip": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz", + "integrity": "sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" + }, + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "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==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-node-process": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz", + "integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==" + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "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==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "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==", + "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-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "engines": { + "node": ">=6" + } + }, + "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==", + "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==", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "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==", + "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==", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "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==", + "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==", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "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/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jake": { + "version": "10.8.7", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jake/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jake/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==" + }, + "node_modules/jake/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jake/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "dependencies": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-circus/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/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==" + }, + "node_modules/jest-circus/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-cli/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-cli/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==" + }, + "node_modules/jest-cli/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-config/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/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==" + }, + "node_modules/jest-config/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-diff/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/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==" + }, + "node_modules/jest-diff/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-each/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/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==" + }, + "node_modules/jest-each/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-jasmine2/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-jasmine2/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==" + }, + "node_modules/jest-jasmine2/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-matcher-utils/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/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==" + }, + "node_modules/jest-matcher-utils/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-message-util/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/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==" + }, + "node_modules/jest-message-util/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-resolve/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/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==" + }, + "node_modules/jest-resolve/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-runner/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/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==" + }, + "node_modules/jest-runner/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-runtime/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/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==" + }, + "node_modules/jest-runtime/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-snapshot/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/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==" + }, + "node_modules/jest-snapshot/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-util/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/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==" + }, + "node_modules/jest-util/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-validate/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/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==" + }, + "node_modules/jest-validate/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", + "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", + "dependencies": { + "ansi-escapes": "^4.3.1", + "chalk": "^4.0.0", + "jest-regex-util": "^28.0.0", + "jest-watcher": "^28.0.0", + "slash": "^4.0.0", + "string-length": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "jest": "^27.0.0 || ^28.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "dependencies": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-watch-typeahead/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-watch-typeahead/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watch-typeahead/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==" + }, + "node_modules/jest-watch-typeahead/node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dependencies": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/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==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/jest-watch-typeahead/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", + "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", + "dependencies": { + "char-regex": "^2.0.0", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", + "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watcher/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jest-watcher/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/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==" + }, + "node_modules/jest-watcher/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "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==" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true + }, + "node_modules/jscodeshift": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.15.2.tgz", + "integrity": "sha512-FquR7Okgmc4Sd0aEDwqho3rEiKR3BdvuG9jfdHjLJ6JQoWSMpavug3AoIfnfWhxFlf+5pzQh8qjqz0DWFrNQzA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.0", + "@babel/parser": "^7.23.0", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.23.0", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", + "@babel/plugin-transform-optional-chaining": "^7.23.0", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/preset-flow": "^7.22.15", + "@babel/preset-typescript": "^7.23.0", + "@babel/register": "^7.22.15", + "babel-core": "^7.0.0-bridge.0", + "chalk": "^4.1.2", + "flow-parser": "0.*", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.4", + "neo-async": "^2.5.0", + "node-dir": "^0.1.17", + "recast": "^0.23.3", + "temp": "^0.8.4", + "write-file-atomic": "^2.3.0" + }, + "bin": { + "jscodeshift": "bin/jscodeshift.js" + }, + "peerDependencies": { + "@babel/preset-env": "^7.1.6" + }, + "peerDependenciesMeta": { + "@babel/preset-env": { + "optional": true + } + } + }, + "node_modules/jscodeshift/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jscodeshift/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, + "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/jscodeshift/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jscodeshift/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 + }, + "node_modules/jscodeshift/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/jscodeshift/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jscodeshift/node_modules/write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "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==" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "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==" + }, + "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==" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpath": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz", + "integrity": "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==", + "dependencies": { + "esprima": "1.2.2", + "static-eval": "2.0.2", + "underscore": "1.12.1" + } + }, + "node_modules/jsonpath/node_modules/esprima": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", + "integrity": "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "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==", + "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==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/launch-editor": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", + "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", + "dev": true, + "engines": { + "node": "> 0.8" + } + }, + "node_modules/lazy-universal-dotenv": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/lazy-universal-dotenv/-/lazy-universal-dotenv-4.0.0.tgz", + "integrity": "sha512-aXpZJRnTkpK6gQ/z4nk+ZBLd/Qdp118cvPruLSIQzQNRhKwEcdXCOzXuF55VDqIiuAaY3UGZ10DJtvZzDcvsxg==", + "dev": true, + "dependencies": { + "app-root-dir": "^1.0.2", + "dotenv": "^16.0.0", + "dotenv-expand": "^10.0.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/lazy-universal-dotenv/node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/lazy-universal-dotenv/node_modules/dotenv-expand": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz", + "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "engines": { + "node": ">=6" + } + }, + "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==", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/listr2": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", + "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", + "dev": true, + "dependencies": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.1", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.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==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.flow": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/lodash.flow/-/lodash.flow-3.5.0.tgz", + "integrity": "sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw==", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + }, + "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==" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "dev": true + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/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, + "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/log-symbols/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/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 + }, + "node_modules/log-symbols/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-update/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 + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "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==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/map-or-similar": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz", + "integrity": "sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==", + "dev": true + }, + "node_modules/markdown-to-jsx": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.3.2.tgz", + "integrity": "sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q==", + "dev": true, + "engines": { + "node": ">= 10" + }, + "peerDependencies": { + "react": ">= 0.14.0" + } + }, + "node_modules/match-sorter": { + "version": "6.3.4", + "resolved": "https://registry.npmjs.org/match-sorter/-/match-sorter-6.3.4.tgz", + "integrity": "sha512-jfZW7cWS5y/1xswZo8VBOdudUiSd9nifYRWphc9M5D/ee4w4AoXLgBEdRbgVaxbMuagBPeUC5y2Hi8DO6o9aDg==", + "dependencies": { + "@babel/runtime": "^7.23.8", + "remove-accents": "0.5.0" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/memoizerific": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/memoizerific/-/memoizerific-1.11.3.tgz", + "integrity": "sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==", + "dev": true, + "dependencies": { + "map-or-similar": "^1.5.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/microseconds": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/microseconds/-/microseconds-0.2.0.tgz", + "integrity": "sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==" + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.8.1.tgz", + "integrity": "sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==", + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/msw": { + "version": "2.2.14", + "resolved": "https://registry.npmjs.org/msw/-/msw-2.2.14.tgz", + "integrity": "sha512-64i8rNCa1xzDK8ZYsTrVMli05D687jty8+Th+PU5VTbJ2/4P7fkQFVyDQ6ZFT5FrNR8z2BHhbY47fKNvfHrumA==", + "hasInstallScript": true, + "dependencies": { + "@bundled-es-modules/cookie": "^2.0.0", + "@bundled-es-modules/statuses": "^1.0.1", + "@inquirer/confirm": "^3.0.0", + "@mswjs/cookies": "^1.1.0", + "@mswjs/interceptors": "^0.26.14", + "@open-draft/until": "^2.1.0", + "@types/cookie": "^0.6.0", + "@types/statuses": "^2.0.4", + "chalk": "^4.1.2", + "graphql": "^16.8.1", + "headers-polyfill": "^4.0.2", + "is-node-process": "^1.2.0", + "outvariant": "^1.4.2", + "path-to-regexp": "^6.2.0", + "strict-event-emitter": "^0.5.1", + "type-fest": "^4.9.0", + "yargs": "^17.7.2" + }, + "bin": { + "msw": "cli/index.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/mswjs" + }, + "peerDependencies": { + "typescript": ">= 4.7.x" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/msw/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/msw/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/msw/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/msw/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/msw/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==" + }, + "node_modules/msw/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/msw/node_modules/path-to-regexp": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz", + "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==" + }, + "node_modules/msw/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/msw/node_modules/type-fest": { + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.15.0.tgz", + "integrity": "sha512-tB9lu0pQpX5KJq54g+oHOLumOx+pMep4RaM6liXh2PKmVRFF+/vAtUP0ZaJ0kOySfVNjF6doBWPHhBhISKdlIA==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/msw/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/msw/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nano-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/nano-time/-/nano-time-1.0.0.tgz", + "integrity": "sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA==", + "dependencies": { + "big-integer": "^1.6.16" + } + }, + "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" + } + ], + "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==" + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-abort-controller": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", + "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", + "dev": true + }, + "node_modules/node-dir": { + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", + "integrity": "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.2" + }, + "engines": { + "node": ">= 0.10.5" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch-native": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.4.tgz", + "integrity": "sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==", + "dev": true + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", + "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==" + }, + "node_modules/nypm": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.3.8.tgz", + "integrity": "sha512-IGWlC6So2xv6V4cIDmoV0SwwWx7zLG086gyqkyumteH2fIgCAM4nDVFB2iDRszDvmdSVW9xb1N+2KjQ6C7d4og==", + "dev": true, + "dependencies": { + "citty": "^0.1.6", + "consola": "^3.2.3", + "execa": "^8.0.1", + "pathe": "^1.1.2", + "ufo": "^1.4.0" + }, + "bin": { + "nypm": "dist/cli.mjs" + }, + "engines": { + "node": "^14.16.0 || >=16.10.0" + } + }, + "node_modules/nypm/node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/nypm/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nypm/node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/nypm/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nypm/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nypm/node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nypm/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nypm/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nypm/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/nypm/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "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==", + "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==", + "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==", + "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==", + "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.getownpropertydescriptors": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz", + "integrity": "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==", + "dependencies": { + "array.prototype.reduce": "^1.0.6", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "gopd": "^1.0.1", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.hasown": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", + "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", + "dependencies": { + "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==", + "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/objectorarray": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.5.tgz", + "integrity": "sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==", + "dev": true + }, + "node_modules/oblivious-set": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/oblivious-set/-/oblivious-set-1.0.0.tgz", + "integrity": "sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==" + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "node_modules/ohash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-1.1.3.tgz", + "integrity": "sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ora/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, + "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/ora/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ora/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 + }, + "node_modules/ora/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", + "dev": true + }, + "node_modules/outvariant": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.2.tgz", + "integrity": "sha512-Ou3dJ6bA/UJ5GVHxah4LnqDwZRwAmWxrG3wtrHrbGnP4RnLCtA64A4F+ae7Y8ww660JaddSoArUR5HjipWSHAQ==" + }, + "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==", + "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==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", + "dev": true + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "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==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "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==" + }, + "node_modules/path-scurry": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", + "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/peek-stream": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/peek-stream/-/peek-stream-1.1.3.tgz", + "integrity": "sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "duplexify": "^3.5.0", + "through2": "^2.0.3" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/pnp-webpack-plugin": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.7.0.tgz", + "integrity": "sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg==", + "dev": true, + "dependencies": { + "ts-pnp": "^1.1.6" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/polished": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/polished/-/polished-4.3.1.tgz", + "integrity": "sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.17.8" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "engines": { + "node": ">= 0.4" + } + }, + "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" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", + "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-browser-comments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", + "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "browserslist": ">=4", + "postcss": ">=8" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", + "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", + "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", + "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-custom-media": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", + "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-custom-properties": { + "version": "12.1.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz", + "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", + "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", + "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", + "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-flexbugs-fixes": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", + "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", + "peerDependencies": { + "postcss": "^8.1.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", + "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-image-set-function": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", + "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-lab-function": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", + "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", + "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", + "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "dependencies": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", + "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", + "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-nesting": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", + "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-normalize": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", + "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", + "dependencies": { + "@csstools/normalize.css": "*", + "postcss-browser-comments": "^4", + "sanitize.css": "*" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "browserslist": ">= 4", + "postcss": ">= 8" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-opacity-percentage": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz", + "integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==", + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", + "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", + "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-preset-env": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz", + "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==", + "dependencies": { + "@csstools/postcss-cascade-layers": "^1.1.1", + "@csstools/postcss-color-function": "^1.1.1", + "@csstools/postcss-font-format-keywords": "^1.0.1", + "@csstools/postcss-hwb-function": "^1.0.2", + "@csstools/postcss-ic-unit": "^1.0.1", + "@csstools/postcss-is-pseudo-class": "^2.0.7", + "@csstools/postcss-nested-calc": "^1.0.0", + "@csstools/postcss-normalize-display-values": "^1.0.1", + "@csstools/postcss-oklab-function": "^1.1.1", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "@csstools/postcss-stepped-value-functions": "^1.0.1", + "@csstools/postcss-text-decoration-shorthand": "^1.0.0", + "@csstools/postcss-trigonometric-functions": "^1.0.2", + "@csstools/postcss-unset-value": "^1.0.2", + "autoprefixer": "^10.4.13", + "browserslist": "^4.21.4", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^7.1.0", + "postcss-attribute-case-insensitive": "^5.0.2", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.4", + "postcss-color-hex-alpha": "^8.0.4", + "postcss-color-rebeccapurple": "^7.1.1", + "postcss-custom-media": "^8.0.2", + "postcss-custom-properties": "^12.1.10", + "postcss-custom-selectors": "^6.0.3", + "postcss-dir-pseudo-class": "^6.0.5", + "postcss-double-position-gradients": "^3.1.2", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.5", + "postcss-image-set-function": "^4.0.7", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.2.1", + "postcss-logical": "^5.0.4", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.2.0", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.4", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.5", + "postcss-pseudo-class-any-link": "^7.1.6", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", + "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", + "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", + "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/postcss-svgo/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/postcss-svgo/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/postcss-svgo/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-svgo/node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "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==" + }, + "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==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "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==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/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==" + }, + "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==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", + "dev": true + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/pumpify/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.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==", + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "optional": true, + "peer": true + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/ramda": { + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.29.0.tgz", + "integrity": "sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ramda" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-app-polyfill": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", + "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", + "dependencies": { + "core-js": "^3.19.2", + "object-assign": "^4.1.1", + "promise": "^8.1.0", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.9", + "whatwg-fetch": "^3.6.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-app-polyfill/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/react-app-rewired": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-app-rewired/-/react-app-rewired-2.2.1.tgz", + "integrity": "sha512-uFQWTErXeLDrMzOJHKp0h8P1z0LV9HzPGsJ6adOtGlA/B9WfT6Shh4j2tLTTGlXOfiVx6w6iWpp7SOC5pvk+gA==", + "dev": true, + "dependencies": { + "semver": "^5.6.0" + }, + "bin": { + "react-app-rewired": "bin/index.js" + }, + "peerDependencies": { + "react-scripts": ">=2.1.3" + } + }, + "node_modules/react-app-rewired/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/react-colorful": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.6.1.tgz", + "integrity": "sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==", + "dev": true, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/react-confetti": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-confetti/-/react-confetti-6.1.0.tgz", + "integrity": "sha512-7Ypx4vz0+g8ECVxr88W9zhcQpbeujJAVqL14ZnXJ3I23mOI9/oBVTQ3dkJhUmB0D6XOtCZEM6N0Gm9PMngkORw==", + "dev": true, + "dependencies": { + "tween-functions": "^1.2.0" + }, + "engines": { + "node": ">=10.18" + }, + "peerDependencies": { + "react": "^16.3.0 || ^17.0.1 || ^18.0.0" + } + }, + "node_modules/react-dev-utils": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/react-dev-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/react-dev-utils/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/react-dev-utils/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==" + }, + "node_modules/react-dev-utils/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==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/react-dev-utils/node_modules/loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/react-dev-utils/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/react-docgen": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-7.0.3.tgz", + "integrity": "sha512-i8aF1nyKInZnANZ4uZrH49qn1paRgBZ7wZiCNBMnenlPzEv0mRl+ShpTVEI6wZNl8sSc79xZkivtgLKQArcanQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.18.9", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9", + "@types/babel__core": "^7.18.0", + "@types/babel__traverse": "^7.18.0", + "@types/doctrine": "^0.0.9", + "@types/resolve": "^1.20.2", + "doctrine": "^3.0.0", + "resolve": "^1.22.1", + "strip-indent": "^4.0.0" + }, + "engines": { + "node": ">=16.14.0" + } + }, + "node_modules/react-docgen-typescript": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/react-docgen-typescript/-/react-docgen-typescript-2.2.2.tgz", + "integrity": "sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==", + "dev": true, + "peerDependencies": { + "typescript": ">= 4.3.x" + } + }, + "node_modules/react-docgen/node_modules/@types/doctrine": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.9.tgz", + "integrity": "sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==", + "dev": true + }, + "node_modules/react-docgen/node_modules/@types/resolve": { + "version": "1.20.6", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.6.tgz", + "integrity": "sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==", + "dev": true + }, + "node_modules/react-docgen/node_modules/strip-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", + "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-element-to-jsx-string": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/react-element-to-jsx-string/-/react-element-to-jsx-string-15.0.0.tgz", + "integrity": "sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ==", + "dev": true, + "dependencies": { + "@base2/pretty-print-object": "1.0.1", + "is-plain-object": "5.0.0", + "react-is": "18.1.0" + }, + "peerDependencies": { + "react": "^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0", + "react-dom": "^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0" + } + }, + "node_modules/react-element-to-jsx-string/node_modules/react-is": { + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", + "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", + "dev": true + }, + "node_modules/react-error-boundary": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-4.0.13.tgz", + "integrity": "sha512-b6PwbdSv8XeOSYvjt8LpgpKrZ0yGdtZokYwkwV2wlcZbxgopHX/hgPl5VgpnoVOWd868n1hktM8Qm4b+02MiLQ==", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "peerDependencies": { + "react": ">=16.13.1" + } + }, + "node_modules/react-error-overlay": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", + "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" + }, + "node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + }, + "node_modules/react-helmet-async": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-2.0.4.tgz", + "integrity": "sha512-yxjQMWposw+akRfvpl5+8xejl4JtUlHnEBcji6u8/e6oc7ozT+P9PNTWMhCbz2y9tc5zPegw2BvKjQA+NwdEjQ==", + "dependencies": { + "invariant": "^2.2.4", + "react-fast-compare": "^3.2.2", + "shallowequal": "^1.1.0" + }, + "peerDependencies": { + "react": "^16.6.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-hook-form": { + "version": "7.51.3", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.51.3.tgz", + "integrity": "sha512-cvJ/wbHdhYx8aviSWh28w9ImjmVsb5Y05n1+FW786vEZQJV5STNM0pW6ujS+oiBecb0ARBxJFyAnXj9+GHXACQ==", + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/react-query": { + "version": "3.39.3", + "resolved": "https://registry.npmjs.org/react-query/-/react-query-3.39.3.tgz", + "integrity": "sha512-nLfLz7GiohKTJDuT4us4X3h/8unOh+00MLb2yJoGTPjxKs2bc1iDhkNx2bd5MKklXnOD3NrVZ+J2UXujA5In4g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "broadcast-channel": "^3.4.1", + "match-sorter": "^6.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/react-refresh": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", + "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "6.22.3", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.22.3.tgz", + "integrity": "sha512-dr2eb3Mj5zK2YISHK++foM9w4eBnO23eKnZEDs7c880P6oKbrjz/Svg9+nxqtHQK+oMW4OtjZca0RqPglXxguQ==", + "dependencies": { + "@remix-run/router": "1.15.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.22.3", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.22.3.tgz", + "integrity": "sha512-7ZILI7HjcE+p31oQvwbokjk6OA/bnFxrhJ19n82Ex9Ph8fNAq+Hm/7KchpMGlTgWhUxRHMMCut+vEtNpWpowKw==", + "dependencies": { + "@remix-run/router": "1.15.3", + "react-router": "6.22.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/react-scripts": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", + "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", + "dependencies": { + "@babel/core": "^7.16.0", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", + "@svgr/webpack": "^5.5.0", + "babel-jest": "^27.4.2", + "babel-loader": "^8.2.3", + "babel-plugin-named-asset-import": "^0.3.8", + "babel-preset-react-app": "^10.0.1", + "bfj": "^7.0.2", + "browserslist": "^4.18.1", + "camelcase": "^6.2.1", + "case-sensitive-paths-webpack-plugin": "^2.4.0", + "css-loader": "^6.5.1", + "css-minimizer-webpack-plugin": "^3.2.0", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "eslint": "^8.3.0", + "eslint-config-react-app": "^7.0.1", + "eslint-webpack-plugin": "^3.1.1", + "file-loader": "^6.2.0", + "fs-extra": "^10.0.0", + "html-webpack-plugin": "^5.5.0", + "identity-obj-proxy": "^3.0.0", + "jest": "^27.4.3", + "jest-resolve": "^27.4.2", + "jest-watch-typeahead": "^1.0.0", + "mini-css-extract-plugin": "^2.4.5", + "postcss": "^8.4.4", + "postcss-flexbugs-fixes": "^5.0.2", + "postcss-loader": "^6.2.1", + "postcss-normalize": "^10.0.1", + "postcss-preset-env": "^7.0.1", + "prompts": "^2.4.2", + "react-app-polyfill": "^3.0.0", + "react-dev-utils": "^12.0.1", + "react-refresh": "^0.11.0", + "resolve": "^1.20.0", + "resolve-url-loader": "^4.0.0", + "sass-loader": "^12.3.0", + "semver": "^7.3.5", + "source-map-loader": "^3.0.0", + "style-loader": "^3.3.1", + "tailwindcss": "^3.0.2", + "terser-webpack-plugin": "^5.2.5", + "webpack": "^5.64.4", + "webpack-dev-server": "^4.6.0", + "webpack-manifest-plugin": "^4.0.2", + "workbox-webpack-plugin": "^6.4.1" + }, + "bin": { + "react-scripts": "bin/react-scripts.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + }, + "peerDependencies": { + "react": ">= 16", + "typescript": "^3.2.1 || ^4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recast": { + "version": "0.23.6", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.6.tgz", + "integrity": "sha512-9FHoNjX1yjuesMwuthAmPKabxYQdOgihFYmT5ebXfYGBcnqXZf3WOVz+5foEZ8Y83P4ZY6yQD5GMmtV+pgCCAQ==", + "dev": true, + "dependencies": { + "ast-types": "^0.16.1", + "esprima": "~4.0.0", + "source-map": "~0.6.1", + "tiny-invariant": "^1.3.3", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/recast/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "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==", + "dependencies": { + "hamt_plus": "1.0.2" + }, + "peerDependencies": { + "react": ">=16.13.1" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=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==", + "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/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", + "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==" + }, + "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==", + "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/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/rehype-external-links": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rehype-external-links/-/rehype-external-links-3.0.0.tgz", + "integrity": "sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==", + "dev": true, + "dependencies": { + "@types/hast": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-is-element": "^3.0.0", + "is-absolute-url": "^4.0.0", + "space-separated-tokens": "^2.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-slug": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-6.0.0.tgz", + "integrity": "sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==", + "dev": true, + "dependencies": { + "@types/hast": "^3.0.0", + "github-slugger": "^2.0.0", + "hast-util-heading-rank": "^3.0.0", + "hast-util-to-string": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remove-accents": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz", + "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==" + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", + "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==", + "dev": true, + "dependencies": { + "throttleit": "^1.0.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requireindex": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz", + "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", + "dev": true, + "engines": { + "node": ">=0.10.5" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "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-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", + "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^7.0.35", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=8.9" + }, + "peerDependencies": { + "rework": "1.0.1", + "rework-visit": "1.0.0" + }, + "peerDependenciesMeta": { + "rework": { + "optional": true + }, + "rework-visit": { + "optional": true + } + } + }, + "node_modules/resolve-url-loader/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/resolve-url-loader/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, + "node_modules/resolve-url-loader/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "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==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", + "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-terser/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/rollup-plugin-terser/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/rollup-plugin-terser/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "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==", + "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-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "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==", + "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/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sanitize.css": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", + "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" + }, + "node_modules/sass-loader": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", + "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/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==" + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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==", + "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==", + "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/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "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==" + }, + "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==", + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "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/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/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 + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", + "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead" + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" + }, + "node_modules/static-eval": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", + "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", + "dependencies": { + "escodegen": "^1.8.1" + } + }, + "node_modules/static-eval/node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/static-eval/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/static-eval/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-eval/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/store2": { + "version": "2.14.3", + "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.3.tgz", + "integrity": "sha512-4QcZ+yx7nzEFiV4BMLnr/pRa5HYzNITX2ri0Zh6sT9EyQHbBHacC6YigllUPU9X3D0f/22QCgfokpKs52YRrUg==", + "dev": true + }, + "node_modules/storybook": { + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.0.8.tgz", + "integrity": "sha512-9gTnnAakJBtMCg8oPGqnpy7g/C3Tj2IWiVflHiFg1SDD9zXBoc4mZhaYPTne4LRBUhXk7XuFagKfiRN2V/MuKA==", + "dev": true, + "dependencies": { + "@storybook/cli": "8.0.8" + }, + "bin": { + "sb": "index.js", + "storybook": "index.js" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + } + }, + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "dev": true + }, + "node_modules/strict-event-emitter": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz", + "integrity": "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-natural-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", + "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "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==", + "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.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "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==", + "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==", + "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/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dependencies": { + "min-indent": "^1.0.0" + }, + "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==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-loader": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", + "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/styled-components": { + "version": "6.1.8", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.8.tgz", + "integrity": "sha512-PQ6Dn+QxlWyEGCKDS71NGsXoVLKfE1c3vApkvDYS5KAK+V8fNWGhbSUEo9Gg2iaID2tjLXegEW3bZDUGpofRWw==", + "dependencies": { + "@emotion/is-prop-valid": "1.2.1", + "@emotion/unitless": "0.8.0", + "@types/stylis": "4.2.0", + "css-to-react-native": "3.2.0", + "csstype": "3.1.2", + "postcss": "8.4.31", + "shallowequal": "1.1.0", + "stylis": "4.3.1", + "tslib": "2.5.0" + }, + "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/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/styled-components/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "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" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/styled-components/node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + }, + "node_modules/styled-jsx": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.2.tgz", + "integrity": "sha512-FI5r0a5ED2/+DSdG2ZRz3a4FtNQnKPLadauU5v76a9QsscwZrWggQKOmyxGGP5EWKbyY3bsuWAJYzyKaDAVAcw==", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/stylis": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.1.tgz", + "integrity": "sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==" + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/svgo/node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/svgo/node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/svgo/node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/svgo/node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "node_modules/svgo/node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "node_modules/tailwindcss": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", + "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-fs/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/telejson": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/telejson/-/telejson-7.2.0.tgz", + "integrity": "sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ==", + "dev": true, + "dependencies": { + "memoizerific": "^1.11.3" + } + }, + "node_modules/temp": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz", + "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==", + "dev": true, + "dependencies": { + "rimraf": "~2.6.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/temp/node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.30.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.30.3.tgz", + "integrity": "sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA==", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "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==" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/throat": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==" + }, + "node_modules/throttleit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz", + "integrity": "sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "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==" + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "dev": true + }, + "node_modules/tinyspy": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "dev": true, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + }, + "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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tocbot": { + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/tocbot/-/tocbot-4.25.0.tgz", + "integrity": "sha512-kE5wyCQJ40hqUaRVkyQ4z5+4juzYsv/eK+aqD97N62YH0TxFhzJvo22RUQQZdO3YnXAk42ZOfOpjVdy+Z0YokA==", + "dev": true + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" + }, + "node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" + }, + "node_modules/ts-dedent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz", + "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==", + "engines": { + "node": ">=6.10" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, + "node_modules/ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tween-functions": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tween-functions/-/tween-functions-1.2.0.tgz", + "integrity": "sha512-PZBtLYcCLtEcjL14Fzb1gSxPBeL7nWvGhO5ZFPGqziCcr8uvHp0NDmdjBchp6KHL+tExcg0m3NISmKxhU394dA==", + "dev": true + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, + "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==", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "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==", + "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==", + "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==", + "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/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ufo": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz", + "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==", + "dev": true + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "dev": true, + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "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==", + "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/underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==" + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "dev": true, + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "dev": true, + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "dev": true, + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unload": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unload/-/unload-2.2.0.tgz", + "integrity": "sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==", + "dependencies": { + "@babel/runtime": "^7.6.2", + "detect-node": "^2.0.4" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unplugin": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.10.1.tgz", + "integrity": "sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg==", + "dev": true, + "dependencies": { + "acorn": "^8.11.3", + "chokidar": "^3.6.0", + "webpack-sources": "^3.2.3", + "webpack-virtual-modules": "^0.6.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/unplugin/node_modules/webpack-virtual-modules": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.1.tgz", + "integrity": "sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==", + "dev": true + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "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" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.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==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", + "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", + "dev": true, + "dependencies": { + "punycode": "^1.4.1", + "qs": "^6.11.2" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "node_modules/url/node_modules/qs": { + "version": "6.12.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz", + "integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/use-immer": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/use-immer/-/use-immer-0.9.0.tgz", + "integrity": "sha512-/L+enLi0nvuZ6j4WlyK0US9/ECUtV5v9RUbtxnn5+WbtaXYUaOBoKHDNL9I5AETdurQ4rIFIj/s+Z5X80ATyKw==", + "peerDependencies": { + "immer": ">=2.0.0", + "react": "^16.8.0 || ^17.0.1 || ^18.0.0" + } + }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/verror/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", + "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/web-vitals": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz", + "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==" + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "5.91.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz", + "integrity": "sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==", + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.16.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", + "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.4", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-hot-middleware": { + "version": "2.26.1", + "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.26.1.tgz", + "integrity": "sha512-khZGfAeJx6I8K9zKohEWWYN6KDlVw2DHownoe+6Vtwj1LP9WFgegXnVMSkZ/dBEBtXFwrkkydsaPFlB7f8wU2A==", + "devOptional": true, + "dependencies": { + "ansi-html-community": "0.0.8", + "html-entities": "^2.1.0", + "strip-ansi": "^6.0.0" + } + }, + "node_modules/webpack-manifest-plugin": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", + "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", + "dependencies": { + "tapable": "^2.0.0", + "webpack-sources": "^2.2.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "peerDependencies": { + "webpack": "^4.44.2 || ^5.47.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", + "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", + "dependencies": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz", + "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==", + "dev": true + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==" + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "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==", + "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.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "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.1", + "which-typed-array": "^1.1.9" + }, + "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==", + "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==", + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, + "node_modules/workbox-background-sync": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", + "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", + "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-build": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz", + "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==", + "dependencies": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.6.0", + "workbox-broadcast-update": "6.6.0", + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-google-analytics": "6.6.0", + "workbox-navigation-preload": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-range-requests": "6.6.0", + "workbox-recipes": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0", + "workbox-streams": "6.6.0", + "workbox-sw": "6.6.0", + "workbox-window": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", + "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", + "dependencies": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/workbox-build/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/workbox-build/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/workbox-build/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/workbox-build/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workbox-build/node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/workbox-build/node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "node_modules/workbox-build/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz", + "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==", + "deprecated": "workbox-background-sync@6.6.0", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-core": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz", + "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==" + }, + "node_modules/workbox-expiration": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", + "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-google-analytics": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", + "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", + "deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained", + "dependencies": { + "workbox-background-sync": "6.6.0", + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", + "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-precaching": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz", + "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-range-requests": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", + "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-recipes": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz", + "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==", + "dependencies": { + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-routing": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz", + "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-strategies": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz", + "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-streams": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz", + "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0" + } + }, + "node_modules/workbox-sw": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz", + "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==" + }, + "node_modules/workbox-webpack-plugin": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.0.tgz", + "integrity": "sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A==", + "dependencies": { + "fast-json-stable-stringify": "^2.1.0", + "pretty-bytes": "^5.4.1", + "upath": "^1.2.0", + "webpack-sources": "^1.4.3", + "workbox-build": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": "^4.4.0 || ^5.9.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/workbox-window": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz", + "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==", + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.6.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/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==" + }, + "node_modules/wrap-ansi/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/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==" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "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==", + "dependencies": { + "property-expr": "^2.0.5", + "tiny-case": "^1.0.3", + "toposort": "^2.0.2", + "type-fest": "^2.19.0" + } + }, + "node_modules/yup/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==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/modern-react/my-react/package.json b/modern-react/my-react/package.json new file mode 100644 index 0000000..4f89823 --- /dev/null +++ b/modern-react/my-react/package.json @@ -0,0 +1,82 @@ +{ + "name": "my-react", + "version": "0.1.0", + "private": true, + "dependencies": { + "@emotion/react": "^11.11.4", + "@emotion/styled": "^11.11.5", + "@hookform/resolvers": "^3.3.4", + "@mui/icons-material": "^5.15.15", + "@mui/material": "^5.15.15", + "@storybook/jest": "^0.2.3", + "@storybook/testing-library": "^0.2.2", + "@testing-library/jest-dom": "^5.17.0", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^14.0.0", + "classnames": "^2.5.1", + "msw": "^2.2.14", + "prop-types": "^15.8.1", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-error-boundary": "^4.0.13", + "react-helmet-async": "^2.0.4", + "react-hook-form": "^7.51.3", + "react-query": "^3.39.3", + "react-router-dom": "^6.22.3", + "react-scripts": "5.0.1", + "recoil": "^0.7.7", + "styled-components": "^6.1.8", + "styled-jsx": "^5.1.2", + "use-immer": "^0.9.0", + "web-vitals": "^2.1.4", + "yup": "^1.4.0" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject", + "storybook": "storybook dev -p 6006", + "build-storybook": "storybook build", + "cy:open": "cypress open", + "cy:run": "cypress run --browser chrome" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest", + "plugin:storybook/recommended", + "plugin:storybook/recommended" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "devDependencies": { + "@chromatic-com/storybook": "^1.3.2", + "@storybook/addon-essentials": "^8.0.8", + "@storybook/addon-interactions": "^8.0.8", + "@storybook/addon-links": "^8.0.8", + "@storybook/addon-onboarding": "^8.0.8", + "@storybook/blocks": "^8.0.8", + "@storybook/preset-create-react-app": "^8.0.8", + "@storybook/react": "^8.0.8", + "@storybook/react-webpack5": "^8.0.8", + "@storybook/test": "^8.0.8", + "customize-cra": "^1.0.0", + "cypress": "^13.8.0", + "eslint-plugin-storybook": "^0.8.0", + "react-app-rewired": "^2.2.1", + "storybook": "^8.0.8", + "webpack": "^5.91.0" + } +} diff --git a/modern-react/my-react/public/favicon.ico b/modern-react/my-react/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/modern-react/my-react/public/image/_wings.jpg b/modern-react/my-react/public/image/_wings.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8052569a845fb5df8eb5af5b7e2e4472119b6037 GIT binary patch literal 16770 zcmbWe2Uru`x+pyKZs=7A(vfDP2uM_XAz^F8( zB+^w>lwK5)@QKo7q7p_@xZ~OX-Fx5vIp>x$50ku^S+nMC>#d88@eMj4d(hd<84!RE ze*u30*kAy+obcfx0O01f6%YpiKnU0_AP8u{(2hSR3@gIlhv73kT^JC6zt6(wpJQJT z?rgC3kuY2=E+!0jUfa=A+dDie2p1m%Keuh0rR_Fr+wIoc+pTQ3?X=xt1J5jQ4?f{1 z|D1yN{xO@XH2lv04-S&}GcSx4Q~IQvqa)_XF|@PWAtxAJ0FZV)6dr{Wlm&pusMrg~ zT=r|9^zqdedk+W#5`ZYM9RLCXW6pbcIv@WtgPW71b__h|5B#r#J^CN728PUBk7#TE z>-zr{Bo}!8LM)8?5qR{@px~H57*2uVbMdj~|6B)QSn(|O4=gDB2fhF!2*av>;Lv}- zrvEYKAMoBka8P7a5Ip7&&gX+7gZ{wXFr0BQE*OS|4#9BR#qi*G7#@aUy>oGq;V=xr zuwrCz0L*D&n16s?Y;a&03~z&B=?lk?Il{0#0EkP6{u_Mu-{9C_Jd7s*IO5Jl*F>0NAX;yt)3bYiDl* zKyxYps80Utn%+GCK%@Xb)4;#cqx?r-!eV33+gez}$H$w82M3z}Vdy`P|Kosvj{L8I ze|w+#pZEQfciIPnLjvN?#cKayY9Q_$F7ASM%=v)8U~RMizY_nqAN)78{tXY)W5FT8 z7lNbUS9!r&79JG}i#sYPJT@E`r5zsiUrG4C`PjeV@CW>dUc-PwIUi8Om;Pr3J^L~3f~dpO43q=az+>PU&v2ZFVN zO@bYQ{emNcbiqZzRUtq~N=R8~i;$U+jgX@dTF6%@MCgJLQ7B8OQ0RfsW1$wIKA|BY zy3mr)Z(&hk1z~MrGhsVnSK$-Ffx^+kMB!_~#ljDTn}oZChlClzpfF!VMr5;yiHNO; zo5)F#P?30%G?7A)N|8p99+44|FCuJFQBh@4Ls4r{S5Y6)2+;)5Yod2WDWWe$KZ?$Z zu8N6?sfn40?GZzZ1&GCprHS1Zs}-Y(4T^mcgT$r8k>WeVoyC2{qr{WM3&kIaQ^g0x zzlw7tWF_<^Y$ebVK@yiF@+8V7S|kP}zDRH+jF7x4`IqEl$sWm1l0T)S zq;#ZqOC6O8m%1YLm(&xfS5geA-_r8ZTcsVPPf5o~=So*ezm%Sk{wX6PV<59v##bg* zCRe6frb}j82HK>s$$XRBrl3uvO(mO}HVtn2j*vj;BlaQu5tk8#hv@R(tTL#wrmCU3S2b8QOO>KJqPni8t>&bLRlA|qtoB)5SbeMdQT2HB zQuQA7B@IOlJB>h%ERAOxlbZ!MZ{2)sbHe7b&2KlaYHDe^Xr9-+t=Xlyq@}F2S1Us6 zmKIfO9;twIK!zi4A!*13Z6)n}+UK=>GJRk= zW+rX6&+MXEjTysS+5C`sl6kZFcMClWUyBy`g=ueYySY9-Tb_d+zU{ zJ7_zcak%F|M{Pj`pdO%@dv*5)?XBGVb)WIRh<&yDzVF|*|HA&p{cDc4j){&h4+tG_ zIgoYWy_3At38!MGX=fehQ0E$F(8bav!R4i^h^xEn4c9R@O}9X|YB%tp^})o0-R{!v zp6W;+`tuRPBhg1%kBS~Wa(76+AJXk38AO_aDzYK6S$AMBIr^FND`AuWGL~?*rcX-t?0eClgQh`>6Yb`#kp* z^Y!wr^j-CH@+vs0eSuoHsuqbdbXm8N1p!wiE!TG^oL-vH^hkOg&6M8drJ`5FB7`7Dd7+xICig1k} zN33Dd*edMCIq!3nNb$%skuRd;qp(rkI4v9=_wl^R`Ly%&Xxr$5Xz+sjg~}L#nA0)O zV-?|G>TR4+TxuNSqQk|Ki%`5*d_7(cABBH=Y3rrTOJ6TLU#>_HP6$lsBy1sEB`^~A zCEh0r5YG}jNxGyI(w8ePR~}xKyo$a0E@@j*e$uaG@8p&g&6F!Cv#BnrHEEmDE~Jg6 z+oh8;gfqf3-e>O2yq(F<3d(wuy)C;in|m$r+MAs1Ie+DBiXyn z)QyMva`~6@XK#AkY`Ud=E9=&;0!+c{!d->rBFUn-BKlv4{(62}@AmcE+~Tm}k&^u- zlslX6WZqf38+3QDbZ_ZnvL-p3ynZkI-uQi&`%MoF9u$^|mR&5HEB7kztFWo4u2iqg zuH;okRnZ?Fd)QrVU0wZX^P{{P!J4?5`Px&pAL6xda z&)lDN*4xxSZqRSI)2Psx)g;h#sR?WjYoTh~$`L^+$<-5lBR_~hztOuTd*!`j9qy0zfAZoB<=)h3#u-kC|$l;NXqbEkk z$4-sW$AiYdO`MxxO31v;WJm|2h2s_`UHGkQ0ZI850uF0R-g) zgyaM^x&b5{(}?_I?mw~0pF==UNLWNvOk6@z3LelX3kV7b2?+`diHHcp@r*zsd>;^& z6OrGteV?ep(Eu@>XvG~@Z`>Ex-T$;h>DWh5Z|B(yNfMIEDynMg`UZwZ##?t;T3Ord zwskz<^123`X9Ok0HJ@f>_4ST4yH>`SXf9{>Vejo}@4ME9O^6bF@vNb6Z%atJbe(GJ z@Z&7ssWiFj((kTjAzylD&)>eN++?kpk)|S*erl-Ns!WyQU)L`0eIZh>Bpm73*=F2* zC%Rh=BMGLtWiZWk-bZXbc}`3D&ZE&9tCEXZgWFO(@A}@1t~z)p_*gCD@Q!?rIn^F& z-vC4edD&Fq&!@v@6lh^9X~kAg&kks=r8nf9MXTdWdr!WWQCds0M?_X*Cfu*@^@+TZ zYoo-C;E$8R6El?T?qq9p9#j0N9<3>aIl6kT9HsOKW3YdUyZod<|vWH=^c|% zDf+74?^30v`_t^#)LGZZvwVr!4M6xd^nw#%(=8?6j`4WVfxU=T=`)0#U ztHR=Bb}~k9#57vS8RWVejzqaWY5L3dKyhkMdrvWOAExJ26z;Z*F}*f(u3+x-qp_%M z;bC+0Jw2VpErivrL!S**n*({)Z%CoulKAkKjrOkVUQidhi%UkRw%jHjRX@SnUcKv! zwCVPdYNl>x-)m#1fNi@kZnu_rU#e4Q^9H+aHjJXTV!*?ZR?N8P(Cyjnl~bbOjdM^i zlM|_9bBjClYOHDdDHrk0`J)Samoc8i{u%IC-ncjW{fK$n9*z}p2q{C(T|kWL;~!OBAFB;LDw zrXG<-)aeTi*KAuK>)sRJL)9H!H7Pjd{^-=fxbeCrOJfbwcL9;1>IzM&5B5GnA!zgp z6nJjt3fF>>Wb#5#rX&sl-=3X7nH+cR*VnmoM-WKp^;ld(S z9J-;=rPo5(5fSfYeX~#I?vuegnNz<$<&)){v&pi|Cymic^27lt=W<;SHoIW!>)~at zjn8T#=_`BRy5*@WSF z+C|j(T_rBK0d&xipchS+)Zs{!gsSLkeN(T*mcu!=Q{he1J821F4gGmp{(>)VH`M7e zO^c65_cjp?nntv3aT)j1EU#J^K5chOiFojSY+Y`+(L_e$@UUf~*LNwIod=(_3^!^l zRx6ueO{7%yTH0El7v$ctGULJ?ud&KM%Je< zdtMT@R&bK}bP*}R%v~`0J1BR~rV6@6QMVO2^Z5RibK8XFFb|PU&0OUYI&w*$V@Z6o z0W{!x5vgRA?|sXG_vih$fT5iOh%S0Bl+3tmwbr3-k+bT|3i737)zzLMd!%<$wVqPl z{aWu9wLH>M$?-iX%FquQ}dReKMX zf)C3jw~nvX$H+l+m8v}-jQw3jBO&mU>x*y6K4ZV!ZT9;;yWOZa{pMcr@4VS&uBH!1 zfglZyu(0&HuP--%$(_AL8-Rp^E`EUVxQsaf_ABL2PvuV@c0Hi!m<#|DsM5S+1fuUlVeuqM-?a0aNp+|sl)coNS$p=t&v`{o; zYt25wt8&;wK=Mk7TKsp&hIRbVEUFtL!QBn6j#gp8y4brrI6b~Sj|+H>b#B2d`SAN6 zO#_}6{$RU4D0E#uR~ef#vH!ZF-ca~y-Sy}Pv`r{_1qt*gO(eqzvbwrpBW%pIggRIz zy`@{A=nBH2=S7SZ2XV3o$iGpy$k+W4+irKVsGDy#^mpFL0`B(2=r1lBsZGzDuQ#vU zI*tTAXpjYY={`)VImDn?h99(JFUjvHS;SH*%-$WV>D7^q1R2h|OrQwgLT z&hGSJIY>~AAq!6^xoj$e-AvU_M>my@brySk?g8Du{=l3Qimg?q>7ba~5aS8_oHBOp z2JjM{g5mx&l20jrTo(IZW9Xj=rt>#FZ;ZAvJ1j|TcukBJf2T#81ev_}^XOd7- zuTjxzyaDW?!r zzB!+<*4VEsJ4i~iA$7ErTJ%exReDb)Wc4yew;nxKozj0^wK_mI`N8MU`WS`un#^t+ zo0fS-*-^{%%ETA2p9gsbW9)8T4Rtd?YdGhvztm5PeE`eg`@3n4Y!U#S&}|=$y!SkB zuHnV7dHGPo!_ZTI8ICEP*d&zdZ>Y8qjYR?P~+rT*N=N89|DxW9r-fv(+}Y$6J~Gy$aw!$<>ke!m)EIb zLm^Nyojr0<;gw^IXin?qAoB$82@-g|imR;P2|LV71l^AgA_Sq4(@xJF z*A#l@PCPOmST;IFxL!rfbO@iSDQz_&DH4bM_b{b5fWA*E0^Z%jRb2#`0{WNKuG5c> z^@MC&A2m^(t*^1gA=2i?3RQ#3LXCeW8p7+v3Px_8-$w&Iu9E1dL)O2}l9shh3ll7^ zA`zB$dhH)dnIg}hJcr7dzt5JAF-EREwKu=sX5G?#<5W+y=nb=4av0`IA0wWtNa0Jt zK1Sptukzdm5Q>~wV@C6C5fwidjuN+ExRMRSZ5CC8tx&kqr;E+ghOE3E#TEzsG0Wzp z;KqibrN-0dGbe}5kEt%z)^UF?qYB1v_Rc8T$4PJDI?b+R%*YW=D2lIHt4wRdD&H2$ zeCKmE?|n;4zTaIeX4tZ3RpjqW2G5_j_V2XICygTc;u`?0BNJdeSHY3(3{pCwrG}}Q z9O~}oA^S*>BthpONav@ccAOj^b2UPLdjJ#f)G~TaMrFbA`6}OC0fu_*V z6xiuu?LBPo{ishd{2>O-am0sm&MarjdED9dD9_ZA8%ks!~tb`O?wZuW2mLoA{71L$2Bz0Tk--H<%G3{qt zj;PNSn0z0kz2aMv&Qh*;lNv3SV>s5t0p%y}Oi?P-op_-R-~Nu)w@<;QYNm$VtPIBZ zr}$EviPls67vh;hQx_Y`^a^ClnO&}e*@z>hqw1T}E0Qdvi2WF$w%uhOWs}S9k-EJb zfTAx-eSzgS)sxbc0tup0!yW?KzCV8~390a9Ja}Xss03CvWtLcVqgl*CiCv+ z3>RIF??L4_*s>65LD%c;9mMi{pAT|{&iK3tz|!xc_BM$L=?tH@1;#Fy9>HXzD$$S? z?a&bXO5AueUlL}ih$YLcT!W}Vu%|(Zbg7c(opp0n;7SJ^7%39m?;ZGonArd#@J0U6 zzHs#<#R0%sk9_mD^w6#qMXo!GN-iI-SjpgGSwcNt#c_9{<`NzKS?H`){BqsL@~DvZ zmJ!MaW&8Spo1?TR$SDQ>HWXim#JfofeMMt>vk>fQ7AA!dGpiA|0XPkR=UOv)zH98v z_VyQt)zpXf4LZn%c^h~A^*!ZSPMyx!EQ%|u!M?Zwq+N&Cel5S>R)0BtieL#gcdu;# zNW$@V$h$HXRUON=I3?(;Uq;53z=k8#;t8L zz|y2&o2I`#)I5jbs&{bgNS&}rPAc~09v?nO{K(hqjugi%s$ z#(_H5U8Wp*W)TVt%723tMzYTJZv|h;U`*(;0vsO>@g>Vxx}BF3*QV^PIW~~WOR`YI zO~sPB!!@A+(X%V+E!~^se;`%yD<_Al&RTB=*Nyc9_oB|y=+k~0=<#g6gcK}JF&L5T z#il1di0(_Y%}kh|sT3BO@iK4OYTH7w zOOnGDEMI`N(q$ogiq2p0gW?PdVoZ9jtfP92lu#ta9+Ev__dVEj$LBU!NQbdLWBHa) zD)Y0&zClKzcj=lR%O%?~V;4vD@8bQw*qXb3M>3Sp)!R?(HlPi)@+BK#X+Hfxw1r>4 zC6+Rgz$neus$yxd?VuBMk}QAVna^bCv5{3;QmI&a*E%gN@~Fz&=Py_mNy~AIyHcLJ z#U(5|EYMs1jPF&uIp$lOY)4l1En&Jyc^GNpR)Q!_B!gCetuD z*90dT;h>3D*fU+8vCKB9Ila5W@72kb=HkJyAVJr01nWJoifko*YZbBVHvcoS^TT005W9K0iA|v z+smWU&JHL;cc!?9!J^b)aBPVo^KK&V=m=4RI9R&15wz~HKzw^U(6YPDGKPs$#2$S4 zI|-#GoU+yD3rcnaID?w_j)n^sqda(>hmxPQ&y}#;XI-u~AQWBH>+StT(|wvpsM;72 z|C4@r-NP)Aj?F>7cM3LNInH?feg@qiv;H?M-i!^Px1B_vz)b|QeVR9bOp9*BlgOn)By+qUgY$yj}+9Hda?a?Ks|LXvO`g3 zWiNl$wJFh&5~mz*WH4DK;;ij`?Ivn~1Ic^={0<&-`sQhf za&!Yo*#MY|M_zTwo$~XA{1~tF2)%nE( zZAG2@oiK9)@Uz{vE-7tFOxpO)9=^%gitZ4+79h-N9@%~$Qxkin#K1&T*J&`S^2IPk z)g&@Y_3l)7=N<2#?XaUH@js%#9O3}x+1gTT#mqS>RKv3C#;DjIjl>xkXlX!4?;EB! zxO?mq*Z}gR2IL4%g-q>z2vl-^km?KWaX3!!A%)_gQy9=Q2gOV)3t;CV_-|B-2<*7wiXYojoJybjf+f8~Jw-qkq$QNt z@=aK8hoKqeQ?bVKVWf1#WX^P{mer3&O^3nYuHJIe)Bde3&unYTjJ>=B3JTKHe9$7U zda{XFZa#_LfPCsm?3e+M4CIo;cO@D(45axRj`a1cB)z$zT1#ShbDdwbkHoek4~sZ2 zdMKRE?sm|UzH|}1xm(Xh&-@w%?@+Z)o=3u54LMD68(dvhpi^Fc_H!EjwP=QM9WixK zhc+$r9UELV38U=d?SC_8CR^82K6=whFRHwzJnN0CPK%}q-TLKcG0&%?4X9+KuE;` zZvc+5s&ICu^1TcB!<7q z1WM)@a?i1PTj{7|Ok;drEJ+rx(la_bnfPfEo#kM`wP+e{Q;M!|tkL#s-?}&(>-kN^ z>cL4bw~*V6LN)3|Zgw|m(;~~#_YxItvEr09!)S@ge zEAeXYJGXSZPXxg}$C`wNllDN&B<&?x*)p#Ib!F8CM-XD|*Kqy2_-{z6XU9Y$?MRaN zRqXAC&;DIbBVI}(k2j^V3uaNcGCIcKYPgrL(3#?W|X6vk1uAgq`_p_)GRn zB$6lv6*v4bJ&5!xZR_RRfvYWUQe!XhnMz~M@RI*U?!kGp!u0s6m z;X5-5X1@j$3HDHjFy9c2??H%m)C|zGDe@kA^$_LdPfSE{TtlJ1{?k^o^Ja5dJEH?0 z`h9w-DwUFql6=NDdR2BiXkyyW-avGrQSEi7+lk2i<+?_P-KzD~^coKDh+oTdXQxNg zKCbjExd`IR7$~g(d|vifiQr46>esd(j~EaTAMU0Xu1hGkbVxhbrWF5E=$Ri< z6QA5=d+X3{`ET<>yD6(0qn3#lUF(OdDcIuF(i;!LisQahY9m^5y1j~tw=3qG2B#O) zQ&)%I%1^%6a1F`#*_?VH^L7SMyaAXXA?q>rU9fqn9(G)AkQfuA6>+h}@G9T1hl#uD zuRCTD;-0Wa2c20Q_7u!nUhXb;!B*vEc=^lbE?n}_X>KgVW^Oihrd4C0-70*^#5e{@ zbRTRVX}rQHN?R!B5OEOw0Pn(V%u8x}=Y0w!U9k_`Q&)N$q>fIZKdr#c0(HyfyZ4`J zRAzUr)!)AFSvx<37)Sq-)Z#S>`VUcvU-GS>oJZfd7s)kkRQztEG&SzcxK{e6!jR8&5OO*++*>c9C#nvd=tmBJ4LH}+-$ zLW+XiyQ{7nml0p{@4rU&#IVKLIfrJQkO4 zb(1f#$_aB@i zgNxcTdVh8$Qy#*0`EU8Syb@QQ|FaXeQfAB4*NREZ`QYaL!5)<>|2ZXPd`&kvaM`^9 z40_qaSxhF9vyb!(^}%38%gLzX3&{d9{ISd$W6Q%5DkofmCRhoxq%6`I#FR&y8!MTK z%jFwl@56pK@7j;wmnpez=xV5#EgVCiKAW59F}oL#yz%IvB!C>v<0@LS&+^J01V|n2 z$Y)hcDja*RAk@!thqDbjgsLQ9L2@T1t#mt!N?~BEJkac9s4il+k z>&wK7vz)zc1ropYa@%J9bJRa>0GrC;C30s2m^aZ9f-}%O-aXnn@|&2+kLl=!xWzB< zlIOyiZ;}zI!x(i=g8~_om)e<>Nd@*n-hHY(S06gcBmSN?@7N3 z^58gy>B9ej;URu0pb{&;D&ag?LwqUN?+c&eJ>)C$XD}+OhzWPL4>Ze4pd0o~b+B%B zz_&%Ia?ng49|;DJ$4q`O2g`!?@MN-63>s1x9avin3<1K!H!Lmz;j=@ z3Mlq%D27AC(vTZKIBBAO7Sn-3aMd77<~%{5n&1z4&!W?BU{P{>ZFB%V(ZP{^72JaXYI?eF(kNvhIS9|^PkdDTvxc01E;?C`Fa2O(%EmO;)%s-fs5sD_oKMuZsGW{|1| zkvd7R?Fd0l%A=%D&f8w3F;Q{@4{M1!A1y*7{TGk2%*H15b_SHyH(fJ2=|!tTK$b;p z6^O#w%72e(z;wg80$HN%5*W{{>cwTPBVp&N&$8>7TuCBeRJtgsR1MDI%$lZ5=4pq? z?*r&|mP=mSnXE$x>vJ~k-WMl#7~DX~sl zmq`MSV}?%&<69RF%8bRsbW`;f)QJU`qA#5F)Svt|ZI6*bOWt@kIn-VJu78Ko1tRG` zRsGdB_(i_>7;JpD5DtT(SyWAeBP`O}gsm*{RRZo_M5!_>K85SV*-JIw@A1}do;$JFg1z2bVpOFtSFNrr+@kkQOldt+uK zhJ#{wFT;7$ON@G5H{btmATuZCNZMD1b*6!Hu+#J8zVP5mwZDViu?Y2u9Zz3UR+T6} z-$J4Addug}w77KVrB62JI#}}GC{v{dxj2T0OV66aCMcVAqwO?~kzjVY^DBnjSrZM~ zzOiDdhaWxNn32$bfOD*;WlrR64L|M7nZTi3H$#?Toxq8n*EX%q&yPAOs)>+xAi?M{ zuKWNKF8Y82FENd4OC1#v%`=ULORb@(l6#Q%vK+pjsnXf+;l@SFG^YeV(_wz?^H*c3 zQAc92eixcmqOrcU$`2Bq8WzJ*mFq^EgP22pWxrw9mvjR5NUuos-f%pT?ym}=ITxTc zICQ8lTHeEOH^FSeC-?9j!nkH&3A1jrI6H`MlH3z7p+yGQy6aV&7h3#l*~&LQw^ECu zO?PP6AxCMGSoU3b-s1!`w4G@oP8=pRpqKn+XObOspD9ETwOGw?3))|IC=RFZ>u2{) z2;Icm+#IjYH9gd1t$ysTv&3=tP@RL1W?>f$i)Ra(t5C#VW*Jn&br@Wy9gO9SvgHds zvLEymMET`0R!g8UV{pIP zX>@kD&54!3ZekVQmhL97mK1BEX>jIU9*~B+DE#rTgqcRBCGmhq9X%hF8=f& zYygeqXRxgsVDIFm#=89?O~lZVNmRAdGn4v-%}nS_8w=5mmh&^wOPj&K9ov%D&!L`A zttIB_%BFc)YN~&kF~yYFaROV5PCa6OUp)uGxs3%&p$8=io8C!UZ>iwOs*Dg*hVpU) z(ENtk6!%$&J$rbh0hhtwHD~~OcP)D#q}9h2_j@+8iZWu|BEMu79xv7ldv#uh=){Fr ze$q_>;RU1yq8Mwb-_3qmOvcm2dT63h318B6(y4ngj@Gr32G>IRC}~6l^vKM2($cCJ z)w2iV3(i$ArY=nTSJ2HuPlwD%@66&~p&E0IL6u&L$Y-uSbo(CMe|4uX@~|Cz?e>qk zRkh&~F^?drUSF|1uGy}!V&(hT^PnF@=~CD4F684Tz7Kw^v(R~7Uz~7>&;_g5GsM#8 z*-GAnFD&cMyP`jSvKzp>bgmTVKty4@?`U={T*9NJ+S@&Z&|SX7y1KB-6^+wm%k=bB zzr_T<8i_h{hP+;;O`*|UK~LY)r?|hNbj~H>@H#RT6*eGT(c#H^Q+Ic9`&PytAW zdC8I)$fYsLxFp5~a1|qK00pziOhjti(ZHHM#)|lY7hiA4-pxAQ-ZJsQ!cHvPcTY`! z?R@^i=)71aKAkU#QUT|h#kw#l>lJH#E0fLazj&pz(9b5YfJET}@ipJC$pkr$ z5!VeGV_0O&DDjOUYerE<)M{QvanEW|mxs=bJ2;cRybI4P{PELgnBW*$<;*T5SC+z! z-6R74jn)pRjKsorBN1_ncVqlmdFgyzd`+hnO^IkWPZA}>u{1i<-Eo@;`{4jn;UMd+ zgCy%~&a&ReU70GLBfm8IUxW3&9m6<=M-yuuNnQ0n3tt`@$qBTJ0=Wo)^K6Zo06G%Z-PxcT`IL0?Zjs(jbPuk6fIPT{=W1ZCb`B3$e)6&~hm5=_B& zqj|7G$YOnGGPynpb$D`5sTHdzhwH<1y_bw(#pgL_Lo=s_<7PDQkH1fjzE_LW^gPLDaq(3iBUupfy+xa-(amqbG2vrYHNF;L`Gg}G5QLMq05RgvlpXJ?b*@Q zRjk6*M^4R5?c@~?IS+X*?})ItWHHf?vPCW9z{^Q#~PfN-maYKmWDilsiLnuL`C5E_e{ZOzV0(^47Yt7GuKqbt4Y zOOxvuY|&VqSlUvZX-MWJ1e`r|>?K8@Cu`vBLzZere5EA@i7?PSs5esOU4@JRX0ZRWOHVt6iT)$vF0`L`uvfJ z`Q>QTXUt|=fW-uvoykfa$mJX09edKdTL#ih+hk_lDFSdH+XdziF!QeNS}ftTqh8La z{34|~*nO8WjEvomS_vXDm%gQ9>}Va}vSIUw<#owoX8>88IP?#i3^Ig3teKuv0N$ocqt#8pCp z%#f1D6XDhr%l10PhsUDXQG#FiRG0VaNUl;nyLp%>L)go^R{^0xj3+Fa3{LN#QY7MYQbWmd<`WBbQ=UdF1nFzT_--&s3 zeEo3Wlm&+a@2S}UmOmnsh}-AAXXtdm*~!P6pf@P{8MP z&B$?GYKU+B?T5Fp#&RqN#Peh-h6|@v$5zI?hvL2tNAlkpq*u?^t-H}t<6>+KhGAue*;A|Mt=BYodULM*>G#cWnfLO-s z#?}v{XVXJR!C~9>>h$9?_;D{1=&>^4+t;OK3@+KCd!0wx!YO!6x4!{Y6~j5gAMz$? zt@^D9kHg!RQcS<_?nM#JQP&vYTuBAKr2FD%@d00E_;x4CH1k#a=dM>Gv+b?K^bCS9 zuaRoWb>ls3lL2Xc3dDhRi%v`i98ub|guB z6Xl?>I#P%G>IRTYYD6q4F-cd(itnZ`-K~O34h+Iw=(&*AWZw-SwV&fke2>}Oh)SUe zG`32`dfn{iOO6mUu?ft&ttUwJ3)J1UM-Gz+2m!r!FT963m4D=J$ou#Fj zdW&UD^nG8h1w>-lt!Tbu4Kd;6QM(kC`0b>8WqtE#EV6w6GMGB_(@` z8M(CXRU=(gTwAQJta*DPedZIgHe-Ru~%9ZQMJIo#(mMnDB$ zdWgTYYNkBLl#)3prRh8T*#&p;rcUDB*_m+{b{Oo~@>2X&h6%>A7E&%C@+FI~9WH_3 zQpsw>ov;M6VH-YQ{_V2Tz!h&MsdEMyuC-;fZA)AQgx%*pCFA1R+T2#;mh_#W*Oq0M z`b&yD5lWZoTbfVc=u^5Pw|22F4cp5lfD0>(rkupbVHXwf?w&rhM$=98Wee9MunF;d z-VLwCGk-;>czfSG{pqw@+^%{XmE1zFdXxhyn54$_hE!NL>9i#tlLi}{&3v_aQiJdY zpv85sM#0swv-lGBYZe`sqO}PMO?==%N2@K66}e8xlm?C4ZJsqQmnvS(&$(6d9;+T{ zd-nP#oKKUmq{#tz(@2BZ5@!}pVX-J_f+Za-OgIk5NsqaE#_Wa6^15rXaT&fYOUW#; z-f4j+)Unw?LSkg-qlhto1n8V?RXXI`uY8v>y64qKQ^s0L%x?EtzI39;`IlO}&^;azpaWWn$#QL*9K)8g%G zkKtOHa5FEXZBGThb#D{o$<#!5m6}6|bp!*n44ype(uY)r5?+#|2rf0@wsY;^B7HiW ziOE=l>&e3Q8u2w@wtDsBc;`LJqNlY6Wgbk9POG--&Q>j%!JDQ(mYSFJVHE6*X9bvv z=*}jpAS;3|}f+U(VqbU7?zcbM;u?GjS|*$CJ+s>-CORSXPA9hsSmC z(yrG}e|Fg>RrF|2E1leZiNB4z8S-SEUF?KoI#L{KCu1y$n-E7wEAM4b8^SfaY=T`C zwpmMQjDZiFs+s?Z*;Cgc{%CNrUVFSV>-#QEu>;`a)CW*tm#uRNY%w?CW88)skce-# zmIc(3@~~oq8=;%X72)b$cf-}40xG9YPIXAjc4u!sy8mI;qkDo$9uY9$%K+-p>VJoh>Gb)C<3?(@0cug`s7=bR7oJ98EgvNE?c z2iVxyfSaraFo}Si88pxz0Bmdk6#xLZS#u%)h&5tkwSO9O5-gMC?=O1u8@J@I{hsL({j?OOpm+qe7ZzH2)P`Ckja z7ne3Rx3+h7_bB@Zhg@s`=)bW3P4>UIgjrndtQ>G~9dfa;N3k3v%)u$Ec|_!*J(u@A zQ8}#yZm~=01vQ^}+r7xL$}Kj~T(LPq{EP>hfc8>3aLg)hz{hR79^2DbZP*pRS>OeF4R#CK7wZ3hJt4D@; ztSf#itFi=q(?=3KcbEW&7rpv!+yn9^l_-;@5acBpXXMCP5vA~S?M!;=KGbl%{-(S< zh;RPj#3qt*CWlrmI*Ws)xCU&D=$Frsody%#@GId|GfL?0GYU-9y}Ji zHUF}TdRG-4$^2|qp4z%DQ)J^lqnHe~|h>To6yWb({yzByE6Y0SY3 zEJgn*;*kST;iJ|J?(m|;ABObu_&|V>tfj>65+9pECuNh|!{XVC3`@v84`?Dg( z&(S@06gB_!5(;Q{kP=V<)sl*}lb$jYAL$KDFwDS13Wv=vj;3*4#b?O#y;8<6^(pMD zHm%?E|AbV=J6Dz1R^~l=br*M^Zr5e_7tyeVEunYoRjJjvjr7c2NZfEzlI5~r#ClQ9 zraDc$eOHG(jz=XLv>+oxOg*uqjFZ15#tkCQXI{o_ReNdg6%+*+zL8N?=b#7uf>GoI zSKNun)aU3Y@{ybHB#yDgULu8!lJ5BL{J1yySyJ)0+ zv*Vx&lRYr36i5B5H@CSjtL>qD zH$*Jp)VL~nlELRrwj%{}LJd{<@hKQ=GiqhG5m)5CnXX8&Ri&2sZXQTT>#r@DysR<_~ihmAxQY^m%QgVQTt-@S$0yD6A6 z@9%j*L^X+?4+~u9iSL7v&0E-)f1Dcvr&gY=I$IHp$@Q^xVf?%!;n4AfkKf}6h9{7&L0qZ=jR0<+1Dh zQ(y&DaM;%hIW5!ugtiwd&b5*Pxr?ckCv){3c8D3wlNEcCov0monJAOYkp4l5_pnjZ zxzLo>Z@qGBy4dy9=3j6>f~jmsgWi{u&APiD<2oJ^4DN!BHk-4Sm;2Fgn-laqMCgh7 z_^%y({1CiBr+ul5_{Vw4aP_FH#hGg*x!aOxKFF1Lci!)uE2?MA475B)oxPgxH|J*+ zqipPVs#;iuK0=WxgzjUmPj<#Ue%U7%;y-R{UJYs@7K>^ja<3y|+4a$;^laGdJD6Zg z5EFP7GoDCO3LtsmZsY2HZ2| zurK{8xB_Js>x#M=Kf(ma&UTMlYC}^MzDB04+Iehnej3Cq5)>P!tZz#x?IHToPqz;A zQ^`)NKw@xwcMI7`<}nH<_!L%+;p=w&5psd zxKZ8#!wn`f&O*_S6jfqV-bt5EbP;){f3i1F;G<1c(2F@$$T<8gbYwRNl9!r+tevNLtj33GZ#$$aqpMAF z6?1?y$xGTU@W?{-Xv-b<+jHJ(!6-L zL*Xd?NE8nxaccVZ!F)O4Mwe7jhBz?s-WT!H$&=HOQ@d|T0m9A0(d`|&ZpBW%1RJZ< zZo_FeDsR_=@hx>=nuwAq#c=~NLy|xm2BK*W8(ELqV%;k(#1nOIL_=!pdNwWo-nV>S z_DbjjfUJJs1*1n?^OWGS78DFHbM<5b+HE8OrM|kJUg6x)@E6X76&a}>A}*HE^1qnC zMt}Smjk~GljN1Iv6^a~G1-{uDJ|CmI-`N`n$5uV*i$T&v3s|3Ow(vd^ z_@jk*))@hqkihh8%V1Y2FA8Pr!5*x9ckdl5S7xx;d_iigC*{2F2842rA#8$$mssnz z1a0+k`0UlJPX44WL?*C$Lo|nG6D|PL^H;3sCcERjq`znb1oWF^M~s#-sDm+Qki7AOSq`z36x$ z&h<&zf=YVR%Q}r-%A|fPF>scg^-9*Z1eI!#VA z2a-ZmJPh1V%G;B^CzhS!Q2J*etGlBlxrJ@Mzs>Zv;v znm2J>$TAXEW)(4ayJiyG2$l49ifI@WsiQ@BNc%;t%6NUOfch{tDiHYC&h`;~q@}v>P>| zBOJj51bwb?oJ?P;ufdO--1Fx{wtbu=qTA5?G-)!%K zWeD}yHB3(qYC49KeG;Iw5ShRUC=-|i!x{2-jE^-+#5i5MvV8RJ1>O8JD;L)>1;*H2 z@cu94;8uUk$Yz|P!Ruk+ + + + + + + + + + + + + React App + + + +
+ + + diff --git a/modern-react/my-react/public/logo192.png b/modern-react/my-react/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/modern-react/my-react/public/manifest.json b/modern-react/my-react/public/manifest.json new file mode 100644 index 0000000..080d6c7 --- /dev/null +++ b/modern-react/my-react/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/modern-react/my-react/public/robots.txt b/modern-react/my-react/public/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/modern-react/my-react/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/modern-react/my-react/src/App.css b/modern-react/my-react/src/App.css new file mode 100644 index 0000000..74b5e05 --- /dev/null +++ b/modern-react/my-react/src/App.css @@ -0,0 +1,38 @@ +.App { + text-align: center; +} + +.App-logo { + height: 40vmin; + pointer-events: none; +} + +@media (prefers-reduced-motion: no-preference) { + .App-logo { + animation: App-logo-spin infinite 20s linear; + } +} + +.App-header { + background-color: #282c34; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-size: calc(10px + 2vmin); + color: white; +} + +.App-link { + color: #61dafb; +} + +@keyframes App-logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} diff --git a/modern-react/my-react/src/App.js b/modern-react/my-react/src/App.js new file mode 100644 index 0000000..f498adb --- /dev/null +++ b/modern-react/my-react/src/App.js @@ -0,0 +1,37 @@ +// 로고/스타일시트 가져오기 +import logo from './logo.svg'; +import './App.css'; + +// 앱 컴포넌트 정의 +function App() { + const attrs = { + href: 'https://wings.msn.to/', +download: false, +target: '_blank', +rel: 'help' +}; + // 렌더링할 내용 생성 + return ( + + ); +} + +// 앱 컴포넌트 내보내기 +export default App; \ No newline at end of file diff --git a/modern-react/my-react/src/App.test.js b/modern-react/my-react/src/App.test.js new file mode 100644 index 0000000..c426a89 --- /dev/null +++ b/modern-react/my-react/src/App.test.js @@ -0,0 +1,30 @@ +// import { render, screen } from '@testing-library/react'; +// import App from './App'; + +// // 테스트케이스 정의 +// test('renders learn react link', () => { +// // 컴포넌트 렌더링 +// render(); +// // 테스트 대상 요소 검색 및 획득 +// const linkElement = screen.getByText(/learn react/i); +// // 렌더링 결과의 정확성 검증 +// expect(linkElement).toBeInTheDocument(); +// }); + + + +// Code 9-1-4 +import { render, screen } from '@testing-library/react'; +import App from './App'; + +// 테스트케이스 정의 +test('renders learn react link', () => { + const { debug, baseElement } = render(); + debug(baseElement); + // 컴포넌트 렌더링 + render(); + // 테스트 대상 요소 검색 및 획득 + const linkElement = screen.getByText(/안녕, 리액트!!/i); + // 렌더링 결과의 정확성 검증 + expect(linkElement).toBeInTheDocument(); +}); diff --git a/modern-react/my-react/src/AppClass.js b/modern-react/my-react/src/AppClass.js new file mode 100644 index 0000000..df43adc --- /dev/null +++ b/modern-react/my-react/src/AppClass.js @@ -0,0 +1,31 @@ +import React from 'react'; +import logo from './logo.svg'; +import './App.css'; + +// AppClass 컴포넌트 정의 +class AppClass extends React.Component { + // 렌더링할 내용 정의하기 + render() { + return ( +
+
+ logo +

+ Edit src/App.js and save to reload. +

+ + Learn React + +
+
+ ); + } +} + +// AppClass 컴포넌트 내보내기 +export default AppClass; \ No newline at end of file diff --git a/modern-react/my-react/src/chap02/class.css b/modern-react/my-react/src/chap02/class.css new file mode 100644 index 0000000..6fdfed2 --- /dev/null +++ b/modern-react/my-react/src/chap02/class.css @@ -0,0 +1,5 @@ +.foo { + color: White; + background-color: Blue; + padding: 3px; +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/Download.js b/modern-react/my-react/src/chap03/Download.js new file mode 100644 index 0000000..f38e336 --- /dev/null +++ b/modern-react/my-react/src/chap03/Download.js @@ -0,0 +1,9 @@ +import dl_icon from '../image/dl.png'; + +export default function Download({ slug }) { + return ( + + Sample Download + + ); +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/EventArgs.js b/modern-react/my-react/src/chap03/EventArgs.js new file mode 100644 index 0000000..448d559 --- /dev/null +++ b/modern-react/my-react/src/chap03/EventArgs.js @@ -0,0 +1,25 @@ +export default function EventArgs() { + // 자체 인수를 추가한 이벤트 핸들러 + const current = (e, type) => { + const d = new Date(); + switch(type) { + case 'date': + console.log(`${e.target.id}: ${d.toLocaleDateString()}`); + break; + case 'time': + console.log(`${e.target.id}: ${d.toLocaleTimeString()}`); + break; + default: + console.log(`${e.target.id}: ${d.toLocaleString()}`); + break; + } + }; + return ( +
+ {/* 화살표 함수를 통해 핸들러를 호출 */} + + + +
+ ); +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/EventArgs2.js b/modern-react/my-react/src/chap03/EventArgs2.js new file mode 100644 index 0000000..690811b --- /dev/null +++ b/modern-react/my-react/src/chap03/EventArgs2.js @@ -0,0 +1,25 @@ +export default function EventArgs2() { + const current = e => { + const type = e.target.dataset.type; + const d = new Date(); + switch(type) { + case 'date': + console.log(`${e.target.id}: ${d.toLocaleDateString()}`); + break; + case 'time': + console.log(`${e.target.id}: ${d.toLocaleTimeString()}`); + break; + default: + console.log(`${e.target.id}: ${d.toLocaleString()}`); + break; + } + }; + return ( +
+ {/* 출력할 날짜 및 시각 유형을 고유 데이터 속성으로 지정 */} + + + +
+ ); +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/EventBasic.js b/modern-react/my-react/src/chap03/EventBasic.js new file mode 100644 index 0000000..eae8e89 --- /dev/null +++ b/modern-react/my-react/src/chap03/EventBasic.js @@ -0,0 +1,25 @@ +export default function EventBasic({ type }) { + // click 이벤트 핸들러 + const current = () => { + const d = new Date(); + // type 속성 값에 따라 현재 날짜 및 시각을 로그에 출력한다. + switch(type) { + case 'date': + console.log(d.toLocaleDateString()); + break; + case 'time': + console.log(d.toLocaleTimeString()); + break; + default: + console.log(d.toLocaleString()); + break; + } + }; + + return ( +
+ {/* 버튼 클릭 시 current 함수 호출 */} + +
+ ); +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/EventCompare.css b/modern-react/my-react/src/chap03/EventCompare.css new file mode 100644 index 0000000..1e5eca1 --- /dev/null +++ b/modern-react/my-react/src/chap03/EventCompare.css @@ -0,0 +1,15 @@ +#outer { + height: 200px; + width: 200px; + margin-left: 100px; + padding: 10px; + border: 1px solid blue; +} + +#inner { + height: 100px; + width: 100px; + margin-left: 40px; + padding: 10px; + border: 1px solid red +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/EventCompare.js b/modern-react/my-react/src/chap03/EventCompare.js new file mode 100644 index 0000000..dfa6c47 --- /dev/null +++ b/modern-react/my-react/src/chap03/EventCompare.js @@ -0,0 +1,23 @@ +import { useState } from 'react'; +import './EventCompare.css'; + +export default function EventCompare() { + const [result, setResult] = useState(''); + // mouseenter/mouseleave 이벤트의 정보를 result에 반영 + const handleIn = e => setResult(r => `${r}Enter:${e.target.id}
`); + const handleOut= e => setResult(r => `${r}Leave:${e.target.id}
`); + return ( + <> +
+ 외부(outer) +

+ 내부(inner) +

+
+
+ + ); +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/EventError.js b/modern-react/my-react/src/chap03/EventError.js new file mode 100644 index 0000000..e5dceb9 --- /dev/null +++ b/modern-react/my-react/src/chap03/EventError.js @@ -0,0 +1,10 @@ +import { useState } from 'react'; + +export default function EventError({ src, alt }) { + const [path, setPath] = useState(src); + // 이미지를 불러올 수 없는 경우 오류 이미지 표시 + const handleError = () => setPath('./image/noimage.jpg'); + return ( + {alt} + ); +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/EventKey.js b/modern-react/my-react/src/chap03/EventKey.js new file mode 100644 index 0000000..5af2fb5 --- /dev/null +++ b/modern-react/my-react/src/chap03/EventKey.js @@ -0,0 +1,17 @@ +export default function EventKey() { + // Ctrl + q로 도움말 메시지 표시 + const handleKey = e => { + if (e.ctrlKey && e.key === 'q') { + alert('이름은 20자 이내로 입력해 주세요.'); + } + }; + + return ( +
+ +
+ ); +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/EventMouse.js b/modern-react/my-react/src/chap03/EventMouse.js new file mode 100644 index 0000000..c61e568 --- /dev/null +++ b/modern-react/my-react/src/chap03/EventMouse.js @@ -0,0 +1,13 @@ +import { useState } from 'react'; + +export default function EventMouse({ beforeSrc, afterSrc, alt }) { + // 현재 표시 중인 이미지 + const [current, setCurrent] = useState(beforeSrc); + // mouseover/mouseleave 이벤트 핸들러를 준비한다. + const handleEnter = () => setCurrent(afterSrc); + const handleLeave = () => setCurrent(beforeSrc); + return ( + {alt} + ); +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/EventObj.js b/modern-react/my-react/src/chap03/EventObj.js new file mode 100644 index 0000000..b1b41f7 --- /dev/null +++ b/modern-react/my-react/src/chap03/EventObj.js @@ -0,0 +1,7 @@ +export default function EventObj() { + // 클릭 시 이벤트 오브젝트를 로그에 출력 + const handleClick = e => console.log(e); + return ( + + ); +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/EventOnce.js b/modern-react/my-react/src/chap03/EventOnce.js new file mode 100644 index 0000000..b7d12f5 --- /dev/null +++ b/modern-react/my-react/src/chap03/EventOnce.js @@ -0,0 +1,23 @@ +import { useState } from 'react'; + +export default function EventOnce() { + // 클릭 여부를 관리하기 위한 플래그 + const [clicked, setClicked] = useState(false); + // 오늘의 운세(점수) + const [result, setResult] = useState('-'); + const handleClick = e => { + // 클릭하지 않은 경우에만 운세를 계산한다. + if (!clicked) { + setResult(Math.floor(Math.random() * 100 + 1)); + // 플래그 반전 + setClicked(true); + } + }; + + return ( + <> + +

오늘의 운세는 {result}점입니다.

+ + ); +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/EventPassive.css b/modern-react/my-react/src/chap03/EventPassive.css new file mode 100644 index 0000000..4f3a527 --- /dev/null +++ b/modern-react/my-react/src/chap03/EventPassive.css @@ -0,0 +1,6 @@ +.box { + height: 100px; + width: 100px; + border: 1px solid #000; + overflow: scroll; +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/EventPassive.js b/modern-react/my-react/src/chap03/EventPassive.js new file mode 100644 index 0000000..aac4b15 --- /dev/null +++ b/modern-react/my-react/src/chap03/EventPassive.js @@ -0,0 +1,45 @@ +import { useRef, useEffect } from 'react'; +import './EventPassive.css'; + +export default function EventPassive() { + const handleWheel = e => e.preventDefault(); + const divRef = useRef(null); + useEffect(() => { + const div = divRef.current; + div.addEventListener('wheel', handleWheel, { passive: false }); + return (() => { + div.removeEventListener('wheel', handleWheel); + }); + }); + + return ( +
예를 들어 Wheel 이벤트를 핸들러에서... +
+ ); +} + + + +// export default function EventPassive() { +// const handleWheel = e => e.preventDefault(); +// //
요소에 대한 참조 가져오기 +// const divRef = useRef(null); +// useEffect(() => { +// // 컴포넌트 시작 시 리스너 설정 +// const div = divRef.current; +// div.addEventListener('wheel', handleWheel, { passive: false }); +// return (() => { +// // 컴포넌트 폐기 시 리스너도 함께 폐기 +// div.removeEventListener('wheel', handleWheel); +// }); +// }); + +// return ( +//
+// 예를 들어 Wheel 이벤트를 핸들러에서... +//
+// ); +// } diff --git a/modern-react/my-react/src/chap03/EventPoint.css b/modern-react/my-react/src/chap03/EventPoint.css new file mode 100644 index 0000000..4dd8c22 --- /dev/null +++ b/modern-react/my-react/src/chap03/EventPoint.css @@ -0,0 +1,9 @@ +#main { + position:absolute; + margin:50px; + top:20px; + left:20px; + height: 150px; + width: 500px; + border: solid 1px #000; +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/EventPoint.js b/modern-react/my-react/src/chap03/EventPoint.js new file mode 100644 index 0000000..dcf06d2 --- /dev/null +++ b/modern-react/my-react/src/chap03/EventPoint.js @@ -0,0 +1,26 @@ +import { useState } from 'react'; +import './EventPoint.css'; + +export default function EventPoint() { + const [screen, setScreen] = useState({ x: 0, y: 0 }); + const [page, setPage] = useState({ x: 0, y: 0 }); + const [client, setClient] = useState({ x: 0, y: 0 }); + const [offset, setOffset] = useState({ x: 0, y: 0 }); + + // 포인터 위치를 각각의 기준에 따라 표시 + const handleMousemove = e => { + setScreen({ x: e.screenX, y: e.screenY }); + setPage({ x: e.pageX, y: e.pageY }); + setClient({ x: e.clientX, y: e.clientY }); + setOffset({ x: e.nativeEvent.offsetX, y: e.nativeEvent.offsetY }); + }; + + return ( +
+ screen: {screen.x}/{screen.y}
+ page: {page.x}/{page.y}
+ client: {client.x}/{client.y}
+ offset: {offset.x}/{offset.y} +
+ ); +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/EventPropagation.css b/modern-react/my-react/src/chap03/EventPropagation.css new file mode 100644 index 0000000..b5e7278 --- /dev/null +++ b/modern-react/my-react/src/chap03/EventPropagation.css @@ -0,0 +1,26 @@ +#parent { + height: 300px; + width: 300px; + margin-left: 50px; + padding: 10px; + border: 1px solid black; +} + +#my { + height: 200px; + width: 200px; + margin-left: 40px; + margin-top: 20px; + padding: 10px; + border: 1px solid red +} + +#child { + display: block; + height: 100px; + width: 100px; + margin-left: 40px; + margin-top: 20px; + padding: 10px; + border: 1px solid black +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/EventPropagation.js b/modern-react/my-react/src/chap03/EventPropagation.js new file mode 100644 index 0000000..71c3640 --- /dev/null +++ b/modern-react/my-react/src/chap03/EventPropagation.js @@ -0,0 +1,88 @@ +import './EventPropagation.css'; + +export default function EventPropagation() { + const handleParent = () => alert('#parent run...'); + const handleMy = () => alert('#my run...'); + const handleChild = () => alert('#child run...'); + + return ( +
+ 부모 요소 +
+ 현재 요소 + + 자식 요소 + +
+
+ ); +} + + + +// export default function EventPropagation() { +// const handleParent = () => alert('#parent run...'); +// const handleMy = () => alert('#my run...'); +// const handleChild = () => alert('#child run...'); + +// return ( +//
+// 부모 요소 +//
+// 현재 요소 +// +// 자식 요소 +// +//
+//
+// ); +// } + + + +// export default function EventPropagation() { +// const handleParent = () => alert('#parent run...'); +// const handleMy = () => alert('#my run...'); +// const handleChild = e => { +// e.stopPropagation(); +// alert('#child run...'); +// }; + + + +// return ( +//
+// 부모 요소 +//
+// 현재 요소 +// +// 자식 요소 +// +//
+//
+// ); +// } + + + +// export default function EventPropagation() { +// const handleParent = () => alert('#parent run...'); +// const handleMy = () => alert('#my run...'); +// const handleChild = e => { +// e.preventDefault(); +// alert('#child run...'); +// }; + + +// return ( +//
+// 부모 요소 +//
+// 현재 요소 +// +// 자식 요소 +// +//
+//
+// ); +// } diff --git a/modern-react/my-react/src/chap03/ForFilter.js b/modern-react/my-react/src/chap03/ForFilter.js new file mode 100644 index 0000000..116e2d2 --- /dev/null +++ b/modern-react/my-react/src/chap03/ForFilter.js @@ -0,0 +1,19 @@ +import React from 'react'; + +export default function ForFilter({ src }) { + const lowPrice = src.filter(book => book.price < 25000); + return ( +
+ {lowPrice.map(elem => ( + +
+ + {elem.title}({elem.price}원) + +
+
{elem.summary}
+
+ ))} +
+ ); +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/ForItem.js b/modern-react/my-react/src/chap03/ForItem.js new file mode 100644 index 0000000..61c688c --- /dev/null +++ b/modern-react/my-react/src/chap03/ForItem.js @@ -0,0 +1,84 @@ +import Download from './Download'; + +export default function ForItem({ book }) { + return ( + <> +
+ + {book.title}({book.price}원) + +
+
{book.summary}
+ + ); +} + + + +// Code 3-2-13 +// if 문 +// export default function ForItem({ book }) { +// let dd; +// // download 속성의 유무에 따라 태그를 분기한다. +// if (book.download) { +// dd =
{book.summary}
; +// } else { +// dd =
{book.summary}
; +// } +// return ( +// <> +//
+// +// {book.title}({book.price}원) +// +//
+// {/* 생성해둔 태그 삽입 */} +// {dd} +// +// ); +// } + + + +// Code 3-2-14 +// 즉시 함수 +// export default function ForItem({ book }) { +// return ( +// <> +//
+// +// {book.title}({book.price}원) +// +//
+// {(() => { +// if (book.download) { +// return
{book.summary}
+// } else { +// return
{book.summary}
+// } +// })()} +// +// ); +// } + + + +// Code 3-2-15 +// ?:, && 연산자 +// export default function ForItem({ book }) { +// return ( +// <> +//
+// +// {book.title}({book.price}원) +// +//
+//
+// {book.summary} +// {book.download ? : null} +// {/* {book.download && } */} +// {/* {book.download || '×' } */} +//
+// +// ); +// } \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/ForList.js b/modern-react/my-react/src/chap03/ForList.js new file mode 100644 index 0000000..ae2da13 --- /dev/null +++ b/modern-react/my-react/src/chap03/ForList.js @@ -0,0 +1,42 @@ +import React from 'react'; + +// 도서 정보는 Props(src)를 통해 수신 +export default function ForList({ src }) { + return ( + // 도서 정보(src 속성)를
/
목록으로 정형화 +
+ {src.map(elem => ( + <> +
+ + {elem.title}({elem.price}원) + +
+
{elem.summary}
+ + ))} + + {/* {src.map(elem => ( + +
+ + {elem.title}({elem.price}원) + +
+
{elem.summary}
+
+ ))} */} + + {/* {src.map((elem, index) => ( + +
+ + {elem.title}({elem.price}원) + +
+
{elem.summary}
+
+ ))} */} +
+ ); +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/ForNest.js b/modern-react/my-react/src/chap03/ForNest.js new file mode 100644 index 0000000..e666296 --- /dev/null +++ b/modern-react/my-react/src/chap03/ForNest.js @@ -0,0 +1,11 @@ +import ForItem from './ForItem'; + +export default function ForNest({ src }) { + return ( +
+ {src.map(elem => + + )} +
+ ); +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/ForSort.js b/modern-react/my-react/src/chap03/ForSort.js new file mode 100644 index 0000000..ace9b65 --- /dev/null +++ b/modern-react/my-react/src/chap03/ForSort.js @@ -0,0 +1,19 @@ +import React from 'react'; + +export default function ForSort({ src }) { + src.sort((m, n) => m.price - n.price); + return ( +
+ {src.map(elem => ( + +
+ + {elem.title}({elem.price}원) + +
+
{elem.summary}
+
+ ))} +
+ ); +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/ListTemplate.js b/modern-react/my-react/src/chap03/ListTemplate.js new file mode 100644 index 0000000..9b1ecc2 --- /dev/null +++ b/modern-react/my-react/src/chap03/ListTemplate.js @@ -0,0 +1,29 @@ +import React from 'react'; + +export default function ListTemplate({ src, children }) { + return ( +
+ {src.map(elem => ( + + {/* {children} */} + {children(elem)} + + ))} +
+ ); +} + + + +// 렌더 프롭(Render Props) +// export default function ListTemplate({ src, render }) { +// return ( +//
+// {src.map(elem => ( +// +// {render(elem)} +// +// ))} +//
+// ); +// } \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/MyHello.js b/modern-react/my-react/src/chap03/MyHello.js new file mode 100644 index 0000000..17fb9a8 --- /dev/null +++ b/modern-react/my-react/src/chap03/MyHello.js @@ -0,0 +1,40 @@ +import PropTypes from 'prop-types'; + +// Code 3-1-1 +// export default function MyHello(props) { +// return ( +//
안녕하세요, {props.myName}님!
+// ); +// } + + + +// Code 3-1-3 +// export default function MyHello({ myName }) { +// return ( +//
안녕하세요, {myName}님!
+// ); +// } + +// export default function MyHello({ myName = '김철수' }) { +// return ( +//
안녕하세요, {myName}님!
+// ); +// } + + + +// Code 3-3-14 +// PropTypes 가져오기 +function MyHello(props) { + return ( +
안녕하세요, {props.myName}님!
+ ); +} + +// 타입 정보 선언 +MyHello.propTypes = { + myName: PropTypes.string.isRequired +}; + +export default MyHello; \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/SelectStyle.css b/modern-react/my-react/src/chap03/SelectStyle.css new file mode 100644 index 0000000..c366ce9 --- /dev/null +++ b/modern-react/my-react/src/chap03/SelectStyle.css @@ -0,0 +1,20 @@ +.box { + display: block; + height: 200px; + width: 200px; + overflow: auto; + margin: 50px; + padding: 10px; +} + +.light { + color: black; + background-color: skyblue; + border: 5px solid blue; +} + +.dark { + color: white; + background-color: black; + border: 5px solid gray; +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/SelectStyle.js b/modern-react/my-react/src/chap03/SelectStyle.js new file mode 100644 index 0000000..f2d85ac --- /dev/null +++ b/modern-react/my-react/src/chap03/SelectStyle.js @@ -0,0 +1,46 @@ +import './SelectStyle.css'; +import cn from 'classnames'; + +export default function SelectStyle({ mode }) { + return ( + // mode 속성에 따라 스타일 클래스 전환 +
+ Hello World! +
+ + //
+ // Hello World! + //
+ + //
+ // Hello World! + //
+ + //
+ // Hello World! + //
+ + //
+ // Hello World! + //
+ + //
+ // Hello World! + //
+ ); +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/StateBasic.js b/modern-react/my-react/src/chap03/StateBasic.js new file mode 100644 index 0000000..f210b4e --- /dev/null +++ b/modern-react/my-react/src/chap03/StateBasic.js @@ -0,0 +1,51 @@ +import { useState } from 'react'; + +export default function StateBasic({ init }) { + // Props(init)로 State(count) 초기화하기 + const [count, setCount] = useState(init); + // [카운트] 버튼 클릭 시 카운트 값을 증가시킨다. + console.log(`count is ${count}.`); + const handleClick = () => setCount(count + 1); + + return ( + <> + +

{count}번 클릭했습니다.

+ + ); +} + + + +// Code 3-3-28 +// export default function StateBasic({ init }) { +// const [count, setCount] = useState(init); +// // [카운트] 버튼 클릭 시 카운트 값을 증가시킨다. +// const handleClick = () => { +// setCount(count + 1); +// setCount(count + 1); +// }; + +// return ( +// <> +// +//

{count}번 클릭했습니다.

+// +// ); +// } + +// export default function StateBasic({ init }) { +// const [count, setCount] = useState(init); +// // [카운트] 버튼 클릭 시 카운트 값을 증가시킨다. +// const handleClick = () => { +// setCount(c => c + 1); +// setCount(c => c + 1); +// }; + +// return ( +// <> +// +//

{count}번 클릭했습니다.

+// +// ); +// } \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/StateCounter.css b/modern-react/my-react/src/chap03/StateCounter.css new file mode 100644 index 0000000..8d7c802 --- /dev/null +++ b/modern-react/my-react/src/chap03/StateCounter.css @@ -0,0 +1,5 @@ +.cnt { + margin-right: 5px; + width: 50px; + font-size: xx-large; +} diff --git a/modern-react/my-react/src/chap03/StateCounter.js b/modern-react/my-react/src/chap03/StateCounter.js new file mode 100644 index 0000000..e0c0d1b --- /dev/null +++ b/modern-react/my-react/src/chap03/StateCounter.js @@ -0,0 +1,11 @@ +import './StateCounter.css'; + +export default function StateCounter({ step, onUpdate }) { + // 버튼 클릭으로 상위 State(count)에 step 값만큼 추가 + const handleClick = () => onUpdate(step); + return ( + + ); +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/StateParent.js b/modern-react/my-react/src/chap03/StateParent.js new file mode 100644 index 0000000..d81a227 --- /dev/null +++ b/modern-react/my-react/src/chap03/StateParent.js @@ -0,0 +1,18 @@ +import { useState } from 'react'; +import StateCounter from './StateCounter'; + +export default function StateParent() { + // 카운트 합계를 나타내는 count를 초기화한다. + const [count, setCount] = useState(0); + // State 값(count)을 갱신하기 위한 update 함수를 준비한다. + const update = step => setCount(c => c + step); + return ( + <> + {/* StateCounter 컴포넌트에 update 함수를 전달 */} +

총 개수: {count}

+ + + + + ); +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/StyledPanel.js b/modern-react/my-react/src/chap03/StyledPanel.js new file mode 100644 index 0000000..71c0656 --- /dev/null +++ b/modern-react/my-react/src/chap03/StyledPanel.js @@ -0,0 +1,14 @@ +export default function StyledPanel({ children }) { + return ( +
+ {children} +
+ ); +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/TitledPanel.js b/modern-react/my-react/src/chap03/TitledPanel.js new file mode 100644 index 0000000..1390992 --- /dev/null +++ b/modern-react/my-react/src/chap03/TitledPanel.js @@ -0,0 +1,37 @@ +// export default function TitledPanel({ title, body }) { +// return ( +//
+// {title} +//
+// {body} +//
+// ); +// } + +// key 속성이 title/body인 요소를 가져온다. +export default function TitledPanel({ children }) { + const title = children.find(elem => elem.key === 'title'); + const body = children.find(elem => elem.key === 'body') + + return ( +
+ {title} +
+ {body} +
+ ); +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap03/TypeProp.js b/modern-react/my-react/src/chap03/TypeProp.js new file mode 100644 index 0000000..ede0e30 --- /dev/null +++ b/modern-react/my-react/src/chap03/TypeProp.js @@ -0,0 +1,37 @@ +import PropTypes from 'prop-types'; + +export function Member() {} +function TypeProp(props) { + console.log(props); + return

결과는 콘솔에서 확인하기 바란다.

; +} + +TypeProp.propTypes = { + // Member형 속성 + prop1: PropTypes.instanceOf(Member), + // 남성, 여성, 기타 중 하나 + prop2: PropTypes.oneOf(['남성', '여성', '기타']), + // 문자열, 숫자, 부울 값 중 선택 가능 + prop3: PropTypes.oneOfType([ + PropTypes.string, + PropTypes.number, + PropTypes.bool, + ]), + // 숫자형 배열 + prop4: PropTypes.arrayOf(PropTypes.number), + // 숫자형 객체 + prop5: PropTypes.objectOf(PropTypes.number), + // name, age, sex 프로퍼티를 가진 오브젝트 + prop6: PropTypes.shape({ + name: PropTypes.string.isRequired, + age: PropTypes.number, + sex: PropTypes.oneOf(['남성', '여성', '기타']), + }), + prop7: PropTypes.exact({ + name: PropTypes.string.isRequired, + age: PropTypes.number, + sex: PropTypes.oneOf(['남성', '여성', '기타']), + }), +}; + +export default TypeProp; diff --git a/modern-react/my-react/src/chap03/books.js b/modern-react/my-react/src/chap03/books.js new file mode 100644 index 0000000..a924239 --- /dev/null +++ b/modern-react/my-react/src/chap03/books.js @@ -0,0 +1,43 @@ +const books = [ + { + isbn: '9791158395124', + title: '게임 개발을 위한 미드저니, 스테이블 디퓨전 완벽 활용법', + slug: 'genai-game', + price: 28000, + summary: '생성형 AI를 활용한 게임 캐릭터, 배경, 아이템 제작부터 유니티 실전 프로젝트까지', + download: true, + }, + { + isbn: '9791158395117', + title: '디자인을 위한 미드저니 완벽 활용법', + slug: 'midjourney-design', + price: 24000, + summary: '광고부터 캐릭터, 로고, 일러스트레이션, 표지, 포스터, 타이포까지 독창적인 디자인 만들기', + download: false, + }, + { + isbn: '9791158395032', + title: '만들면서 배우는 블렌더 3D 입문', + slug: 'blender-basic', + price: 28000, + summary: '블렌더 기초, 모델링, 머티리얼, 애니메이션, 렌더링까지', + download: true, + }, + { + isbn: '9791158395018', + title: '모던 그로스 마케팅', + slug: 'mgm', + price: 24000, + summary: '비용은 최소화하고 매출은 극대화하는 생존 마케팅 전략', + download: false, + }, + { + isbn: '9791158395025', + title: '도메인 스토리텔링', + slug: 'domain-storytelling', + price: 28000, + summary: '도메인 주도 소프트웨어 구축을 위한 스토리텔링과 스토리 시각화 기법', + download: true, + }, +]; +export default books; \ No newline at end of file diff --git a/modern-react/my-react/src/chap04/FormBasic.css b/modern-react/my-react/src/chap04/FormBasic.css new file mode 100644 index 0000000..25cafd0 --- /dev/null +++ b/modern-react/my-react/src/chap04/FormBasic.css @@ -0,0 +1,3 @@ +.invalid { + background-color: #f00; +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap04/FormBasic.js b/modern-react/my-react/src/chap04/FormBasic.js new file mode 100644 index 0000000..2d05631 --- /dev/null +++ b/modern-react/my-react/src/chap04/FormBasic.js @@ -0,0 +1,393 @@ +import { useForm } from 'react-hook-form'; + +export default function FormBasic() { + // 기본값 준비 + const defaultValues = { + name: '홍길동', + email: 'admin@example.com', + gender: 'male', + memo: '' + }; + + // 폼 초기화 + const { register, handleSubmit, + formState: { errors} } = useForm({ + defaultValues + }); + + // 제출 시 처리 + const onsubmit = data => console.log(data); + const onerror = err => console.log(err); + + return ( +
+ {/* 검증 규칙 등을 폼에 연결 */} +
+
+ +
{errors.name?.message}
+
+
+
+ + +
{errors.gender?.message}
+
+
+
+ +
{errors.email?.message}
+
+
+
+
+ + + ); +} \ No newline at end of file diff --git a/modern-react/my-react/src/chap04/FormYup.js b/modern-react/my-react/src/chap04/FormYup.js new file mode 100644 index 0000000..da58f0d --- /dev/null +++ b/modern-react/my-react/src/chap04/FormYup.js @@ -0,0 +1,408 @@ +// import { useForm } from 'react-hook-form'; +// import { yupResolver } from '@hookform/resolvers/yup'; +// import * as yup from 'yup'; + +// /* eslint-disable no-template-curly-in-string */ +// // 검증 규칙 준비 +// const schema = yup.object({ +// name: yup +// .string() +// .label('이름') +// .required('${label}은 필수 입력입니다.') +// .max(20, '${label}은 ${max}자 이내로 입력하세요.'), +// gender: yup +// .string() +// .label('성별') +// .required('${label}은 필수 입력입니다.'), +// email: yup +// .string() +// .label('이메일 주소') +// .required('${label}은 필수 입력입니다.') +// .email('${label}의 형식이 잘못되었습니다.'), +// memo: yup +// .string() +// .label('비고') +// .required('${label}은 필수 입력입니다.') +// .min(10, '${label}은 ${min}자 이상으로 입력하세요.') +// // .test('ng', +// // ({ label }) => `${label}にNGワードが含まれています`, +// // value => { +// // const ngs = ['暴力', '死', 'グロ']; +// // for (const ng of ngs) { +// // if (value.includes(ng)) { +// // return false; +// // } +// // } +// // return true; +// // }) +// // .ng() +// }); +// /* eslint-enable no-template-curly-in-string */ + +// export default function FormYup() { +// const { register, handleSubmit, formState: { errors } } = useForm({ +// defaultValues: { +// name: '홍길동', +// email: 'admin@example.com', +// gender: 'male', +// memo: '' +// }, +// // Yup에게 검증을 맡기다 +// resolver: yupResolver(schema), +// }); + +// // 제출 시 처리 준비 +// const onsubmit = data => console.log(data); +// const onerror = err => console.log(err); + +// return ( +//
+//
+//
+// +//
{errors.name?.message}
+//
+//
+//
+// +// +//
{errors.gender?.message}
+//
+//
+//
+// +//
{errors.email?.message}
+//
+//
+//
+//