From 576831eae848190b02e55331d7e0ece7c6fd2248 Mon Sep 17 00:00:00 2001 From: kicap1992 Date: Wed, 20 Jul 2022 01:22:21 +0800 Subject: [PATCH] change mongodb to mongo atlas --- .gitignore | 6 +- component/admin/theComponent/adminDialog.js | 280 ++ component/admin/theComponent/appBar.js | 54 + component/admin/theComponent/drawer.js | 105 + component/admin/theComponent/drawerHeadaer.js | 11 + component/admin/theComponent/main.js | 24 + component/appBar.js | 69 + package-lock.json | 2585 ++++++++++++++++- package.json | 10 + pages/_app.js | 26 +- pages/admin/index.js | 573 ++++ pages/admin/list_user.js | 697 +++++ pages/index.js | 143 +- public/logo.png | Bin 0 -> 187256 bytes server/cert.crt | 20 + server/cert.key | 27 + server/googlekey.json | 12 + server/index.js | 132 +- server/routes/admin_router.js | 131 + server/routes/kurir_router.js | 108 +- server/routes/login_admin_router.js | 91 + server/routes/login_router.js | 54 +- yarn.lock | 946 +++++- 23 files changed, 5985 insertions(+), 119 deletions(-) create mode 100644 component/admin/theComponent/adminDialog.js create mode 100644 component/admin/theComponent/appBar.js create mode 100644 component/admin/theComponent/drawer.js create mode 100644 component/admin/theComponent/drawerHeadaer.js create mode 100644 component/admin/theComponent/main.js create mode 100644 component/appBar.js create mode 100644 pages/admin/index.js create mode 100644 pages/admin/list_user.js create mode 100644 public/logo.png create mode 100644 server/cert.crt create mode 100644 server/cert.key create mode 100644 server/googlekey.json create mode 100644 server/routes/admin_router.js create mode 100644 server/routes/login_admin_router.js diff --git a/.gitignore b/.gitignore index 1f5db43..c8d63bf 100644 --- a/.gitignore +++ b/.gitignore @@ -33,8 +33,8 @@ yarn-error.log* .vercel # googlekey.json -googlekey.json* +# googlekey.json* # cert -cert.crt -cert.key +# cert.crt +# cert.key diff --git a/component/admin/theComponent/adminDialog.js b/component/admin/theComponent/adminDialog.js new file mode 100644 index 0000000..26bb199 --- /dev/null +++ b/component/admin/theComponent/adminDialog.js @@ -0,0 +1,280 @@ +import * as React from 'react'; +import Button from '@mui/material/Button'; +import Dialog from '@mui/material/Dialog'; +import DialogActions from '@mui/material/DialogActions'; +import DialogContent from '@mui/material/DialogContent'; +import FormGroup from '@mui/material/FormGroup'; +import Typography from '@mui/material/Typography'; +import Divider from '@mui/material/Divider'; +import Box from '@mui/material/Box'; +import Card from '@mui/material/Card'; + + +export default function AdminDialog(props) { + // console.log(props.datanya); + // console.log(props.role); + + return ( +
+ + + + + + Detail Kurir + + + + + + + NIK : + + +   {props.datanya.nik} + + + + + + + Nama : + + +   {props.datanya.nama} + + + + + + + No Kenderaan : + + +   {props.datanya.no_kenderaan} + + + + + + + No Telepon : + + +   {props.datanya.no_telp} + + + + + + + Alamat : + + +   {props.datanya.alamat} + + + + + + KTP : + + + + + + Memegang KTP : + + + + + + Foto: + + + + + + Kenderaan: + + + + + + + + + +
+ ); +} \ No newline at end of file diff --git a/component/admin/theComponent/appBar.js b/component/admin/theComponent/appBar.js new file mode 100644 index 0000000..dc3af0a --- /dev/null +++ b/component/admin/theComponent/appBar.js @@ -0,0 +1,54 @@ + +import MuiAppBar from '@mui/material/AppBar'; +import Toolbar from '@mui/material/Toolbar'; +import MenuIcon from '@mui/icons-material/Menu'; +import { styled } from '@mui/material/styles'; +import IconButton from '@mui/material/IconButton'; +import Typography from '@mui/material/Typography'; +import Avatar from '@mui/material/Avatar'; +import Box from '@mui/material/Box'; + +const drawerWidth = 240; + +const AppBar = styled(MuiAppBar, { + shouldForwardProp: (prop) => prop !== 'open', +})(({ theme, open }) => ({ + transition: theme.transitions.create(['margin', 'width'], { + easing: theme.transitions.easing.sharp, + duration: theme.transitions.duration.leavingScreen, + }), + ...(open && { + width: `calc(100% - ${drawerWidth}px)`, + marginLeft: `${drawerWidth}px`, + transition: theme.transitions.create(['margin', 'width'], { + easing: theme.transitions.easing.easeOut, + duration: theme.transitions.duration.enteringScreen, + }), + }), +})); + +function AdminAppBar(props) { + return ( + + + + + + + + + + Enrekang Kurir + + + + ) +} + +export default AdminAppBar; \ No newline at end of file diff --git a/component/admin/theComponent/drawer.js b/component/admin/theComponent/drawer.js new file mode 100644 index 0000000..7a12a9a --- /dev/null +++ b/component/admin/theComponent/drawer.js @@ -0,0 +1,105 @@ +import { useTheme } from '@mui/material/styles'; +import Drawer from '@mui/material/Drawer'; +import List from '@mui/material/List'; +import Divider from '@mui/material/Divider'; +import IconButton from '@mui/material/IconButton'; +import ChevronLeftIcon from '@mui/icons-material/ChevronLeft'; +import ChevronRightIcon from '@mui/icons-material/ChevronRight'; +import ListItem from '@mui/material/ListItem'; +import ListItemButton from '@mui/material/ListItemButton'; +import ListItemIcon from '@mui/material/ListItemIcon'; +import ListItemText from '@mui/material/ListItemText'; +import AdminDrawerHeader from './drawerHeadaer'; +import PlaylistAddIcon from '@mui/icons-material/PlaylistAdd'; +import PlaylistAddCheckIcon from '@mui/icons-material/PlaylistAddCheck'; +import LogoutIcon from '@mui/icons-material/Logout'; +import Typography from '@mui/material/Typography'; +import Router from 'next/router'; + + +const listmenu = [ + { + name: "Home", + name2: "Verifikasi Kurir", + icon: , + router: "/admin" + }, + { + name: "list_user", + name2: "List User", + icon: , + router: "/admin/list_user" + }, + { + name: "logout", + name2: "Logout", + icon: , + // router : "/admin/logout" + }, +] + +const drawerWidth = 240; + +function AdminDrawer(props) { + const theme = useTheme(); + return ( + + + Enrekang Kurir + + {theme.direction === 'ltr' ? : } + + + + + {listmenu.map((menu, index) => ( + + + { + if(menu.name != "logout" && menu.name != props.title){ + props.disconnectSocket() + Router.push(menu.router) + } + + } + } + > + + {menu.icon} + + + + + ))} + + + + ) +} + +export default AdminDrawer \ No newline at end of file diff --git a/component/admin/theComponent/drawerHeadaer.js b/component/admin/theComponent/drawerHeadaer.js new file mode 100644 index 0000000..558a702 --- /dev/null +++ b/component/admin/theComponent/drawerHeadaer.js @@ -0,0 +1,11 @@ +import { styled , useTheme } from '@mui/material/styles'; +const AdminDrawerHeader = styled('div')(({ theme }) => ({ + display: 'flex', + alignItems: 'center', + padding: theme.spacing(0, 1), + // necessary for content to be below app bar + ...theme.mixins.toolbar, + justifyContent: 'flex-end', +})); + +export default AdminDrawerHeader; \ No newline at end of file diff --git a/component/admin/theComponent/main.js b/component/admin/theComponent/main.js new file mode 100644 index 0000000..1c585b6 --- /dev/null +++ b/component/admin/theComponent/main.js @@ -0,0 +1,24 @@ +import { styled, useTheme } from '@mui/material/styles'; + +const drawerWidth = 240; + +const AdminMain = styled('main', { shouldForwardProp: (prop) => prop !== 'open' })( + ({ theme, open }) => ({ + flexGrow: 1, + padding: theme.spacing(3), + transition: theme.transitions.create('margin', { + easing: theme.transitions.easing.sharp, + duration: theme.transitions.duration.leavingScreen, + }), + marginLeft: `-${drawerWidth}px`, + ...(open && { + transition: theme.transitions.create('margin', { + easing: theme.transitions.easing.easeOut, + duration: theme.transitions.duration.enteringScreen, + }), + marginLeft: 0, + }), + }), +); + +export default AdminMain; diff --git a/component/appBar.js b/component/appBar.js new file mode 100644 index 0000000..aeb3360 --- /dev/null +++ b/component/appBar.js @@ -0,0 +1,69 @@ +import * as React from 'react'; +import AppBar from '@mui/material/AppBar'; +import Box from '@mui/material/Box'; +import Toolbar from '@mui/material/Toolbar'; +import Typography from '@mui/material/Typography'; +import Container from '@mui/material/Container'; +import Avatar from '@mui/material/Avatar'; + + + + +const MyAppBar = () => { + + return ( + + + + + + + Enrekang Kurir + + + + Enrekang Kurir + + + + + + + + + ); +}; +export default MyAppBar; diff --git a/package-lock.json b/package-lock.json index 46aa68e..5086885 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,19 +8,29 @@ "name": "kurir_server", "version": "0.1.0", "dependencies": { + "@emotion/react": "^11.9.3", + "@emotion/styled": "^11.9.3", + "@mui/icons-material": "^5.8.4", + "@mui/material": "^5.8.7", "cors": "^2.8.5", "dotenv": "^16.0.0", "express": "^4.17.3", "express-form-data": "^2.0.17", "googleapis": "^100.0.0", + "iron-session": "^6.1.3", + "jsonwebtoken": "^8.5.1", "md5": "^2.3.0", "mongoose": "^6.2.11", "next": "12.1.5", + "nextjs-progressbar": "^0.0.14", "nodemon": "^2.0.15", "react": "18.0.0", "react-dom": "18.0.0", + "react-toastify": "^9.0.5", "socket.io": "^4.5.1", "socket.io-client": "^4.5.1", + "sweetalert2": "^11.4.20", + "sweetalert2-react-content": "^5.0.1", "typescript": "^4.6.3" }, "devDependencies": { @@ -28,11 +38,379 @@ "eslint-config-next": "12.1.5" } }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.6.tgz", + "integrity": "sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", + "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", + "peer": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.6", + "@babel/helper-compilation-targets": "^7.18.6", + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helpers": "^7.18.6", + "@babel/parser": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "peer": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.18.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz", + "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==", + "peer": true, + "dependencies": { + "@babel/types": "^7.18.7", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz", + "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==", + "peer": true, + "dependencies": { + "@babel/compat-data": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", + "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", + "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", + "peer": true, + "dependencies": { + "@babel/template": "^7.18.6", + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "peer": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.6.tgz", + "integrity": "sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw==", + "peer": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", + "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", + "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "peer": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "peer": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz", + "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==", + "peer": true, + "dependencies": { + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/highlight/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/@babel/parser": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.6.tgz", + "integrity": "sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw==", + "peer": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/runtime": { "version": "7.17.9", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz", "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", - "dev": true, "dependencies": { "regenerator-runtime": "^0.13.4" }, @@ -53,6 +431,197 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/template": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", + "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.6", + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.6.tgz", + "integrity": "sha512-zS/OKyqmD7lslOtFqbscH6gMLFYOfG1YPqCKfAW5KrTeolKqvB8UelR49Fpr6y93kYkW2Ik00mT1LOGiAGvizw==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-function-name": "^7.18.6", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.18.6", + "@babel/types": "^7.18.6", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.18.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.7.tgz", + "integrity": "sha512-QG3yxTcTIBoAcQmkCs+wAPYZhu7Dk9rXKacINfNbdJDNERTbLQbHGyVG8q/YGMPeCJRIhSY0+fTc5+xuh6WPSQ==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.9.2", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.9.2.tgz", + "integrity": "sha512-Pr/7HGH6H6yKgnVFNEj2MVlreu3ADqftqjqwUvDy/OJzKFgxKeTQ+eeUf20FOTuHVkDON2iNa25rAXVYtWJCjw==", + "dependencies": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/plugin-syntax-jsx": "^7.12.13", + "@babel/runtime": "^7.13.10", + "@emotion/hash": "^0.8.0", + "@emotion/memoize": "^0.7.5", + "@emotion/serialize": "^1.0.2", + "babel-plugin-macros": "^2.6.1", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.0.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.9.3", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.9.3.tgz", + "integrity": "sha512-0dgkI/JKlCXa+lEXviaMtGBL0ynpx4osh7rjOXE71q9bIF8G+XhJgvi+wDu0B0IdCVx37BffiwXlN9I3UuzFvg==", + "dependencies": { + "@emotion/memoize": "^0.7.4", + "@emotion/sheet": "^1.1.1", + "@emotion/utils": "^1.0.0", + "@emotion/weak-memoize": "^0.2.5", + "stylis": "4.0.13" + } + }, + "node_modules/@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.1.3.tgz", + "integrity": "sha512-RFg04p6C+1uO19uG8N+vqanzKqiM9eeV1LDOG3bmkYmuOj7NbKNlFC/4EZq5gnwAIlcC/jOT24f8Td0iax2SXA==", + "dependencies": { + "@emotion/memoize": "^0.7.4" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz", + "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==" + }, + "node_modules/@emotion/react": { + "version": "11.9.3", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.9.3.tgz", + "integrity": "sha512-g9Q1GcTOlzOEjqwuLF/Zd9LC+4FljjPjDfxSM7KmEakm+hsHXk+bYZ2q+/hTJzr0OUNkujo72pXLQvXj6H+GJQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@emotion/babel-plugin": "^11.7.1", + "@emotion/cache": "^11.9.3", + "@emotion/serialize": "^1.0.4", + "@emotion/utils": "^1.1.0", + "@emotion/weak-memoize": "^0.2.5", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.4.tgz", + "integrity": "sha512-1JHamSpH8PIfFwAMryO2bNka+y8+KA5yga5Ocf2d7ZEiJjb7xlLW7aknBGZqJLajuLOvJ+72vN+IBSwPlXD1Pg==", + "dependencies": { + "@emotion/hash": "^0.8.0", + "@emotion/memoize": "^0.7.4", + "@emotion/unitless": "^0.7.5", + "@emotion/utils": "^1.0.0", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.1.1.tgz", + "integrity": "sha512-J3YPccVRMiTZxYAY0IOq3kd+hUP8idY8Kz6B/Cyo+JuXq52Ek+zbPbSQUrVQp95aJ+lsAW7DPL1P2Z+U1jGkKA==" + }, + "node_modules/@emotion/styled": { + "version": "11.9.3", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.9.3.tgz", + "integrity": "sha512-o3sBNwbtoVz9v7WB1/Y/AmXl69YHmei2mrVnK7JgyBJ//Rst5yqPZCecEJlMlJrFeWHp+ki/54uN265V2pEcXA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@emotion/babel-plugin": "^11.7.1", + "@emotion/is-prop-valid": "^1.1.3", + "@emotion/serialize": "^1.0.4", + "@emotion/utils": "^1.1.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, + "node_modules/@emotion/utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.1.0.tgz", + "integrity": "sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", + "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" + }, "node_modules/@eslint/eslintrc": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", @@ -73,6 +642,55 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/@hapi/b64": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hapi/b64/-/b64-5.0.0.tgz", + "integrity": "sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw==", + "dependencies": { + "@hapi/hoek": "9.x.x" + } + }, + "node_modules/@hapi/boom": { + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz", + "integrity": "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==", + "dependencies": { + "@hapi/hoek": "9.x.x" + } + }, + "node_modules/@hapi/bourne": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.1.0.tgz", + "integrity": "sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q==" + }, + "node_modules/@hapi/cryptiles": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-5.1.0.tgz", + "integrity": "sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA==", + "dependencies": { + "@hapi/boom": "9.x.x" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + }, + "node_modules/@hapi/iron": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@hapi/iron/-/iron-6.0.0.tgz", + "integrity": "sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw==", + "dependencies": { + "@hapi/b64": "5.x.x", + "@hapi/boom": "9.x.x", + "@hapi/bourne": "2.x.x", + "@hapi/cryptiles": "5.x.x", + "@hapi/hoek": "9.x.x" + } + }, "node_modules/@humanwhocodes/config-array": { "version": "0.9.5", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", @@ -93,6 +711,299 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "peer": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@mui/base": { + "version": "5.0.0-alpha.88", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.88.tgz", + "integrity": "sha512-uL7ej2F/3GUnZewsDQSHUVHoSBT3AQcTIdfdy6QeCHy7X26mtbcIvTRcjl2PzbbNQplppavSTibPiQG/giJ+ng==", + "dependencies": { + "@babel/runtime": "^7.17.2", + "@emotion/is-prop-valid": "^1.1.3", + "@mui/types": "^7.1.4", + "@mui/utils": "^5.8.6", + "@popperjs/core": "^2.11.5", + "clsx": "^1.2.0", + "prop-types": "^15.8.1", + "react-is": "^17.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "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/base/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/@mui/icons-material": { + "version": "5.8.4", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.8.4.tgz", + "integrity": "sha512-9Z/vyj2szvEhGWDvb+gG875bOGm8b8rlHBKOD1+nA3PcgC3fV6W1AU6pfOorPeBfH2X4mb9Boe97vHvaSndQvA==", + "dependencies": { + "@babel/runtime": "^7.17.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "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.8.7", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.8.7.tgz", + "integrity": "sha512-Oo62UhrgEi+BMLr3nUEASJgScE2/hhq14CbBUmrVV3GQlEGtqMZsy26Vb0AqEmphFeN3TXlsbM9aeW5yq8ZFlw==", + "dependencies": { + "@babel/runtime": "^7.17.2", + "@mui/base": "5.0.0-alpha.88", + "@mui/system": "^5.8.7", + "@mui/types": "^7.1.4", + "@mui/utils": "^5.8.6", + "@types/react-transition-group": "^4.4.5", + "clsx": "^1.2.0", + "csstype": "^3.1.0", + "prop-types": "^15.8.1", + "react-is": "^17.0.2", + "react-transition-group": "^4.4.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "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": "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/@mui/private-theming": { + "version": "5.8.6", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.8.6.tgz", + "integrity": "sha512-yHsJk1qU9r/q0DlnxGRJPHyM0Y/nUv8FTNgDTiI9I58GWuVuZqeTUr7JRvPh6ybeP/FLtW5eXEavRK9wxVk4uQ==", + "dependencies": { + "@babel/runtime": "^7.17.2", + "@mui/utils": "^5.8.6", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "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.8.7", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.8.7.tgz", + "integrity": "sha512-tVqtowjbYmiRq+qcqXK731L9eWoL9H8xTRhuTgaDGKdch1zlt4I2UwInUe1w2N9N/u3/jHsFbLcl1Un3uOwpQg==", + "dependencies": { + "@babel/runtime": "^7.17.2", + "@emotion/cache": "^11.9.3", + "csstype": "^3.1.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "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.8.7", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.8.7.tgz", + "integrity": "sha512-yFoFbfO42FWeSUDrFPixYjpqySQMqVMOSbSlAxiKnwFpvXGGn/bkfQTboCRNO31fvES29FJLQd4mwwMHd5mXng==", + "dependencies": { + "@babel/runtime": "^7.17.2", + "@mui/private-theming": "^5.8.6", + "@mui/styled-engine": "^5.8.7", + "@mui/types": "^7.1.4", + "@mui/utils": "^5.8.6", + "clsx": "^1.2.0", + "csstype": "^3.1.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "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.1.4", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.1.4.tgz", + "integrity": "sha512-uveM3byMbthO+6tXZ1n2zm0W3uJCQYtwt/v5zV5I77v2v18u0ITkb8xwhsDD2i3V2Kye7SaNR6FFJ6lMuY/WqQ==", + "peerDependencies": { + "@types/react": "*" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "5.8.6", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.8.6.tgz", + "integrity": "sha512-QM2Sd1xZo2jOt2Vz5Rmro+pi2FLJyiv4+OjxkUwXR3oUM65KSMAMLl/KNYU55s3W3DLRFP5MVwE4FhAbHseHAg==", + "dependencies": { + "@babel/runtime": "^7.17.2", + "@types/prop-types": "^15.7.5", + "@types/react-is": "^16.7.1 || ^17.0.0", + "prop-types": "^15.8.1", + "react-is": "^17.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0" + } + }, + "node_modules/@mui/utils/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/@next/env": { "version": "12.1.5", "resolved": "https://registry.npmjs.org/@next/env/-/env-12.1.5.tgz", @@ -322,6 +1233,15 @@ "node": ">= 8" } }, + "node_modules/@popperjs/core": { + "version": "2.11.5", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", + "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, "node_modules/@rushstack/eslint-patch": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.0.8.tgz", @@ -352,11 +1272,28 @@ "node": ">=6" } }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, "node_modules/@types/component-emitter": { "version": "1.2.11", "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==" }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/cookie": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", @@ -367,17 +1304,103 @@ "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" }, + "node_modules/@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.29", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz", + "integrity": "sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "dev": true }, + "node_modules/@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + }, "node_modules/@types/node": { "version": "17.0.23", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + }, + "node_modules/@types/react": { + "version": "18.0.15", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.15.tgz", + "integrity": "sha512-iz3BtLuIYH1uWdsv6wXYdhozhqj20oD4/Hk2DNXIn1kFsmp9x8d9QB6FnPhfkbhd2PgEONt9Q1x/ebkwjfFLow==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-is": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.3.tgz", + "integrity": "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + }, + "node_modules/@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, "node_modules/@types/webidl-conversions": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz", @@ -736,6 +1759,16 @@ "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", "dev": true }, + "node_modules/babel-plugin-macros": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", + "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -858,6 +1891,34 @@ "node": ">=8" } }, + "node_modules/browserslist": { + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", + "integrity": "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "peer": true, + "dependencies": { + "caniuse-lite": "^1.0.30001359", + "electron-to-chromium": "^1.4.172", + "node-releases": "^2.0.5", + "update-browserslist-db": "^1.0.4" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, "node_modules/bson": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/bson/-/bson-4.6.2.tgz", @@ -961,7 +2022,6 @@ "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" } @@ -978,9 +2038,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001331", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001331.tgz", - "integrity": "sha512-Y1xk6paHpUXKP/P6YjQv1xqyTbgAP05ycHBcRdQjTcyXlWol868sJJPlmk5ylOekw2BrucWes5jk+LvVd7WZ5Q==", + "version": "1.0.30001363", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001363.tgz", + "integrity": "sha512-HpQhpzTGGPVMnCjIomjt+jvyUu8vNFo3TaDiZ/RcoTrlOq/5+tC8zHdsbgFB6MxmaY+jCpsH09aD80Bb4Ow3Sg==", "funding": [ { "type": "opencollective", @@ -1076,6 +2136,14 @@ "mimic-response": "^1.0.0" } }, + "node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -1188,6 +2256,19 @@ "node": ">= 0.6" } }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/convert-source-map/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/cookie": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", @@ -1224,6 +2305,21 @@ "node": ">= 0.10" } }, + "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/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -1254,6 +2350,11 @@ "node": ">=8" } }, + "node_modules/csstype": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", + "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" + }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -1363,6 +2464,15 @@ "node": ">=6.0.0" } }, + "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/dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", @@ -1400,6 +2510,12 @@ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, + "node_modules/electron-to-chromium": { + "version": "1.4.180", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.180.tgz", + "integrity": "sha512-7at5ash3FD9U5gPa3/wPr6OdiZd/zBjvDZaaHBpcqFOFUhZiWnb7stkqk8xUFL9H9nk7Yok5vCCNK8wyC/+f8A==", + "peer": true + }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", @@ -1462,6 +2578,14 @@ "node": ">=10.0.0" } }, + "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/es-abstract": { "version": "1.19.4", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.4.tgz", @@ -1522,6 +2646,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/escape-goat": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", @@ -1539,7 +2672,6 @@ "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" }, @@ -2176,6 +3308,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, + "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": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", @@ -2259,8 +3396,7 @@ "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "node_modules/functional-red-black-tree": { "version": "1.0.1", @@ -2295,6 +3431,15 @@ "node": ">=10" } }, + "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==", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/get-intrinsic": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", @@ -2521,7 +3666,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "dependencies": { "function-bind": "^1.1.1" }, @@ -2581,6 +3725,14 @@ "node": ">=8" } }, + "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/http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", @@ -2661,7 +3813,6 @@ "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" @@ -2739,6 +3890,56 @@ "node": ">= 0.10" } }, + "node_modules/iron-session": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/iron-session/-/iron-session-6.1.3.tgz", + "integrity": "sha512-o5ErwzAtTBKPtxo4nDmxOZAjK4Stku//5sFM0vac3/Px34530gTwnXoa8zwsC4/koqCtKY0yC0KF/1K+ZMGuHA==", + "dependencies": { + "@hapi/iron": "^6.0.0", + "@types/cookie": "^0.5.1", + "@types/express": "^4.17.13", + "@types/node": "^16.11.7", + "cookie": "^0.5.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "express": ">=4", + "next": ">=10" + }, + "peerDependenciesMeta": { + "express": { + "optional": true + }, + "next": { + "optional": true + } + } + }, + "node_modules/iron-session/node_modules/@types/cookie": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.1.tgz", + "integrity": "sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==" + }, + "node_modules/iron-session/node_modules/@types/node": { + "version": "16.11.43", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.43.tgz", + "integrity": "sha512-GqWykok+3uocgfAJM8imbozrqLnPyTrpFlrryURQlw1EesPUCx5XxTiucWDSFF9/NUEXDuD4bnvHm8xfVGWTpQ==" + }, + "node_modules/iron-session/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/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-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -2810,7 +4011,6 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "dev": true, "dependencies": { "has": "^1.0.3" }, @@ -3051,6 +4251,18 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "peer": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/json-bigint": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", @@ -3064,6 +4276,11 @@ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" }, + "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-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -3099,6 +4316,54 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=4", + "npm": ">=1.4.28" + } + }, + "node_modules/jsonwebtoken/node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jsonwebtoken/node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jsonwebtoken/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, "node_modules/jsx-ast-utils": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz", @@ -3183,6 +4448,11 @@ "node": ">= 0.8.0" } }, + "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/locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", @@ -3196,12 +4466,47 @@ "node": ">=4" } }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, "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/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -3530,6 +4835,19 @@ } } }, + "node_modules/nextjs-progressbar": { + "version": "0.0.14", + "resolved": "https://registry.npmjs.org/nextjs-progressbar/-/nextjs-progressbar-0.0.14.tgz", + "integrity": "sha512-AXYXHDN6M52AwFnGqH/vlwyo0gbC9zM7QS/4ryOTI0RUqfze5FJl8uSrxKJMzK6hGFdDeQXcZoWsLGXeCVtTwg==", + "dependencies": { + "nprogress": "^0.2.0", + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "next": ">= 6.0.0", + "react": ">= 16.0.0" + } + }, "node_modules/node-fetch": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", @@ -3576,6 +4894,12 @@ "node": ">= 6.13.0" } }, + "node_modules/node-releases": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", + "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", + "peer": true + }, "node_modules/nodemon": { "version": "2.0.15", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", @@ -3669,6 +4993,11 @@ "node": ">=8" } }, + "node_modules/nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -3877,7 +5206,6 @@ "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" }, @@ -3885,6 +5213,23 @@ "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/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -3923,8 +5268,7 @@ "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 + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-to-regexp": { "version": "0.1.7", @@ -3935,7 +5279,6 @@ "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" } @@ -3994,7 +5337,6 @@ "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", @@ -4160,8 +5502,34 @@ "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 + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/react-toastify": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-9.0.5.tgz", + "integrity": "sha512-dszPCeQINY+Nm6HmsiAXT/7wsazPqv0S/RuhIYLAW+fTKcd3T1iRjZG0XqrN9nvAzqaE5J6uxMaiBrOevxjY8g==", + "dependencies": { + "clsx": "^1.1.1" + }, + "peerDependencies": { + "react": ">=16", + "react-dom": ">=16" + } + }, + "node_modules/react-transition-group": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", + "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } }, "node_modules/readdirp": { "version": "3.6.0", @@ -4177,8 +5545,7 @@ "node_modules/regenerator-runtime": { "version": "0.13.9", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" }, "node_modules/regexp.prototype.flags": { "version": "1.4.2", @@ -4234,7 +5601,6 @@ "version": "1.22.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, "dependencies": { "is-core-module": "^2.8.1", "path-parse": "^1.0.7", @@ -4251,7 +5617,6 @@ "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" } @@ -4585,6 +5950,14 @@ "npm": ">= 3.0.0" } }, + "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/source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", @@ -4724,6 +6097,11 @@ } } }, + "node_modules/stylis": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz", + "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==" + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -4739,7 +6117,6 @@ "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" }, @@ -4747,12 +6124,39 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/sweetalert2": { + "version": "11.4.20", + "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.4.20.tgz", + "integrity": "sha512-3LiBFa5yRmTcqM0vGcFmo0EnhmaMSJfzhFpvZoXK6BOY94HIcIUbwhhW+NY5oXOpz5CT21qFAu0fKCUkOc/Pew==", + "funding": { + "type": "individual", + "url": "https://sweetalert2.github.io/#donations" + } + }, + "node_modules/sweetalert2-react-content": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/sweetalert2-react-content/-/sweetalert2-react-content-5.0.1.tgz", + "integrity": "sha512-waB/aDHeVSBdxHEFioy0OmQVi+bupr/S1M+GW54WbFkuO86uxVLRzzFomeddhGzrl6R4JwNJAmuKYDhQVN+uyw==", + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0", + "sweetalert2": "^11.0.0" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, + "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-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", @@ -4948,6 +6352,32 @@ "node": ">= 0.8" } }, + "node_modules/update-browserslist-db": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", + "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "peer": true, + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/update-notifier": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", @@ -5173,14 +6603,295 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "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" + } } }, "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "peer": true, + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.6.tgz", + "integrity": "sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ==", + "peer": true + }, + "@babel/core": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", + "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", + "peer": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.6", + "@babel/helper-compilation-targets": "^7.18.6", + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helpers": "^7.18.6", + "@babel/parser": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "dependencies": { + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "peer": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true + } + } + }, + "@babel/generator": { + "version": "7.18.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz", + "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==", + "peer": true, + "requires": { + "@babel/types": "^7.18.7", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "peer": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helper-compilation-targets": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz", + "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==", + "peer": true, + "requires": { + "@babel/compat-data": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.20.2", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", + "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==", + "peer": true + }, + "@babel/helper-function-name": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", + "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", + "peer": true, + "requires": { + "@babel/template": "^7.18.6", + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "peer": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-transforms": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.6.tgz", + "integrity": "sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw==", + "peer": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", + "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==" + }, + "@babel/helper-simple-access": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", + "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "peer": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "peer": true, + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==" + }, + "@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "peer": true + }, + "@babel/helpers": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz", + "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==", + "peer": true, + "requires": { + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "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==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "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==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "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==" + }, + "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==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.6.tgz", + "integrity": "sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw==", + "peer": true + }, + "@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, "@babel/runtime": { "version": "7.17.9", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz", "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", - "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } @@ -5195,6 +6906,159 @@ "regenerator-runtime": "^0.13.4" } }, + "@babel/template": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", + "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", + "peer": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.6", + "@babel/types": "^7.18.6" + } + }, + "@babel/traverse": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.6.tgz", + "integrity": "sha512-zS/OKyqmD7lslOtFqbscH6gMLFYOfG1YPqCKfAW5KrTeolKqvB8UelR49Fpr6y93kYkW2Ik00mT1LOGiAGvizw==", + "peer": true, + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-function-name": "^7.18.6", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.18.6", + "@babel/types": "^7.18.6", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "peer": true + } + } + }, + "@babel/types": { + "version": "7.18.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.7.tgz", + "integrity": "sha512-QG3yxTcTIBoAcQmkCs+wAPYZhu7Dk9rXKacINfNbdJDNERTbLQbHGyVG8q/YGMPeCJRIhSY0+fTc5+xuh6WPSQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" + } + }, + "@emotion/babel-plugin": { + "version": "11.9.2", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.9.2.tgz", + "integrity": "sha512-Pr/7HGH6H6yKgnVFNEj2MVlreu3ADqftqjqwUvDy/OJzKFgxKeTQ+eeUf20FOTuHVkDON2iNa25rAXVYtWJCjw==", + "requires": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/plugin-syntax-jsx": "^7.12.13", + "@babel/runtime": "^7.13.10", + "@emotion/hash": "^0.8.0", + "@emotion/memoize": "^0.7.5", + "@emotion/serialize": "^1.0.2", + "babel-plugin-macros": "^2.6.1", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.0.13" + } + }, + "@emotion/cache": { + "version": "11.9.3", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.9.3.tgz", + "integrity": "sha512-0dgkI/JKlCXa+lEXviaMtGBL0ynpx4osh7rjOXE71q9bIF8G+XhJgvi+wDu0B0IdCVx37BffiwXlN9I3UuzFvg==", + "requires": { + "@emotion/memoize": "^0.7.4", + "@emotion/sheet": "^1.1.1", + "@emotion/utils": "^1.0.0", + "@emotion/weak-memoize": "^0.2.5", + "stylis": "4.0.13" + } + }, + "@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + }, + "@emotion/is-prop-valid": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.1.3.tgz", + "integrity": "sha512-RFg04p6C+1uO19uG8N+vqanzKqiM9eeV1LDOG3bmkYmuOj7NbKNlFC/4EZq5gnwAIlcC/jOT24f8Td0iax2SXA==", + "requires": { + "@emotion/memoize": "^0.7.4" + } + }, + "@emotion/memoize": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz", + "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==" + }, + "@emotion/react": { + "version": "11.9.3", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.9.3.tgz", + "integrity": "sha512-g9Q1GcTOlzOEjqwuLF/Zd9LC+4FljjPjDfxSM7KmEakm+hsHXk+bYZ2q+/hTJzr0OUNkujo72pXLQvXj6H+GJQ==", + "requires": { + "@babel/runtime": "^7.13.10", + "@emotion/babel-plugin": "^11.7.1", + "@emotion/cache": "^11.9.3", + "@emotion/serialize": "^1.0.4", + "@emotion/utils": "^1.1.0", + "@emotion/weak-memoize": "^0.2.5", + "hoist-non-react-statics": "^3.3.1" + } + }, + "@emotion/serialize": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.4.tgz", + "integrity": "sha512-1JHamSpH8PIfFwAMryO2bNka+y8+KA5yga5Ocf2d7ZEiJjb7xlLW7aknBGZqJLajuLOvJ+72vN+IBSwPlXD1Pg==", + "requires": { + "@emotion/hash": "^0.8.0", + "@emotion/memoize": "^0.7.4", + "@emotion/unitless": "^0.7.5", + "@emotion/utils": "^1.0.0", + "csstype": "^3.0.2" + } + }, + "@emotion/sheet": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.1.1.tgz", + "integrity": "sha512-J3YPccVRMiTZxYAY0IOq3kd+hUP8idY8Kz6B/Cyo+JuXq52Ek+zbPbSQUrVQp95aJ+lsAW7DPL1P2Z+U1jGkKA==" + }, + "@emotion/styled": { + "version": "11.9.3", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.9.3.tgz", + "integrity": "sha512-o3sBNwbtoVz9v7WB1/Y/AmXl69YHmei2mrVnK7JgyBJ//Rst5yqPZCecEJlMlJrFeWHp+ki/54uN265V2pEcXA==", + "requires": { + "@babel/runtime": "^7.13.10", + "@emotion/babel-plugin": "^11.7.1", + "@emotion/is-prop-valid": "^1.1.3", + "@emotion/serialize": "^1.0.4", + "@emotion/utils": "^1.1.0" + } + }, + "@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + }, + "@emotion/utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.1.0.tgz", + "integrity": "sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==" + }, + "@emotion/weak-memoize": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", + "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" + }, "@eslint/eslintrc": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", @@ -5212,6 +7076,52 @@ "strip-json-comments": "^3.1.1" } }, + "@hapi/b64": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@hapi/b64/-/b64-5.0.0.tgz", + "integrity": "sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw==", + "requires": { + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/boom": { + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz", + "integrity": "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==", + "requires": { + "@hapi/hoek": "9.x.x" + } + }, + "@hapi/bourne": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.1.0.tgz", + "integrity": "sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q==" + }, + "@hapi/cryptiles": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-5.1.0.tgz", + "integrity": "sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA==", + "requires": { + "@hapi/boom": "9.x.x" + } + }, + "@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + }, + "@hapi/iron": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@hapi/iron/-/iron-6.0.0.tgz", + "integrity": "sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw==", + "requires": { + "@hapi/b64": "5.x.x", + "@hapi/boom": "9.x.x", + "@hapi/bourne": "2.x.x", + "@hapi/cryptiles": "5.x.x", + "@hapi/hoek": "9.x.x" + } + }, "@humanwhocodes/config-array": { "version": "0.9.5", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", @@ -5229,6 +7139,160 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "peer": true, + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "peer": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "peer": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "peer": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "peer": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@mui/base": { + "version": "5.0.0-alpha.88", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.88.tgz", + "integrity": "sha512-uL7ej2F/3GUnZewsDQSHUVHoSBT3AQcTIdfdy6QeCHy7X26mtbcIvTRcjl2PzbbNQplppavSTibPiQG/giJ+ng==", + "requires": { + "@babel/runtime": "^7.17.2", + "@emotion/is-prop-valid": "^1.1.3", + "@mui/types": "^7.1.4", + "@mui/utils": "^5.8.6", + "@popperjs/core": "^2.11.5", + "clsx": "^1.2.0", + "prop-types": "^15.8.1", + "react-is": "^17.0.2" + }, + "dependencies": { + "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==" + } + } + }, + "@mui/icons-material": { + "version": "5.8.4", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.8.4.tgz", + "integrity": "sha512-9Z/vyj2szvEhGWDvb+gG875bOGm8b8rlHBKOD1+nA3PcgC3fV6W1AU6pfOorPeBfH2X4mb9Boe97vHvaSndQvA==", + "requires": { + "@babel/runtime": "^7.17.2" + } + }, + "@mui/material": { + "version": "5.8.7", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.8.7.tgz", + "integrity": "sha512-Oo62UhrgEi+BMLr3nUEASJgScE2/hhq14CbBUmrVV3GQlEGtqMZsy26Vb0AqEmphFeN3TXlsbM9aeW5yq8ZFlw==", + "requires": { + "@babel/runtime": "^7.17.2", + "@mui/base": "5.0.0-alpha.88", + "@mui/system": "^5.8.7", + "@mui/types": "^7.1.4", + "@mui/utils": "^5.8.6", + "@types/react-transition-group": "^4.4.5", + "clsx": "^1.2.0", + "csstype": "^3.1.0", + "prop-types": "^15.8.1", + "react-is": "^17.0.2", + "react-transition-group": "^4.4.2" + }, + "dependencies": { + "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==" + } + } + }, + "@mui/private-theming": { + "version": "5.8.6", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.8.6.tgz", + "integrity": "sha512-yHsJk1qU9r/q0DlnxGRJPHyM0Y/nUv8FTNgDTiI9I58GWuVuZqeTUr7JRvPh6ybeP/FLtW5eXEavRK9wxVk4uQ==", + "requires": { + "@babel/runtime": "^7.17.2", + "@mui/utils": "^5.8.6", + "prop-types": "^15.8.1" + } + }, + "@mui/styled-engine": { + "version": "5.8.7", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.8.7.tgz", + "integrity": "sha512-tVqtowjbYmiRq+qcqXK731L9eWoL9H8xTRhuTgaDGKdch1zlt4I2UwInUe1w2N9N/u3/jHsFbLcl1Un3uOwpQg==", + "requires": { + "@babel/runtime": "^7.17.2", + "@emotion/cache": "^11.9.3", + "csstype": "^3.1.0", + "prop-types": "^15.8.1" + } + }, + "@mui/system": { + "version": "5.8.7", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.8.7.tgz", + "integrity": "sha512-yFoFbfO42FWeSUDrFPixYjpqySQMqVMOSbSlAxiKnwFpvXGGn/bkfQTboCRNO31fvES29FJLQd4mwwMHd5mXng==", + "requires": { + "@babel/runtime": "^7.17.2", + "@mui/private-theming": "^5.8.6", + "@mui/styled-engine": "^5.8.7", + "@mui/types": "^7.1.4", + "@mui/utils": "^5.8.6", + "clsx": "^1.2.0", + "csstype": "^3.1.0", + "prop-types": "^15.8.1" + } + }, + "@mui/types": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.1.4.tgz", + "integrity": "sha512-uveM3byMbthO+6tXZ1n2zm0W3uJCQYtwt/v5zV5I77v2v18u0ITkb8xwhsDD2i3V2Kye7SaNR6FFJ6lMuY/WqQ==", + "requires": {} + }, + "@mui/utils": { + "version": "5.8.6", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.8.6.tgz", + "integrity": "sha512-QM2Sd1xZo2jOt2Vz5Rmro+pi2FLJyiv4+OjxkUwXR3oUM65KSMAMLl/KNYU55s3W3DLRFP5MVwE4FhAbHseHAg==", + "requires": { + "@babel/runtime": "^7.17.2", + "@types/prop-types": "^15.7.5", + "@types/react-is": "^16.7.1 || ^17.0.0", + "prop-types": "^15.8.1", + "react-is": "^17.0.2" + }, + "dependencies": { + "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==" + } + } + }, "@next/env": { "version": "12.1.5", "resolved": "https://registry.npmjs.org/@next/env/-/env-12.1.5.tgz", @@ -5341,6 +7405,11 @@ "fastq": "^1.6.0" } }, + "@popperjs/core": { + "version": "2.11.5", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", + "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==" + }, "@rushstack/eslint-patch": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.0.8.tgz", @@ -5365,11 +7434,28 @@ "defer-to-connect": "^1.0.1" } }, + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, "@types/component-emitter": { "version": "1.2.11", "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==" }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "requires": { + "@types/node": "*" + } + }, "@types/cookie": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", @@ -5380,17 +7466,103 @@ "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" }, + "@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.29", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz", + "integrity": "sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==", + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "dev": true }, + "@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + }, "@types/node": { "version": "17.0.23", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + }, + "@types/react": { + "version": "18.0.15", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.15.tgz", + "integrity": "sha512-iz3BtLuIYH1uWdsv6wXYdhozhqj20oD4/Hk2DNXIn1kFsmp9x8d9QB6FnPhfkbhd2PgEONt9Q1x/ebkwjfFLow==", + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-is": { + "version": "17.0.3", + "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.3.tgz", + "integrity": "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==", + "requires": { + "@types/react": "*" + } + }, + "@types/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==", + "requires": { + "@types/react": "*" + } + }, + "@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + }, + "@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, "@types/webidl-conversions": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz", @@ -5635,6 +7807,16 @@ "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", "dev": true }, + "babel-plugin-macros": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", + "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", + "requires": { + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" + } + }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -5724,6 +7906,18 @@ "fill-range": "^7.0.1" } }, + "browserslist": { + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", + "integrity": "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==", + "peer": true, + "requires": { + "caniuse-lite": "^1.0.30001359", + "electron-to-chromium": "^1.4.172", + "node-releases": "^2.0.5", + "update-browserslist-db": "^1.0.4" + } + }, "bson": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/bson/-/bson-4.6.2.tgz", @@ -5793,8 +7987,7 @@ "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" }, "camelcase": { "version": "6.3.0", @@ -5802,9 +7995,9 @@ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" }, "caniuse-lite": { - "version": "1.0.30001331", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001331.tgz", - "integrity": "sha512-Y1xk6paHpUXKP/P6YjQv1xqyTbgAP05ycHBcRdQjTcyXlWol868sJJPlmk5ylOekw2BrucWes5jk+LvVd7WZ5Q==" + "version": "1.0.30001363", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001363.tgz", + "integrity": "sha512-HpQhpzTGGPVMnCjIomjt+jvyUu8vNFo3TaDiZ/RcoTrlOq/5+tC8zHdsbgFB6MxmaY+jCpsH09aD80Bb4Ow3Sg==" }, "chalk": { "version": "4.1.2", @@ -5863,6 +8056,11 @@ "mimic-response": "^1.0.0" } }, + "clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==" + }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -5953,6 +8151,21 @@ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "requires": { + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "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==" + } + } + }, "cookie": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", @@ -5978,6 +8191,18 @@ "vary": "^1" } }, + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "requires": { + "@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" + } + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -5999,6 +8224,11 @@ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" }, + "csstype": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", + "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" + }, "damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -6079,6 +8309,15 @@ "esutils": "^2.0.2" } }, + "dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "requires": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, "dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", @@ -6110,6 +8349,12 @@ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, + "electron-to-chromium": { + "version": "1.4.180", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.180.tgz", + "integrity": "sha512-7at5ash3FD9U5gPa3/wPr6OdiZd/zBjvDZaaHBpcqFOFUhZiWnb7stkqk8xUFL9H9nk7Yok5vCCNK8wyC/+f8A==", + "peer": true + }, "emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", @@ -6163,6 +8408,14 @@ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==" }, + "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==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, "es-abstract": { "version": "1.19.4", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.4.tgz", @@ -6211,6 +8464,12 @@ "is-symbol": "^1.0.2" } }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "peer": true + }, "escape-goat": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", @@ -6224,8 +8483,7 @@ "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 + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" }, "eslint": { "version": "8.13.0", @@ -6750,6 +9008,11 @@ } } }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, "find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", @@ -6811,8 +9074,7 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "functional-red-black-tree": { "version": "1.0.1", @@ -6841,6 +9103,12 @@ "json-bigint": "^1.0.0" } }, + "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==", + "peer": true + }, "get-intrinsic": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", @@ -7007,7 +9275,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -7043,6 +9310,14 @@ "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" }, + "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==", + "requires": { + "react-is": "^16.7.0" + } + }, "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", @@ -7097,7 +9372,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -7154,6 +9428,40 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" }, + "iron-session": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/iron-session/-/iron-session-6.1.3.tgz", + "integrity": "sha512-o5ErwzAtTBKPtxo4nDmxOZAjK4Stku//5sFM0vac3/Px34530gTwnXoa8zwsC4/koqCtKY0yC0KF/1K+ZMGuHA==", + "requires": { + "@hapi/iron": "^6.0.0", + "@types/cookie": "^0.5.1", + "@types/express": "^4.17.13", + "@types/node": "^16.11.7", + "cookie": "^0.5.0" + }, + "dependencies": { + "@types/cookie": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.1.tgz", + "integrity": "sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==" + }, + "@types/node": { + "version": "16.11.43", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.43.tgz", + "integrity": "sha512-GqWykok+3uocgfAJM8imbozrqLnPyTrpFlrryURQlw1EesPUCx5XxTiucWDSFF9/NUEXDuD4bnvHm8xfVGWTpQ==" + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, "is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -7204,7 +9512,6 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "dev": true, "requires": { "has": "^1.0.3" } @@ -7361,6 +9668,12 @@ "argparse": "^2.0.1" } }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "peer": true + }, "json-bigint": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", @@ -7374,6 +9687,11 @@ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" }, + "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==" + }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -7404,6 +9722,49 @@ "universalify": "^2.0.0" } }, + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "dependencies": { + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, "jsx-ast-utils": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz", @@ -7479,6 +9840,11 @@ "type-check": "~0.4.0" } }, + "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==" + }, "locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", @@ -7489,12 +9855,47 @@ "path-exists": "^3.0.0" } }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, "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 }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -7723,6 +10124,15 @@ "styled-jsx": "5.0.1" } }, + "nextjs-progressbar": { + "version": "0.0.14", + "resolved": "https://registry.npmjs.org/nextjs-progressbar/-/nextjs-progressbar-0.0.14.tgz", + "integrity": "sha512-AXYXHDN6M52AwFnGqH/vlwyo0gbC9zM7QS/4ryOTI0RUqfze5FJl8uSrxKJMzK6hGFdDeQXcZoWsLGXeCVtTwg==", + "requires": { + "nprogress": "^0.2.0", + "prop-types": "^15.7.2" + } + }, "node-fetch": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", @@ -7757,6 +10167,12 @@ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" }, + "node-releases": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", + "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", + "peer": true + }, "nodemon": { "version": "2.0.15", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz", @@ -7820,6 +10236,11 @@ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" }, + "nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -7973,11 +10394,21 @@ "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, "requires": { "callsites": "^3.0.0" } }, + "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==", + "requires": { + "@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" + } + }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -8004,8 +10435,7 @@ "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 + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "path-to-regexp": { "version": "0.1.7", @@ -8015,8 +10445,7 @@ "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 + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" }, "picocolors": { "version": "1.0.0", @@ -8053,7 +10482,6 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, "requires": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -8171,8 +10599,26 @@ "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 + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "react-toastify": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-9.0.5.tgz", + "integrity": "sha512-dszPCeQINY+Nm6HmsiAXT/7wsazPqv0S/RuhIYLAW+fTKcd3T1iRjZG0XqrN9nvAzqaE5J6uxMaiBrOevxjY8g==", + "requires": { + "clsx": "^1.1.1" + } + }, + "react-transition-group": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", + "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + } }, "readdirp": { "version": "3.6.0", @@ -8185,8 +10631,7 @@ "regenerator-runtime": { "version": "0.13.9", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" }, "regexp.prototype.flags": { "version": "1.4.2", @@ -8224,7 +10669,6 @@ "version": "1.22.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, "requires": { "is-core-module": "^2.8.1", "path-parse": "^1.0.7", @@ -8234,8 +10678,7 @@ "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 + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" }, "responselike": { "version": "1.0.2", @@ -8483,6 +10926,11 @@ "smart-buffer": "^4.2.0" } }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + }, "source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", @@ -8581,6 +11029,11 @@ "integrity": "sha512-+PIZ/6Uk40mphiQJJI1202b+/dYeTVd9ZnMPR80pgiWbjIwvN2zIp4r9et0BgqBuShh48I0gttPlAXA7WVvBxw==", "requires": {} }, + "stylis": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz", + "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==" + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -8592,8 +11045,18 @@ "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 + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "sweetalert2": { + "version": "11.4.20", + "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.4.20.tgz", + "integrity": "sha512-3LiBFa5yRmTcqM0vGcFmo0EnhmaMSJfzhFpvZoXK6BOY94HIcIUbwhhW+NY5oXOpz5CT21qFAu0fKCUkOc/Pew==" + }, + "sweetalert2-react-content": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/sweetalert2-react-content/-/sweetalert2-react-content-5.0.1.tgz", + "integrity": "sha512-waB/aDHeVSBdxHEFioy0OmQVi+bupr/S1M+GW54WbFkuO86uxVLRzzFomeddhGzrl6R4JwNJAmuKYDhQVN+uyw==", + "requires": {} }, "text-table": { "version": "0.2.0", @@ -8601,6 +11064,11 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, + "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==" + }, "to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", @@ -8741,6 +11209,16 @@ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, + "update-browserslist-db": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", + "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", + "peer": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, "update-notifier": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", @@ -8901,6 +11379,11 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" } } } diff --git a/package.json b/package.json index 1afa4a3..80b0815 100644 --- a/package.json +++ b/package.json @@ -10,19 +10,29 @@ "lint": "next lint" }, "dependencies": { + "@emotion/react": "^11.9.3", + "@emotion/styled": "^11.9.3", + "@mui/icons-material": "^5.8.4", + "@mui/material": "^5.8.7", "cors": "^2.8.5", "dotenv": "^16.0.0", "express": "^4.17.3", "express-form-data": "^2.0.17", "googleapis": "^100.0.0", + "iron-session": "^6.1.3", + "jsonwebtoken": "^8.5.1", "md5": "^2.3.0", "mongoose": "^6.2.11", "next": "12.1.5", + "nextjs-progressbar": "^0.0.14", "nodemon": "^2.0.15", "react": "18.0.0", "react-dom": "18.0.0", + "react-toastify": "^9.0.5", "socket.io": "^4.5.1", "socket.io-client": "^4.5.1", + "sweetalert2": "^11.4.20", + "sweetalert2-react-content": "^5.0.1", "typescript": "^4.6.3" }, "devDependencies": { diff --git a/pages/_app.js b/pages/_app.js index 1e1cec9..369d321 100644 --- a/pages/_app.js +++ b/pages/_app.js @@ -1,7 +1,31 @@ import '../styles/globals.css' +import NextNProgress from 'nextjs-progressbar' +import{ createTheme } from '@mui/material/styles' +import { ThemeProvider } from '@emotion/react' + +const theme = createTheme({ + palette: { + primary: { + main: '#046767', + }, + secondary: { + main: '#024848', + } + } +}) function MyApp({ Component, pageProps }) { - return + return ( + + + + + ) + + + } export default MyApp diff --git a/pages/admin/index.js b/pages/admin/index.js new file mode 100644 index 0000000..ac4404f --- /dev/null +++ b/pages/admin/index.js @@ -0,0 +1,573 @@ +// create a react app +import { withIronSessionSsr } from "iron-session/next"; +import { useState, useEffect } from 'react'; +import Box from '@mui/material/Box'; +import CssBaseline from '@mui/material/CssBaseline'; + + +import AdminAppBar from '../../component/admin/theComponent/appBar'; +import AdminDrawer from '../../component/admin/theComponent/drawer'; +import AdminDrawerHeader from "../../component/admin/theComponent/drawerHeadaer"; +import AdminMain from '../../component/admin/theComponent/main'; +import AdminDialog from '../../component/admin/theComponent/adminDialog'; + +import Grid from '@mui/material/Grid'; +import Card from '@mui/material/Card'; + +import Backdrop from '@mui/material/Backdrop'; +import CircularProgress from '@mui/material/CircularProgress'; + +import Typography from '@mui/material/Typography'; + +import Table from '@mui/material/Table'; +import TableBody from '@mui/material/TableBody'; +import TableCell, { tableCellClasses } from '@mui/material/TableCell'; +import TableContainer from '@mui/material/TableContainer'; +import TableHead from '@mui/material/TableHead'; +import TableRow from '@mui/material/TableRow'; +import Paper from '@mui/material/Paper'; +import { styled } from '@mui/material/styles'; + + + +const StyledTableCell = styled(TableCell)(({ theme }) => ({ + [`&.${tableCellClasses.head}`]: { + backgroundColor: "#046767", + color: "white", + }, + +})); + + +import IconButton from '@mui/material/IconButton'; +import InfoIcon from '@mui/icons-material/Info'; +import CheckCircleOutlineIcon from '@mui/icons-material/CheckCircleOutline'; +import DoNotDisturbOffIcon from '@mui/icons-material/DoNotDisturbOff'; + + +// sweet alert +import Swal from 'sweetalert2' +import withReactContent from 'sweetalert2-react-content' +const MySwal = withReactContent(Swal) + +import { ToastContainer, toast, Zoom, Bounce } from 'react-toastify' +import 'react-toastify/dist/ReactToastify.css'; + +const io = require('socket.io-client'); +const socket = io("http://localhost:3001/"); +// let socketId; +// socket.on('connect', function () { +// const sessionID = socket.id; +// console.log('connected disini'); +// console.log(sessionID); +// socketId = sessionID; +// }); + + +function AdminIndexPage(props) { + const title = 'Home' + let socketId; + socket.on('connect', function () { + const sessionID = socket.id; + console.log('connected disini'); + console.log(sessionID); + // socketId = sessionID; + // push sessionID to socketId + socketId = sessionID; + // console.log(socketId); + }); + + + // const disconnectSocket = () => { + // console.log("sini disconnected") + // // socket.emit('disconnect_it', socketId); + // // socket.disconnect(); + // }; + + + const [openDrawer, setOpenDrawer] = useState(false); + const [loadingData, setLoadingData] = useState(0); + const [data, setData] = useState([]); + // const [dataPengirim, setDataPengirim] = useState([]); + const [backdrop, setBackdrop] = useState(true); + const handleDrawerOpen = () => { + setOpenDrawer(true); + }; + + const handleDrawerClose = () => { + setOpenDrawer(false); + }; + + useEffect(() => { + // fetch + + const fetchData = async () => { + let http_server = "/api/admin/get_all_kurir_verifikasi" + // console.log(http_server); + const response = await fetch(http_server, { + // timeout: 10000, + method: 'GET', + headers: { + 'Content-Type': 'application/json', + 'allow-cors-origin': '*', + 'crossDomain': true, + 'Authorization': 'Bearer ' + props.accessToken + } + }); + + const json = await response.json(); + // console.log(json); + // console.log(response.status); + if (response.status === 200) { + setData(json.data); + // setBackdrop(false); + console.log(data); + setLoadingData(1); + } + + } + + + + fetchData().catch(error => { + console.log(error); + setLoadingData(2); + }).finally(() => { + setBackdrop(false); + }) + + + + }, []); + + socket.on('tambah_verifikasi_kurir', async function () { + // const sessionID = socket.socket; + // console.log('connected'); + // console.log(sessionID); + // setLoadingData(0); + try { + let http_server = "http://localhost:3001/api/admin/get_all_kurir_verifikasi" + const response = await fetch(http_server, { + // timeout: 10000, + method: 'GET', + headers: { + 'Content-Type': 'application/json', + 'allow-cors-origin': '*', + 'crossDomain': true, + 'Authorization': 'Bearer ' + props.accessToken + } + }); + + const json = await response.json(); + console.log(json); + // console.log(response.status); + if (response.status === 200) { + setData(json.data); + // setBackdrop(false); + // console.log(data); + setLoadingData(1); + toast.info('Ada kurir baru menunggu verifikasi', { + toastId: 'tambah_verifikasi_kurir', + }) + + } + } catch (error) { + console.log(error); + // setLoadingData(2); + } + + }); + + socket.on('tambah_verifikasi_pengirim', async function () { + // const sessionID = socket.socket; + // console.log('connected'); + // console.log(sessionID); + // setLoadingData(0); + toast.info('Ada pengirim baru terdaftar\nAnda bisa lihat di menu "List User"', { + toastId: 'tambah_verifikasi_pengirim', + }) + + }); + + + const [openDialog, setOpenDialog] = useState(false); + const [dataClicked, setDataClicked] = useState({}); + const [roleClicked, setRoleClicked] = useState(''); + + const handleDialogOpen = () => { + setOpenDialog(true); + }; + + const handleDialogClose = () => { + setOpenDialog(false); + }; + + + async function beforeTerimaKurir(id, status) { + // setSweetAlertLoading(true); + handleDialogClose(); + await MySwal.fire({ + title: 'Yakin ?', + text: `Kurir ini akan ${(status == "terima") ? "terdaftar" : "dibatalkan pendaftaran"} dalam sistem`, + icon: 'info', + showCancelButton: true, + confirmButtonColor: '#3085d6', + cancelButtonColor: '#d33', + confirmButtonText: (status == "terima") ? 'Ya, daftar!' : 'Ya, batalkan!' + }).then(async (result) => { + if (result.value) { + setBackdrop(true); + setLoadingData(0); + try { + let http_server = (status == "terima") ? "/api/admin/verifikasi_kurir" : "/api/admin/batalkan_kurir" + // console.log(http_server); + const response = await fetch(http_server, { + // timeout: 10000, + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'allow-cors-origin': '*', + 'crossDomain': true, + 'Authorization': 'Bearer ' + props.accessToken + }, + body: JSON.stringify({ + id_kurir: id, + }) + }); + + const json = await response.json(); + + if (response.status === 200) { + setLoadingData(1); + MySwal.fire({ + title: 'Berhasil!', + text: (status == "terima") ? "Kurir berhasil terdaftar" : "Pendaftaran kurir dibatalkan", + icon: 'success', + showConfirmButton: false, + timer: 1500 + }) + setData(json.data); + // setBackdrop(false); + // window.location.reload(); + } + } catch (error) { + console.log(error); + errornya(error); + setLoadingData(2); + + } + + + } else { + handleDialogOpen(); + } + }) + setBackdrop(false); + } + + + + function errornya() { + MySwal.fire({ + title: 'Error Jaringan', + text: `Terjadi kesalahan jaringan, coba lagi\nAtau coba refresh browser anda`, + icon: 'error', + showConfirmButton: false, + timer: 3000 + }) + } + + return ( + + { + // console.log(val) + beforeTerimaKurir(val, "terima") + } + } + + batalKurir={ + (val) => { + // console.log(val) + beforeTerimaKurir(val, "terima") + } + } + // disconnectSocket={disconnectSocket} + /> + + theme.zIndex.drawer + 1 }}> + + + { + // console.log("sini disconnected") + // disconnectSocket() + } + } + /> + + + + + + + + + Verifikasi Kurir + + + { + loadingData === 0 ? + ( + <> + + + + + + + ) : + loadingData === 1 ? + ( + <> + { + data.length > 0 ? ( + <> + + + + + NIK + Nama + No Kenderaan + No Telpon + {/* Alamat + Email */} + Aksi + + + + {data.map((row) => ( + + + {row.nik} + + {row.nama} + {row.no_kenderaan} + {row.no_telp} + {/* {row.alamat} + {row.email} */} + + { + handleDialogOpen(); + setDataClicked(row); + setRoleClicked('kurir'); + } + } + > + + + { + // handleDialogOpen(); + setDataClicked(row); + setRoleClicked('kurir'); + beforeTerimaKurir(row._id, "terima"); + } + } + > + + + { + // handleDialogOpen(); + setDataClicked(row); + setRoleClicked('kurir'); + beforeTerimaKurir(row._id, "batalkan"); + } + } + > + + + + + ))} + +
+
+ + + + ) : ( + <> + + Tiada Data Verifikasi Kurir + + + + ) + } + + + ) + : ( + <> + + Error Loading Data + + + ) + } + + + + +
+
+
+ + +
+
+ ); +} + + + +export const getServerSideProps = withIronSessionSsr( + async function getServerSideProps({ req }) { + + const data = req.session.data; + // console.log(data) + if (!data) { + return { + redirect: { + destination: '/?error=true', + permanent: false, + } + }; + } + + if (data.role != "admin") { + try { + console.log("jalankannya ini di admin") + const url = process.env.HTTP_URL + "/api/login_admin/logout"; + await fetch(url, { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + 'allow-cors-origin': '*', + 'crossDomain': true, + }, + }) + + } catch (err) { + + } + + return { + redirect: { + destination: '/?error=true', + permanent: false, + } + }; + } + + + return { + props: { + // user: req.session.user, + accessToken: data.accessToken, + }, + }; + }, + { + cookieName: "myapp_cookiename", + password: "complex_password_at_least_32_characters_long123456789", + // secure: true should be used in production (HTTPS) but can't be used in development (HTTP) + cookieOptions: { + secure: process.env.NODE_ENV === "production", + }, + }, +); + + + + +export default AdminIndexPage; \ No newline at end of file diff --git a/pages/admin/list_user.js b/pages/admin/list_user.js new file mode 100644 index 0000000..dbd88d1 --- /dev/null +++ b/pages/admin/list_user.js @@ -0,0 +1,697 @@ +import { withIronSessionSsr } from "iron-session/next"; +import { useState, useEffect } from 'react'; +import Box from '@mui/material/Box'; +import CssBaseline from '@mui/material/CssBaseline'; + + +import AdminAppBar from '../../component/admin/theComponent/appBar'; +import AdminDrawer from '../../component/admin/theComponent/drawer'; +import AdminDrawerHeader from "../../component/admin/theComponent/drawerHeadaer"; +import AdminMain from '../../component/admin/theComponent/main'; +import AdminDialog from '../../component/admin/theComponent/adminDialog'; + +import Backdrop from '@mui/material/Backdrop'; +import CircularProgress from '@mui/material/CircularProgress'; + +import Grid from '@mui/material/Grid'; +import Card from '@mui/material/Card'; +import Typography from '@mui/material/Typography'; + +// sweet alert +import Swal from 'sweetalert2' +import withReactContent from 'sweetalert2-react-content' +const MySwal = withReactContent(Swal) + +import { ToastContainer, toast, Zoom, Bounce } from 'react-toastify' +import 'react-toastify/dist/ReactToastify.css'; + +import Table from '@mui/material/Table'; +import TableBody from '@mui/material/TableBody'; +import TableCell, { tableCellClasses } from '@mui/material/TableCell'; +import TableContainer from '@mui/material/TableContainer'; +import TableHead from '@mui/material/TableHead'; +import TableRow from '@mui/material/TableRow'; +import Paper from '@mui/material/Paper'; +import { styled } from '@mui/material/styles'; + + + +const StyledTableCell = styled(TableCell)(({ theme }) => ({ + [`&.${tableCellClasses.head}`]: { + backgroundColor: "#046767", + color: "white", + }, + +})); + + +import IconButton from '@mui/material/IconButton'; +import InfoIcon from '@mui/icons-material/Info'; +// import CheckCircleOutlineIcon from '@mui/icons-material/CheckCircleOutline'; +import DoNotDisturbOffIcon from '@mui/icons-material/DoNotDisturbOff'; + + + +const io = require('socket.io-client'); +const socket = io("http://localhost:3001/"); + +function ListUSer(props) { + const title = 'list_user' + + + + const [openDrawer, setOpenDrawer] = useState(false); + const [loadingData, setLoadingData] = useState(0); + const [loadingData1, setLoadingData1] = useState(0); + const [dataKurir, setDataKurir] = useState([]); + const [dataPengirim, setDataPengirim] = useState([]); + + // const [socketId, setSocketId] = useState([]); + + let socketId; + socket.on('connect', function () { + const sessionID = socket.id; + console.log('connected disini'); + console.log(sessionID); + // socketId = sessionID; + // push sessionID to socketId + socketId = sessionID; + // console.log(socketId); + }); + + socket.on('tambah_verifikasi_kurir', async function () { + toast.info('Ada kurir baru menunggu verifikasi', { + toastId: 'tambah_verifikasi_kurir', + }) + + }); + + + socket.on('tambah_verifikasi_pengirim', async function () { + // const sessionID = socket.socket; + // console.log('connected'); + // console.log(sessionID); + // setLoadingData(0); + try { + let http_server = "http://localhost:3001/api/admin/get_all_pengirim" + const response = await fetch(http_server, { + // timeout: 10000, + method: 'GET', + headers: { + 'Content-Type': 'application/json', + 'allow-cors-origin': '*', + 'crossDomain': true, + 'Authorization': 'Bearer ' + props.accessToken + } + }); + + const json = await response.json(); + // console.log(json); + // console.log(response.status); + if (response.status === 200) { + setDataPengirim(json.data); + // setBackdrop(false); + // console.log(data); + setLoadingData(1); + toast.info('Ada pengirim baru terdaftar', { + toastId: 'tambah_verifikasi_pengirim', + }) + + } + } catch (error) { + console.log(error); + // setLoadingData(2); + } + }); + + + useEffect(() => { + // fetch + + const fetchData = async () => { + let http_server = "/api/admin/get_all_kurir" + // console.log(http_server); + const response = await fetch(http_server, { + // timeout: 10000, + method: 'GET', + headers: { + 'Content-Type': 'application/json', + 'allow-cors-origin': '*', + 'crossDomain': true, + 'Authorization': 'Bearer ' + props.accessToken + } + }); + + const json = await response.json(); + // console.log(json); + // console.log(response.status); + if (response.status === 200) { + setDataKurir(json.data); + // setBackdrop(false); + // console.log(data); + setLoadingData(1); + } + + } + + const fetchDataPengirim = async () => { + let http_server = "/api/admin/get_all_pengirim" + console.log(http_server); + const response = await fetch(http_server, { + // timeout: 10000, + method: 'GET', + headers: { + 'Content-Type': 'application/json', + 'allow-cors-origin': '*', + 'crossDomain': true, + 'Authorization': 'Bearer ' + props.accessToken + } + }); + + const json = await response.json(); + // console.log(json); + // console.log(response.status); + if (response.status === 200) { + setDataPengirim(json.data); + // setBackdrop(false); + // console.log(data); + setLoadingData1(1); + } + + } + + + fetchData().catch(error => { + console.log(error); + setLoadingData(2); + }).finally(() => { + setBackdrop(false); + }) + + fetchDataPengirim().catch(error => { + console.log(error); + setLoadingData1(2); + }).finally(() => { + setBackdrop(false); + }) + + + + + }, []); + + const [backdrop, setBackdrop] = useState(true); + const [openDialog, setOpenDialog] = useState(false); + const [dataClicked, setDataClicked] = useState({}); + const [roleClicked, setRoleClicked] = useState(''); + + const handleDrawerOpen = () => { + setOpenDrawer(true); + }; + + const handleDrawerClose = () => { + setOpenDrawer(false); + }; + + + const handleDialogOpen = () => { + setOpenDialog(true); + }; + + const handleDialogClose = () => { + setOpenDialog(false); + }; + + // function disconnectSocket() { + // console.log("sini disconnected") + // // socket.emit('disconnect_it', socketId); + // // socket.disconnect(); + // }; + + + return ( + + { + // console.log(val) + beforeTerimaKurir(val, "terima") + } + } + + batalKurir={ + (val) => { + // console.log(val) + beforeTerimaKurir(val, "terima") + } + } + + /> + + theme.zIndex.drawer + 1 }}> + + + { + // console.log("sini disconnected") + // disconnectSocket() + } + } + /> + + + + + + + + + List Kurir + + + { + loadingData === 0 ? + ( + <> + + + + + + + ) : + loadingData === 1 ? + ( + <> + { + dataKurir.length > 0 ? ( + <> + + + + + NIK + Nama + No Kenderaan + No Telpon + Aksi + + + + {dataKurir.map((row) => ( + + + {row.nik} + + {row.nama} + {row.no_kenderaan} + {row.no_telp} + + { + handleDialogOpen(); + setDataClicked(row); + setRoleClicked('kurir'); + } + } + > + + + {/* { + // handleDialogOpen(); + setDataClicked(row); + setRoleClicked('kurir'); + beforeTerimaKurir(row._id, "terima"); + } + } + > + + */} + { + // handleDialogOpen(); + setDataClicked(row); + setRoleClicked('kurir'); + beforeTerimaKurir(row._id, "batalkan"); + } + } + > + + + + + ))} + +
+
+ + + + ) : ( + <> + + Tiada Data Verifikasi Kurir + + + + ) + } + + + ) + : ( + <> + + Error Loading Data + + + ) + } + + + + +
+
+
+ + + + + + + + List Pengirim + + + { + loadingData1 === 0 ? + ( + <> + + + + + + + ) : + loadingData1 === 1 ? + ( + <> + { + dataPengirim.length > 0 ? ( + <> + + + + + Nama + No Telpon + Email + Aksi + + + + {dataPengirim.map((row) => ( + + + {row.nama} + + {row.no_telp} + {row.email} + + { + handleDialogOpen(); + setDataClicked(row); + setRoleClicked('pengirim'); + } + } + > + + + {/* { + // handleDialogOpen(); + setDataClicked(row); + setRoleClicked('kurir'); + beforeTerimaKurir(row._id, "terima"); + } + } + > + + */} + { + // handleDialogOpen(); + setDataClicked(row); + setRoleClicked('pengirim'); + beforeTerimaKurir(row._id, "batalkan"); + } + } + > + + + + + ))} + +
+
+ + + + ) : ( + <> + + Tiada Data Verifikasi Kurir + + + + ) + } + + + ) + : ( + <> + + Error Loading Data + + + ) + } + + + + +
+
+
+ +
+
+ ); +} + + +export const getServerSideProps = withIronSessionSsr( + async function getServerSideProps({ req }) { + + const data = req.session.data; + // console.log(data) + if (!data) { + return { + redirect: { + destination: '/?error=true', + permanent: false, + } + }; + } + + if (data.role != "admin") { + try { + console.log("jalankannya ini di admin") + const url = process.env.HTTP_URL + "/api/login_admin/logout"; + await fetch(url, { + method: 'GET', + headers: { + 'Content-Type': 'application/json', + 'allow-cors-origin': '*', + 'crossDomain': true, + }, + }) + + } catch (err) { + + } + + return { + redirect: { + destination: '/?error=true', + permanent: false, + } + }; + } + + + return { + props: { + // user: req.session.user, + accessToken: data.accessToken, + }, + }; + }, + { + cookieName: "myapp_cookiename", + password: "complex_password_at_least_32_characters_long123456789", + // secure: true should be used in production (HTTPS) but can't be used in development (HTTP) + cookieOptions: { + secure: process.env.NODE_ENV === "production", + }, + }, +); + + +export default ListUSer; \ No newline at end of file diff --git a/pages/index.js b/pages/index.js index 83cd6ca..37d61fd 100644 --- a/pages/index.js +++ b/pages/index.js @@ -1,12 +1,143 @@ + +import { useRef, useState } from 'react'; +import { useRouter } from "next/router"; +import MyAppBar from "../component/appBar"; + +import Grid from '@mui/material/Grid'; +import Box from '@mui/material/Box'; + +import Card from '@mui/material/Card'; +import TextField from '@mui/material/TextField'; +import Button from '@mui/material/Button'; + +import Backdrop from '@mui/material/Backdrop'; +import CircularProgress from '@mui/material/CircularProgress'; + +import { ToastContainer, toast, Zoom, Bounce } from 'react-toastify' +import 'react-toastify/dist/ReactToastify.css'; + +import Swal from 'sweetalert2' +import withReactContent from 'sweetalert2-react-content' +const MySwal = withReactContent(Swal) + +// require("dotenv").config(); + function HomePage() { + const [backdrop, setBackdrop] = useState(false); + + const usernameInputRef = useRef(); + const passwordInputRef = useRef(); + const router = useRouter(); + + async function submitHandler(event) { + event.preventDefault(); + setBackdrop(true); + try { + const username = usernameInputRef.current.value; + const password = passwordInputRef.current.value; + + let http_server = "/api/login_admin?username=" + username + "&password=" + // console.log(http_server); + const response = await fetch(http_server, { + // timeout: 10000, + method: 'GET', + headers: { + 'Content-Type': 'application/json', + 'allow-cors-origin': '*', + 'crossDomain': true, + } + }); + + const data = await response.json(); + + if (response.status === 200) { + setBackdrop(false); + MySwal.fire({ + title: 'Login Success', + text: 'You will be redirected to the admin page', + icon: 'success', + confirmButtonButton: false, + timer: 2000 + }) + await router.push('/admin'); + }else{ + setBackdrop(false); + MySwal.fire({ + title: 'Login Failed', + text: 'Please check your username and password', + icon: 'error', + confirmButtonButton: false, + timer: 2000 + }) + } + + // setBackdrop(true); + + // // await 4 sec + // await new Promise(resolve => setTimeout(resolve, 4000)); + // toast.error("heheheh"); + // setBackdrop(false); + + } catch (error) { + console.log("error", error); + } finally { + setBackdrop(false); + } + // setBackdrop(true); + } + return (
-

Home Page

-

- Lorem ipsum dolor sit amet consectetur adipisicing elit. Quisquam - doloremque, quidem quisquam, quisquam quisquam quisquam quisquam - dignissimos. -

+ + theme.zIndex.drawer + 1 }}> + + {/* */} + + + + + + + +

Admin Login

+ +

+ +

+ + + +
+
+ + + +
+ + {/*
*/} +
); } diff --git a/public/logo.png b/public/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6a932f42b81678bcfdd71c4401135ebce97b341a GIT binary patch literal 187256 zcmX_o2RxPk`~GumvUk}ctBh3krZOTTt59eiGs)(NA_*B$Rw<=8(LiLJ2vJ50p=0lH zj(Kdq`|p7*%#`?{~|dY`+e%}=l}?PEd^gvI!zp%sGA!e40-20Hk` zKe9uCAB;XH?fnpB4;T6ygFMdShkq1xJ!y3cL4qX_1Q&%MYdi3B5<&bG5oF2*LDVx4 zgwH$Kx#2iM)w6AEsAnD6GxIMfH0@8e4!PYvN5ByOr%XOuN%Vnavf+LP+P62a8GXqY zaIxh6F#Ey0>*|AiDlv((x;^H-S3PINrCVY@3^Q0=`{V4$agQfT<-)jC?61lX>SyJW zH?l@4O4rV;*q16OYU81`?Uc|&GBGL^ei7AO<2xKo5nd#G?VEF6 zMaA0EUgb;i(sFVFlhqNm>_ZX=iJt7`^wzwZVL*Yn@$xo%#8oUde{vPpn1L78bfIEE&9;OaJMEbQD=KK-6?SJc5Z^O);=V< zv{NoW@XzjOB@Q5W(NW*2tgPH#US2N5WHBMWf*VPzXI$z?*$aq=V3TZI-iU*?jje5f zZ&+B^}ZiTHMxAZwEn^2Y(I08N2#0VYy77> z-J|GOOoA1!E1ANCEYV3QU^qB9eoQYC_u!8{&dgN0((&Xfa@HP;Aw+-SPKk&~Wa#R? zgAE^lq8C;3x37;GUs~R|(8C2Es{U~+jt7U%EB$y@R4V7GQ>O~>_^pFD$GUOBRmIZ6 zpz*A)Jm)UXwPkBeTWBr+Ug<(d8mr!v#<}~rtyqkRkJpxhiD5oDP?TRNy~cBzNs3DlheM2zuoCD zKX?p%u}C}2NqDi}k)>y)^EZE4=-lTrSG|y(dYz_lhbdXP@g#oP`JsaIwguM#GhM-^ z!*SwGrUvkVrF~}+bRPT%s=JU9x8~$Xs}_z%eg-k_VzWWKdzuw1VMEF+!$%A;wEQBw zyX{#2dsM2_()KTe8TShDS|B#*$Hv;e6m>3set5AKG5a3E66A}{GSz=~A7x}a(faU^ zBQo%qtOPG)yU-JQZE>u1tym16%|UCn`wpXbhwTu;J%yS;30zCbRyy_tm1H!#uOKzD zy-lgzF%4u{3q~&=9UMaMeI~_cRKDwQ5h{`9R|F3Q@auxrr zzNyc`VO10PP+Gdhg`AZ6i=eSrFie$>Uc>5RvYO3E(0A@InZyiyS8hM3(kL1yE_~wz z+$goyX-HBOR-?zlO6#EnBBWq^;f%>=hkHFeJzQuypu#CPmN23Blm0KH3;a$jaB{O; zz|-P>`!)&DN9XMB%+z`sQFw35al19!Xnk??1F;K=|1FrBmzX5F;K_vDYtZp=STefq zMiY8nY(ccr?v?ODhKAO48Hfa2zWYn|!hiF&`qLU^|qJ??p;FnXreFcvU{Mb@GGu>SXh6)iyS%FAk7or>y(0bn z6yRMfY5H(;Eu?=#`1R}8Jv-MjE+e{*SiDusVjL%jrPxJuLYYjuI}4vlUl+T2`Q}V_ zWC*F6l41Gm_1qWSGjN-A|W$xHH5=g2TRkPf?v({*Xkey zHK}aBA_iCi)$!-4Ke70&1R;$ft&o+0^Q2(g*^&$O+L(c1WW7C0?Y&mLO3=c{NTLE} zb?Xj`fS2>9o3r&{>q|lFt|A*5jGoeNf=!%HWs__l!HeDgO7hi%@Vy_&AI*N)D=v3zM_uXACsc_i@S1u!t_l>t(-QL@0o8&(Z-pC-!biC9c)X4y+>Py}MJ{pMm{h$&%rqZ60DD!w z=`So|rNTuOy1yQ0sXDAo7{vM>AI0{aQu%j79QWw`rPg3~cyBo*zU9*UpK6z@DUIVf zPHWO}q1;BXc??!2BC4cn-?j>mV;f#bZpLBvmNSUgRSyqMv6SYIWbgO(TpX5c!__Aa z_a8ZS%mnG`hourGq`&{`QQ^l*-0;XStxA0tmcz(6>h?ydO^vHbDPHOF!}RnWm-VGd zVM4iA<>ZTPY-dp-Q~e8 z-APu8sK3L~U5f20nICT2p(A`6QoYmJbLUqW&vkm^>d7EFNDxuYZ*mUB7?N z>{apVdq&*2_x|s}x-uCNBaXWMAPv8V-1-vDIs)d{s?rxP#+n|P(V572#}A%6X=ptZ zucR+Cs{Dxg4)flHNqD(p3bFQEh<6=h4O7MTg!fT7DZew1&1HX_%BXJ>hP$_Xj-sz+ z9;j?=Y~*rqbUe>(#0n`vJ;Am4A~X7y%)tOyO70EYMH^-r6s$VFb2IMW-rDG2UoMW= zYIv~!#5T8XkYE$LeulN|sQypV>4zr@(7!3XjKCKZtcIy)!^GHQ)kHWs(xge%9S$2~ zW0$P0t@~&OUV3_Zvg>ynXm&A(MVseaIWb(&&+U1J9Lze3?NlBe9i<$!f9G~`)rrgK z0hj(n$IvYWZVnEiv&@0$E5#1miDn%WDI0v0CTB}UIDyeT24Saz$w+R!bf!&>nsD2s zy4-P=@?uOYpF7Ksm!Nj^=+RoHG+crWzoB8il;G-M=Hthw&!6A&N6uvX0kAVI+Yn}@ zs`xd7AyA)8jugq(3|bgQ4kHKJb9HoR3D2!$_{vzPJ&t_~`wYbQM(An9!mVWMfvobP=@i{BlL?%i_whx-E3#qOdzbYyfCS=6L#nD=5 z&Kv$rPf`$vtZ%$NQ@!-lR0LB35QfFdB+Kuq%?fo%U}OAV1&Hv` zho49_8@cf6xO0a)LP*aP(-&xABN^~f&vUYK{LpZZ=V((q6s>D-|AsSe?q`Y5)R~CbD>3MWHXU!PtaCk2Q@preR(?pDB-@bhb zI+Q-Y2rk(j!AkkHa_7FZrRU4UPkq0yCKMGFZO*LD59hwd5f(fZu= zV{OcMzE;89+W9Fn$*S`7a{0`s{w;Y#6?>@MnS&#ZAef(e9Z?KfnaRcA*z36UH@VD9 zyBx5WQDI4m%IH7L<$?v&EqDF_|k)fpc71Dnz$=<(TwklN;@2) z(s&IG8xE-rZjEJn3o{Q4`Fu^4|Dbjf`!C$8+OI8$v~v}1@&3)np}1;f?sajoNKNqa zHAK-whE2E8x5yy(Jfu$*ok=pfMwx?IQ52`+mJ)f=hmmuxuKOR#pI3idRkiu{@B7Q; z$j4(64B6~;(b}e!NjtTvR@w=!SvP(fv#1aQhdGccrQ?e{QsT1ajr<%&4?@-_U(Q#w zhs}*6PfF#N4iuZ1$kb1Mmba!gFDNYBsPBI3s#0E77Vi7`7On0a;UI((g^0}&HiLGA z7p?6}!FmuKoVbTp`V51eMfStqkU~>1-ya>tp1ldFJb+5|o5LRDK%BUU(E~&Id0S>4 zCM&Eb#s#ib#)uxljtk&o3m7Cl5AZ5DX_}d+edmv&x~esQX+k>AZGz{De&PL=g@px@ zMXvTg>eUq}6h~ZIA0K64>p^tY$B(eRgL&y<2@V8sBJG^K8aHfr4PTo26Qh`U%(E_z zN3IRJuJ6UgpXMshBFk+R(rT?L9;ajMp?_c$18cfGdHxBsM9lFXqL+TQrhLDA%J}7 z%>ON6!60@cBP!)rR3c3Yx_B0l3wGL*B~9<#CLOipRuhYEyYxP}nhKf~fQ@;=vYD++ z(Zujq)-BYEa<*@1aK1=R7G%V;NJ`yJacV+L3e&yn9+Hb?+Tq400VHC*SM_q|nUwbV zY<)v(!Mf(!l{8x?46ePjv{aA5GVYN=^En z_f%8)AInVh05J4h8O6Q7qXJ1kIy(}M6^8@)AI4mEa8U13WDI%Du5|OslcN@}W5GlpbMFi2w zRB~^M(MVoR1y77FY0TsXw8^3qt0j*tBDx zC8$ps)W@*pIypLO(0$EbFD$)D41u_qy1HmM@hDn4uEuA+fiJ@M&ubg`%+@%cRzTdk zYU85$N1!|9SG(>eghU$@1)F@1f(rhUUPCNexpC3j#)yOYk^nmY{njW+YInrpHn538T8rO=-3fA+x>K9A=jViBULRgVERSPZcn5T>C92`6!MwWUn=Z2Lj;KcrV@J>8!VAW^X z`$Azijp`^~ANgt{vi9}Fc3*A8j<>v1)hYv$WOX1c%>O!$38v%#8X_hN4Elmi`*7AK z7@U1|@X@L1X$yMtuRn#h8-PBE6V)WX$G3W=!*x2GyZP7M+4I`9TUN3O z!x?(e=R__LpA{9EAq1r+L1jK9)ym@r{Ykw4Pq_~D@pH#A!*pIcENm+l z?oExeG?Dx>_jpkl%B49|6%CZ|&ua9f>bN{`D-b*E5X?LcP|uw&fgzmj<^w z7{$!4FttU=ucR~eKB2pcZ>PEL&OJj5FexKmX&=t>%9W1&$Kx~H@VBkveA~8DQ>|WD z$qZKqJeBncJ%9dRCCsi@(A2A!HB~-?bt|U({(tVYR##Qx!n3G8n63Y+Y}omVuDwt<0QK2SDrxcguE^+tj*a`f|cMUY3bh(3u!B&YfTbRHI}t(|>7^(@F~zTp1DjX{2X*_{p>eNPE=PkTt;4DK-h4JHPS zZ(V4JJ-wHS|MasXcA#OVnL0a6^Y~6rxX>v(2## zWI~^_ZW%YO=xvYZHp5ah?LQ^?6g72PXNNh;qbsD8@w` zcL*|{7e-P0UU5P9SZKFEcM!*cL@3KPz`DsY~$I)ozZ z8LxN6Uyl@zBxMQDU@}hI2Q@!8P7%(AVF@F-HS>)EAs9tS)3==>)id3<(_#x;=mQ>l za&hqFs3sV_BYQ#e1P;ui;PvarHc+Y<37_gIx>!&B;{DnkYMP((89$HgL-_8ri)C?| zNdlrfBr7L(FZ~d-fBz?3jcH4YciqT zxLAk&i7-KsRL!GL)@vOctfI8>KTES>V63$*2h>`WpYKk5^)jdOWmy?71Dj|yCC5*a z!}7uf0tDm9!s$NVeLT0$_V@Mm!38U|O^G5qW{?v3?kkb#T&gJYae2>wM!K$D5RX3n zwC?)%R+auud7vv6g1I>S-=F?6Q0DcI3F&7L@e9?C_jSEubZdmHEiJ7pUPLE6 zz|(VduZ=(b`F1q@ho6NoB}UUA)fK`wffV2$7sCd@W@c(Z|58u*TuF*f9j?{~EiU*>7-^Xj-{oBMz*3`0IP zI_$~Wbo7Z%{TX9Ikdu{_oqGKEamnR&;S0=ur7+gppZ9QBsz5SBKF*f)w$YLQc^uo5 z4|FrFiOeW6kl~sDaqsT#e(Mjjv)xA11>^eaTaIamrh!O*+0m39R#Kuw2kFXryBA$4Ob%|2%GWVJIUS23x8wy}qS z#g(vcKJB1?T|0a<&Gt#^)UVD?Ix!kj>yZ7gm9V*r@!;D!i;*UG8LNHY-kj}WqmpKe ziSXI*zQE;x-Ge~ySgyIfI-F#+o>Txh)ywW6RB=9~#w*BNqky;O-18Lk%1-`YHKR#P zI!TPR?Iup`3Tizwhbw83bh2U(wiM zC6T_+#nvV&en8%AJJNZ*%CD#d)o)BBW@ct$2)DPPGx}{4r3C$}Wf$Y;f=`2Y1dxH( zKEYy5L*ksW=H$Qa;Ws-`wp}`o-CX^-IB(P2?&^^8E7z{+=W2&dVL~NnUYaR#|ETO# z8^>(=!M~k7qM~AeovnZM*7}RSxA__*k|8vsa5Y|BX+0z_tEsE8^T*bCHZA^B)j=5d z$J4vxwxU8H9XCnnu~27-hhT0eHS(X7(WwB!{uu_iw6Qc9r#3Zc1WCQ+#l?7hH9J9Y zT=03S2ieYJPwzRNC-mgzsi~>rONaML=Z88v3T*iEzCC@_(>FX)dM<$OJ9-E?s-c~ zOLB(0CT_oh9E*0K%wc2Nt#NHi#a-z4Zgr}wiDf|Si^mS4Yrd~d4I@gd^p{Ie9g1bU zvuz|8b1#MAZnTfafCT)9-M-#WIdG~{1o$hnZJxEQSE>5l zbzxW=n?JLKw#9UaR5Y&i?BU7N))ZMJE+o!6$Kq;>)_?Ujbb}dfa zGI6m1LQ7oG2SUqdb`KJ<{wp_uid>VVIHYS9Q)iVxzYfLCP_F7KcBF6hBX8 z#W_OFegN2yjXDE*7dk|9>6tZeh1I%ZoB2MCn=>nB2hOk}CNeKe&k{pw+KfaKTp5ve z?F|n}TnoUDiubWE+kGsAd5nG-$De>F2YP-%^LVN28_KpFV)>4L%w5LZl6x=q(DD2G zj!tiHkYcP_?$C`}yP*91Rm8!BQ7k%JJ4_w<{uroL9VC7iW`B>02~Xt|i$)M^{G_v` z8q6kqFgXBqbR*l0Rkq+G5BiBzzzGcbqk)BdJ5+}X~ z0r0(3&i+-E?(jdk1lL`<=L$;qyeTdHqjKz64vovy)tA{Tb?)isZ_43@t0<6F6rx@J zI8UA#bm8M_n&&`jdZGKVMZRD2@Hpu0=?SdxHN04KlCR)2piS+7{Uoir3nCf7{a?n2 zN-XTHq2wRKe*neEGz7X2i23N)1w9%kENa3p^y{c-rxdi~vX4U1HPAD0UXv+20TBLj8a z>P-&cqTZW;`p1L-Yy)#X{0#4L zF|ib3U%`7F-%kaTjAYYpvDb-vJnM1@!I#nx0DllQHa13a4*2KKbqOlW9zsa6sPYo) z8B1_gdk_dkFB>}UWHqdKXVzC*!Cj|;{t zIWY`|%5Tg(`l|YzQbXke3GW28>cid$(^2OF0@vbd;VMs{+^-qD>rED(I=E#b&cl`6EpG_WSOJ*9?RrGqQ46b%38hR zwt8hPIG1L=aS7vVud0CYypD0oKb{)nQ{KQin7NmRJnoh_2W{B_8-hs^WPaZwY1xvAnK zoH2P7enIJb+?|VUq6|;tl|Ue)B$2`?pSCWyWmW87N_FLNxvZiW6IXNkewR}#pZU-~ zg}>$3{>Uy({n>+ZzBMRKo8{Lwsp0lDNg2sv9aw_*%;_5(-yfG}XYwjP_13gd@Nlmk zP<3^VUo%w`o=L~G0b3x~PNS$1+J6Sgp-H0aIO0vL`gcM&$PLY;e!hakL-!OCG$d#i zjgiBD!`tFMs|ZSQBku#}hf*$o&+vVtMCX8gcsGqu&HH*QhxF@Zdv5)Bpy)mhOIwz@ znG5=czuhq`(d-XOkA=^?Z38!8h|=GUOz$-+g);dGk%c^;N7SHs{5Q7tY}9h_J%q7tAjJ3aUp1 z);#&&KvR8dX+edsHbG!3?|2-$*Y%43sd$|IuqvSSL6|V!!n1gNN5@QtKOU0p{M4js zhH0ipCiyFcQ`1*~E$S}w?EOL9IP=0hJ9r=NeNy3=2KCd+&QdzHTCWO9+wL&wN1oFu zA89v?nH6TEk5L^-jv_i_UT@Q5z=+X&m|L=M+w;|i#fygAWOR?$lUIL6Sk-5sU!i7o zC~C`*69-}(gcuSi7OnHOT|uo)O)P&2YG?zvD(c*0_`Y-URI4UHBDy#~)G++g?9n@D z?S#s1f*8PuQs)I&YJrn7Kl=LOr>3sa9n0tG{wN(cavoxT7V_xIGoKRObJuoqn=8eD zGnC0^2Zp_rp!a&+!NH*pZMsZ9Rw61xp%5E?_nFb@sO%m}w^utf` z^Yd-Fjd;eh{LFVixnQPOJiPf+h-z~su0}fU9mCd-r0E7a#m^@sl}E;f7owH=8+@~Z zqvAgMBf|ecBYwuFvq@f2O$Y#EPqmf3{oOwE)vd1iuQp8L)=ZUA5`y=xRo%^F0P5t+ z-pg4(F5-oXQd_88UWLy0Gam6}19D1PM_<-U zOggTLsa*_mtcB{hxR~KNW{i1LP8eb+n`R~U)@Bha}1W{xs z$RG(b2Ma9ZEej^F7OV4N7FuQ-Vk$y%bZp60z4R`8xa{(OH+!GKT5Qi+02tB{d|v*9 zOaw6uivWjue*0`kZ9MCY7UVQG%twTP+a&F=ISCq@*1AM@ZsNot;=>B?C0$@Oe16jFc0d$9F1#!t?SPbK{>za6^n6Z3X~6-oE=I=J^hX6ux- z?4R`x1GeQga*WRR*;?oqQQK9X7dvm=SbFW|sFcq9U5lcD3!?d4gcuqHK-URxii>w* zz~v-!UW}#-St*<|kP6#4=Ghai5I%qJLDt z;k9<2!Oh+~&c^!W<=3=3Y=koRZx8V*jhkZ=&l1C*00rzBMb9=jGk*N9M<;cO@x5F6 zCm9a7y7Ox|zw6YOX_#8&biwCX@OA&Qj_qi4m+aYP(pi$VPpI_y zP`|0&UJvW+IZUUX&ozylM$US7mkj2?K7NA7pOVWrv&|X$>no?Au9l{f)#x}@Epo(v z>bEi`l!kBxAtF1%x&?`=q zr}pMqNq*|?57@3ZO`XNg5$){}+l$UyV=A?KD#k9hYd>T=l+Nh4!+VDqq8|E zU_jE*=9as^Z2s>4#xW$tU~|%b>xAL&Wz?86bpYU@blmq_w0npu;Pn`%J-qacJ2>qz(Ca84L%t_FyGx)DBzM+<2Q9HiHYq;6Sr+Vt62^xKP$usMz+3 zOkqJjl$BjFc%^R;3;tAyAR(foKz;60DrGGS|YG-@n z-^7n+5$<>)F7q$0^^2T)LT?#?^JUVXLJaY~+`sR(!I3Jz;(qzlCNgzT5h~rX;Vy&Q z{S$-rF%ch}Ys2?rvJ$G?oUH!wnGgHB_={LtBt@(%)=k!D+c0_&!6UK04Ak3ihvI!Y z;h}wh14pY*9LqcvJ~w^emQ1|YF}#9{;fBY_%z;KGfcZY*_Wk)#dTHm2RIADR0xCJ- zje9SDDAyH(uCxi9QkE+3IuKcwEB1NgAWjGJ??wf{Dv1=6 z{Ib2S+X-8R3)aNk{Lb~TzaC|qGw<8AUwQY}?8H|csx}s7`Cz*$R+YXQjvB3!$qu)l zP>HGsiIxfxax~^X4%^F&3g`b;?sT}l4#%qwc-EZ8tcU_k!4LTcAX4(&QPc?>5T4UOM# zM=g&8|5CSJ4I3sNR7t zO=SYS30{DZ=n&vWDur-~!*)*%awTN<>NAMlW`6}%k!R9}9k8zP&5gbuL#j8ybE>jB zI;486F{7xn$Ix=*d8!G+)B5J0@o!=$l348Y84l&ggJ5WpZ*`pEfsWH(6{SmiUCoM0 z0lXdt7JQGGIJ`=$BX&QMp%bx9!4UZOKib?cJ~bAUjoL;3ftsD48Vu^_?BvVb8XAHP zF=T%f&%WSu!%2R7SX7yl0T4>!+$?&X!KXk=Z;s}UixLxlo-DB zEErL2R9r(HgGN#bt}F-`k1FQjQ-;Sf|Cnt;cFs;1O|P3c&L^R=fk80*DHHrKto1|A<>uqD&Z2TSKY5XY^6VnzS_a*N6&9J z`y;%OF%dvnGt)f;#Y2}NQZ?Zaa?rVEvldfzCH?{OpIwy)lkTx|9@_6j3~&s>+j^jD zplM2$-2qFl8@7;=`vthGtzXh{F8I;c;6saz(|fl?$pL?3xo<3jG+p{JYW_wB(k0%Q6l0-wd#l&S(15>on0iT$l%?SOt zk8nF^>&C9@?}5Rak8ZZ6rlv+VHauB=Ny*CxfPKHU|1c_yZCJ&wa| zqIbvZ7VnGrY|NHNXoQ;JdT}6z7mzy-?n7X;MgHW5uTRd>KZdotFenBahPI&of~XF) z&wYwEuRd8-3%z&havYDoG%}3|eUfsN83x0EZX6y_F`A;%eF#t^6i?VShAup)F_gzi z^Dlq+c$5juvu&vLpcC*cE__pfmiG%6$Y!^~{9(=uKG}l@(nM=(>DMA^`+j61!&64HI0SPe zy8A-XVl?qeV_)|tegPa`%3N%-GvAC(zP}214Ay@n?n|{&Y*ak}G0db|<34G;O0O+V{IG)ppqbA-q&k*z6aBz-UqQKiZfMTmkp6Ub);SdBNndmZ zR|wT^(coa$=SKob;1bn9BK|nkhqUinnx{;JaR?4N`7N+`^4BkeZ9wTuswPb|I9ks3 zRy6kPtC%G?Bjj97=4jOT7^uYw`33lCa&Zurdw0N1=zzsVAx!8H#fa_A1_VNCH=F#n zsZu&Xg#!eG$snNTimL#4kSAweac>yIeqvlf zqg-5Qea3^zXI}^g9Ns?$oo?A-Z(FqhbI||Cd9B6PB|fqq-Fl!2ypo~-j(M659jN$c+yjuF8N}F|-csX6zojeCli&H7i~qN> z>c7vS>=L@*2IztxhOB6PZuj<(-05{sWhi12wbv)`CNg&4g!|wLH|$h_nAfy+blf+VTO1J{rc6 z8CtvTK1ClKEQso0G*=Eic?U=yf+qoe2tyF*yz0d8ZQwGiK^Tc6rQ;a%IKV%|B_4w=Zo^%4pNgjm(p?{UaH7uPQ&~|FGclw|4$W0DxJ4p0 zp>vNy71N$B)aaqi66v<%m9S%)k9guiavp(g3Fi0)Kym3^YF@9f*k;(}a zPnuT#z6y(Y(iZ{$m{lV`1_Au5cjyNT1M2MLK0>wk*FkMhHW_4(== zT0iHPh8*?^v_e`08sy6uU2db$!xrfK#lbUojd>9u2b8kWN3p|@E<6EQH#*A?VK4vi z!DZy@gDxsuYO>sQbjnh#Pp)qD!kl9WcHg2Pi^Xy52E|tgIm|!7w2>iNx>jEOC%GIB^xD4;_OO`IUxPQFR3o4Mdadgb%yE=+ZVe6o@SIpyfZd z)f6WsMi{!Gs~Wv0IMQ73X(lq|?%#N`uD8foys&z;Pb`{G|3AnOleq``p!SX3+o4sk zmWd^}?lpQaoDVtiKl1>_mH9*GSGU6j1qB~@2;7Kp5r7yVn}*QiK#T(_kpA}lD|Xi5 zca83RtOr_p%icqfN7b`qQ)(5EKjSbWSfH$ zg)cpq0>QA(--f2Jx-?B2wzLRm8uC^LB@xZIhQEcX{LG_;zxY2gyX0hKL@Nib4<|vPL9O-$1Elv7f7fVNvZOfD5BDTG8xGI8RWZ zfW4$3q0OkIkh1%v4%59@{Am*mq4m(ALpx_}Y~Z{>i1)6(9S#xY-^A1$^2L|=fg{V^ zF6~*+*v7?Qjl(e~1~E7tgPbjPx(^1SZB_!k{VoP<`0%B*kR~(`?4%-s8aEFj1P8fl ziaEBm@VD}?5FmgP@3w^ZF;yskoEg?51sFY3UoWn!G^N5Tl{)$l)MK z7}qAuC(wz$`&&fs@=SUmJ|MP|4gxGDNc>1+taO}pQ?oY^juU?h`HD&bcky1%^1ahv z?kyq@WMP8Nao|g#jp1^=8avECsC5CH!&AKc}WP)ii!SizzxABn2VeThB0Wo z#~6nvORe?M@}0xUoOuy10&WQ@=o2XxNCGuk8<9cUsaJd7od4uxR~x=nZ`INOdd=To zK{{5AzB4H=-K?|rJTGCXqb7hM@HBW@V1FSDj^T%phC(CQL`H4u&qI)zG#s22xu4t2-hxquKDt zN39zV%viaEj>CQs5}pl{Kl|p~T~qmrk!#2foy(O4mPY?HZJ9Q_K=$^Th+(u$l$jf1!OnIW=Ps zLw%0Q0oW6Os-x-q9Iywd?wt(0^3Q1kg%+-$n#_}sZ61QLw-WI$&A=Eq-?s;nP35m9 z=4bgO%(MP@+CU@vLoA26nsVCY>C>keKp8dfz*r38Cw0YZU2wi!DD7meFcc#@)O85B zR#BX&lh!P1!T4Xh^FDWLW*UTk-|IW#*2yT`i|gim#K#OsxTUSFN`6hvwn(#ss`n{F+8l$E7n5lB@VbC==spOc$|s&|xq@G0 z)AVo_jtP{a5?vU|t_8bT8*uNj6=YA7>X)ox{&?YbWBDIL9eih7_NmVJ~OH5$XXoE(?tK#BX z7qCemg1ygBE%E4ss5%Xl4Rt{Ka1I02#Ls`ad0!X|BgH8LW?0W8joB%oLl05O>uIVL zAWKL+&Om2Vt$z7H7GGnviGXD5W@OahiO4RjZyM9p8|G_qOAKRJ&1OoaHiuNte)Zgm z_%-}luk5tHJMyvr;hSbE~?nvQ`#r9@NU_Rza%GS7)YF%mlH&;Q->8@?@tPR=lJf;*uOVB~S45l}4 zXk}8?0zsXb-=C=YP9e>tbg%0QCh%xzyA$GxtlaK*W{GIq>Bgv1=@yga*8J>=P0hI> zaL(`D-x&_@0^PLluL(PYfh%&hP||J0a=OZrM7_uEpOjy+51=1)|RE zfO2*kWGyt4l5`i2$Yz^AgQ>z0ilFGErlkpW;oak-w9VKb7H<`5clIZ||Qfh&y2pK{Gvl@S9@P?v>EGqhy0)#Y=mTYt$L zzwYrKg2P_@^~LF!D(my-v%{)I3R3HU(n9^k0pE-qO0V(2{L^A*r^B87{QPJJ&LatQ zKFl~*P>|NW5Gm0viS1SL24hfdLb&n{3ouGsr6;f8-v{B3NnF$e1f$}1v_aIL-4^K(l;Uw?sGoB8h{xXyP>}2T|^@hJPsQ? z_>)}PmfVgPjpDGPHskaSZ7(eLjJvzL#yzw}_I<87 z70aED&YN%!G!ZPIBJYk0tn?q2Lt>K{7TYSKwsZp2Z;Wnbfy%Yyt%Xp2Qui}V-{d0_TJ+R=ZU`2|2r>C8nNBhq8lhmI3>t7UX@+GI4SkW zY|Po7@#GRKUkcQS>id71x6>jPk?(W2q%LIB`3_FnUD{ZgO{1n`c9C@9YbjpGUb#Yu zX5<=U6IAt4@2C;VhzVu)e|x&FD`$dw0AJdp))lUB+%mfBuhq&yoabOyCukQQA;3%S z{Os&p`Cv6wj8^RX!~AJ!X%iq^_d0}#Da@y4vF654uIEsn9Wzup`^-h=hEU{Vutetw?MkSpW0X$2=_RS7#15M=!aL^b;7Q;-V$WTEu zq_?B9Fn$K_pJl5gjbZp)9b)!1vF&)m{Y^hyF?$~3i ztxRsrN6_p0*0cSZT;c9`c7Pr!P9)8#MmeuXWj%M3F7}lL3x3nds(~$1uVlPjIq3 ztQmavjNL~g3n@;~ZVK|16XJbv-avr2e0`bi*WL+d0R7qq>-H#w)*t1po2>flaZK$-UiIq|4U0i{muty}7ekJ^ z2P(vp*X^qGYzB+Nm*qgI{rS`CQoP#JqN17Sez3AzAXV;-J~uj`ix~WPdfOnJ^!c>X z1ZJYjL@!~-Fve$w4g1$kY2*DpctvH(zW|ZCN>c_g%{~5XK~-ni(;~7r10>UMIwxQL za(0sx{ox3d%8yJoRVMsG@&2<^!bGE((-^79|x$7#_$G+H?@ zRr02_P}-xvGt(qLnU`hdemL=+`?r=n>3whEvux);yR1i+=zW-Q`!&M7ol2kZ=&vS; zUMd9uWH$^jw*DOXXHO|s3hGn9GAJA=rEgq0Cz2X8Xl>TIj7w6iskWt|bNGfX*&SFi zm8Uql|CTJ!j@Q5nJByy?dt(dUS|LOmPHeH)jb^JG8+w~x@9_%BhjV=o*s17W74^~& zSRxVKAn&@O@@|`I!VYl$%PrGOL#A`4qghc(jWN#?Pn=w_Y)?z)Hj`yYp*ByZj9~VR zJg2w-B?{lF5dJ?wIg56H8abY4U<)sa+)SBLg+0gxq~)VJd1m>ZaRV%mp>@Z zw-ACWcyg<~FE}+Zcif*cdul_!S8tPz%kBpAh?TG22g@ zl-kq9t5G!cOeOb1H)$9=_WC5fy}@ja*<02BJHdTfXXEc6a_2t3(nUik#Pn1XF@1L% zgvQfHswY2m(g~SAKadyI{~}1Lo{I3??10}1=qHh{stH?*bUd^5Y=(F?x&v%m&WAXl&rUfO4_~_(rmUvwUj(d#aXR{!rGb+g|e2~ z1Utsn6<)pOi*+$h5za!uS_J4H-#^LL$RlYh`igQOkZBtvIBv9+*dcIwMC-%Ls3r}g z{{;sztJ!V)K7gL$MA%a1+`f>(7scf;{XfN}YrCBLVF!j_tYIL>tlij^23igY$CsWB zBH2j2oG-)JQ4iRn7{-j@?bQK7#KMv?&o_mI zpFY&ogaE-NCKcXuCQS?gNSS&Ca~`bI05ht_wJ6!}-2&}waOe+rlpbx$4_%M( zDX|b){vgp1zQ}rAic=1u6Iws(1rS3cU@o+4v0W!(@MzaLKQWv##yTLQ555Ni?c?=M zzVNHb%L%@BdpUSvd*|ALlr{MfYT+Y9nW>gq^IJmb_Fx3mFe>x(|84V|!tp^Qqmy$N zCx7NQ!8V^1M#f9JM3!eXZK2srP=q9^7TPv3>zt(f%=X7@f+b?#J` zQRfpyG<^~CQ6=gho_6)8!B;9&9%6jnJ)IbA#Y%-^X{N@P&SlJODC16*_lIv7R0l6t zdc)%n^{+OnsBfq}P-+BgomHIHMl7+dHKXfHhXb77nR0o_7O|MwZ@9C)MLz=&ClB@J z)g#xC)bX8zuFOe=>^EH4^rkG!e}-3MihCe|%|2CeNhH#qxdz3GM#ETgfKB<)cNBko zKqa`-Khq-UzuzmO`F=l4Y%;R4QvJNM^9~$`dIwWmGVqlO)QZX!rdnsPi4VSs5efhJ z3XB&T`Kcetb$c|nnJ2T(H1dng3FI`I!m;n0fh4e_UBTO2uBM4tE_D8^76Ufctm`O* z(gp}+0V1(3w^!g7-}n+6{vy`r!iRs1Qs}D6A#bNZfBjb>Ks z{{R2~=Q(6&CX`*72~8s-qas;JMn=(ksgRTvN0F#d2xUZsB1%ZvGAl_!k`Yq8?49+y zJ$t=B-^=gc#yQXPd_JC!$9>#x*Sq8ST(x6cWT*dc;ku(gIQYrSnA{bP8$G3eukp(P zU>Bv~m!IzuuR@BK(_c=~cV5p5uwwFO=ks~o-e(oOG-=c-Mcq?FkWSvj;IzpB4n|an{KRA8%=w^?dFW8!CMx- zdDC^~qp?z#7Jq47BON=_Z!tXKOn*G^i=q-lM$Mo<4#4Rf`ekGHpM<~FbaR_zgsbNW z)kEHU$t2_Z=i2xdSxT*;*ZjE-1cS~^zo*XOtT>yIk@3|p_1`OzA5NY#?Wq}5PZkgL z(dH;O7E2G{TsX}5`16^w-}1APA3r`>U*=CIPq>&bcYPQVsvXpnd2aovcvp89AV%^i zUMy?R-M`TA)zq7_^E39Kl1|Sri7T;njwNsPH3xsk5GleLj7OG*!WDi|qG(i_^M6S} z$qtw9vg|mfC96TgE$2XHUrX4>Bev zYzcLsXzG}xG$yHxC3ugN!vYby9*4^fNPBz)%le5>COU&A)kZ4$XzPo9SJr(aL*RmF zV1cGd$9cBE0jbX4!MKG*ot{y&Eo2gjsIqEL??Ly+KrI~MjLb$IZDbaSgjae=2L4!wT#y1S= z-5GOAV}pNif2t`<{4D$K6NnRzz=sgUhi5$39uatSRFlVwWvov`roC{xvs?^WTX95f z#TpJCbe)>5-W*R5@%F%q(-uL6`2u+t198!I^ileo?3ee5pq2uY+n;qbXUcG_q4|=@ zo$BFEE2nP-vl5l-XsLwn^V6S_HAqE9UWBbL1plMO1tx1;o#eTOcb!7S7{D2C&Un4k ze>6eGeb5D96a|4K6@{}rGf9_4W$7}coc(iJ4z7J;=X~bO{3Udk4?fhBe4J9tS1vtO$Z6hPI%>UEuLuvTRp7^j45c&?YwbPO+8OdL;camCrI_7{ zq9qL)iAO7x&kTRlP=b=uj`HinHTCqlAI{Dc&|wY-CHNMQ2}pjDc91$q4Q)$5FZ4ZG zy!+Wp`8m%gv2m|rI_x&LYef8fn&Xt+o)Ke(jtK|ZIZgDH%^6JZd?>A>h+HJmEd_wmyGe37BHx0Irb!)dA^`N6U^E*7u zJNZR~w@NMOXlf#h|D}ofV!}5U*49KbbMww!9%J2$rH^vIW;)1gh!5VqF`w7zuTWiU zCbQ|z0VXPeH}5%WgB)L)n~$pEJ({ElKJbwf6hB_!^IkcY#n*6W^~S87CCaD_4DoF_ z%0x6-4Y9Z%VUu0yY!APOeYn^_Vv?7<$Z}ldc3k9AmC+qDYJOr1RKJ(cA`!@@#PQlX z(Cw5=yBeBSysvX@R}p=u8sYmI>#7Uu>cphiA7*%xd)stP`XD$rQHW(LIR(+42J)^;D8i(6%K}#R@Y%m&2e^IP_;reo?S4WT~mCa z<@~H6@7cdA{C}d|YQjRO`ellMvPt>(Lj;6KTr=5IZn#&dc3Vepw!F{^E%L-l=uBs& zw{vA1x}+8+7ti0)H{|Wi-s(c8z{sSkko+&O(IzQV3>Oaj*XC``u|FZoJL0WsdB}@! zD1Z#;Bv5Xe6d}%v`qIlY+yiK}?24%KiHf3`4dTk~zO66Sj?R&Ksb99}>qnY|NN0r* zVYfOvdsSJV2(K0Kyz7{-C#BMv=-`%FTJG$bvK2!2xLZY#03)Eb*Cs8>zh`?-Gw^30 z8OH?r4A(Sdvu!6FW4eM_HfQF@>|R_B`|x1b$^t%^VU4Dprunka{bRD(+%6`lRicz& zR!?3B7QOZ}dl^bZAUkok(p?RKa`>6z){IRP;&k8g=o+|{gtam@nws|Mrtfu ziq;)J&DzIMrTNa?+ScIlthfE;&0Zl~RYmJAYyqk$20391FhvzUY7PFlWQWgXbE?V! zCzXkn`0(Ka4-TQxdh0v>+48)GMMG#F!ywS-rb^jPiYH5OIF>$d3cKNTKd1l5UXzzy zYkQ0ZJf?7aYN#;`-3CPM$=pV(H)CV>qL$2hgIg~;IAhhK~a7| zJ=17I6-mb%8etEQ6321qh)wDM_j(&E=9mvBVdXH@%Ta*Q;eDdU%1+{l#L7YYK!Ufd z_}DGi&V|K)N{cE_FfqgqUSKQH|CRxh8K=&Ng` zd&O4fs=38eDnOyf%v^Xx_q+PQK$e9XCH`#aI6Qd)*VnRu(aE!ztO4DX@yF_^Ri#i2zR`74owr3%Jap%? z96!<@g|1WdnHw9Wu%t9&ZrX63JnkGIR0$(r#?TEg~cK%+i zvU+{U2CnIL9D`ThtUbaX@CTA?<_$U1Npo{^TlQ|9hib0Bz!VcE71hJl+lbEV%wlzPoRgU3op0il@4G2`Pk%EG5GX)p_09QGVYa!`IUv z=Y3$wsAx8)g-T=NdBR8|gM7%!j)X!O|FPck>`KefU;2UeQXx^+N{LI%+<<$2^am0fB67v@~CK&sfwiTlM>* z7Xz+*4X(VZNYk<3ZkN1=%2WD|0%xG;l(VKOtZ`#+Z3$zOHNiPKvqWQid&sx*Z-$ph z$LA5Em9FvFv9O{*H4{FLZF{{&C;4VRQZ4dfgIq6Rl(1M(H2MVs>A=U+MHe7SIGIFo zc<;MJquAq}-$xgtj3SdP5h>X<6z2vxiUeK8kmW!ew^m=apY!RnXN&ruJbm_$oV>hq zSSckvM@P=|~c?<|5+GhGta&DR96`Z4u0I4ORR&by0Veu^)vqga|KQi7O@$Ovj zl!a!P%$%?VcH3l9T>l!}k6&%yjGTsFRYe1Gb^Dz{wV+GL7)c+wT)OaGWF1_NrF5^> z)NV2)G^I~yWoxoGG@o!jOzaGG_%4=ld8H}!fHU5PkE7X8dx!e%^Bg^~^T9MB3Ur^i zo`L`Yi`kiMq;*S_vftJG*?B*`U$feMhKo564~Se^F-Yxnv5y4qQoNq#uuOjI8tMLX zA2n8XtIs?S6B@fs^40Rz!q4c@g_LL8@!D`P5k>_rO#vccQJy#u84h7_KiW`>TbWPKkjQ#k2H%zhFR2P|W z@0j$weDPhzxyM6ZPYtt_SvWl^68_3i_8q10x&BJj+4dthOoRpzjxWZ={&>~P$3G^h z8S7tJ)E4>EI821HF?PFr`gG+vJF&Umack>y?(h&^9-5gMK#VzYv$ofF)Ugr?9k}Ig zWT`bDwyk&kZdcu&{RxqM_KUUKgP@z>o9uDaP|rvkv3hvf$7)3bCv=zUP-d<$tej_; zXI~URmPiTieRbug<3u44CB3AD_6GW;^3+#?#EY++U$*SkuXAT`pI5;td|UB##EgXi=<=eT{@2XNKe?RAqhv#(9SwL~}?A-M=`xNDc_XSZY%B#5&y^th>k9I{DAOwmaM$Hrt1hms2HK{w%q{-&_~jB%T?y>S-AMEPF%31YS`&#qqT*2>)Ife(=p^1Z^IXNKZmfS^Y`)9jOQo6zd#hY3fsv61`gpk zAHy2gvyY^HyoGo~#i@2iuHt_%zd7)g24QsTlc5H3?sfVQ6rnTqxFrfX4J+ya7xDH! zhpdieo$LyrV4EA^{tWGva=!Tih5aS<72 zPnPI=NSN9_A@}ASNZ(uO_#=E0Tkcz53;uO5OL0<$;%t!ixyv3GPlt;S=Q|6HN^*g+ z55K_1L~Cr4Aw!I8{5i#sA4?Qmn6&jCJ;#3tz5lm?m1|ydRuGy1C6G+h3#hz0fP8Vd zZdPgFuA^uo3)iRe9IRe|IL*Q>AT)9Ic9%aLtz?QP#}!s9E|rMs>@k?k5lC&qNxNN&9#W8 zu2$A-h?j$=j@Qor`4( z75F%Y&DS1Q1oz$M(w9cIV|?h4+XmX#24x5>)3xJ%9u%x0!Z)t?zQGy6LFH!>)mzqe z6=Ws0gou+;%wOQ~+(@p4qiV$X*cQvx-S5E>Wuv&*#T$Q;KCw~ZNsabh=MWN7&VYI)Vcki2Tuv8*YwoGDo-*&x#hj|Zd z=_^~&GYYDl{iPHdIIA9-e8XP=n!HUWYdlAbR|jjZCP*P@a$er_5BvvT;yknDyP+|) z>ql(`)s?iSavp|zxh>SFCi zH~lrb4g5enuOl8C#7>;WVtH%KHD?D_YVu;zBkfK0+HP*!Ubc*Nx+UpQ;VY}^8T$L7 z`ej3)d8~!VH@~J#=ez&t?!g8rJE9Dc;S?9K3-Uz8`F+i~?wNDmuac6ES>TFFH`bLJ zk28{wJ^jr^Q?6G}alh~4e#;O~Rn6$FY!#D*_4Z3&feMo7SaaOgoMJj#B5g_8|6Pab zf^AsvuAx={00<=Q>n{9z zv4e#$3hGOn*xA|H9yu~=#?3m}WPAjO-`DC*yY`;WT0)zGw3U1({)oha{w#mY;f3C_o^(k5RN}6GOz4o4TYXn_3GI5U|XXecm4kSGAfTZ~Q8DOuD zGIC94D%Am1+C+DPeAC?z+}mskZ~NH*QN2J>h|SW|al_`y$!EY?X8f?2BcD?CD=|H2 z|M5Pu_u3M=hpB)6-eWSz#d zYr$SbYUH+R@*}OLZrUwUiL*Cu2ft>MB{GJ@SB_36GT0MG>AFvKdP@d$m+doaM{c!W zIwGR+66l8wM?tgoJD8}hHZP0>v`%#%4CwTYeMjG=>kHs4jZ@a5we_<iKp5#6T`*3GN~!gD(FSs`)NT%<>xlgKF1OpWjtH>A8Ca}lv3yF@mt>f z3(LsCl4re2`BqLJt2jVQlNpE$HSQ0#n_i`pWGB06wx-z zOlYeF-w9@ym9R~J2ZbYr;5+Iu&%rr)QUYHr(5epp79hkp zbxnMAAKq7Xd%S8a4>45)r9*_?WUblggEe-Ls^l(hCjhr{o#m!Iu?fs$Y{LLNe5g zW>H6y3K1ka{8pBfe#SVcZ%4|P*qgUZTT93W-UzX4v3g*tpJh|xGp`JgdiNfW<`Zp> z_g;q(_9ShTP--A$rLxAsA*%L@)%-%bCU+Mf6vE0m55V01k}c4IN>|md!j^VT?yeiJ z{}w?8QHcD8iN#Au)RvH!mLdQvAR?<=fwt$R5oE9rJqU}Y zz5eGM9noS%c*x5$nwU(A?brLWCKIMidE|#&0boj*#hQWIrq4mc@#fXFe~lEqO*B0CjpWkEGvJ z8VGp5qb-lf0Zed1+QA1iHbi26ix!i=!mivjeiMrR@oq@UVBP-0cP8r)VArR!wJ%yI zelxJazflS;ZdnIyf1ma-N@WS7PGAipNG62<(}~heCF0TxRm(|oyF*~zmq(8-;s9ohY?fH1yvI8pB^4? zPso%cbtT{2QgLPW`z#NU$ZU7nRG*^mBRM$Yp%i>2kzs7v@VH}gWymK%_g3$b7RL`2 z2eg`tUFnFVynFf?e5hyCIZ6cdfp2Fal^R3dGnwY9yhvmH!W=mZ5;h8+)9k6Cp`jqU z)2r3!R<(ZDS@nFRAuO=4?D4aBc@O6Frvd6TZerc~^`*>2HUEbyCX<4(B#m%-8Y%)S z*sNF8P(4KBMr4ULsSpbZxH-(|E8@;!Q-vdw*WKMcY{&NPQ(w`ES*`ak-z7iS;e*Z7 zM{ivD=Fp=Qy6Ndkx~wbWybR+Xn=|v4acVF8)RT)TDx>?HU@i=PPX-= zFU(mgHDES@k!BoyJYb)VK3+SvNK*@JbGwK#@9Z+kJ32ONIFyL}cm3Q^q03;Z)3|f_ zwR|=>+$M^Qo`r?GmE|n(<)iH{P8^VxGl^ z>N3Zz0v(pi@wFElg2N+MHqz|G3xv9G`)uG58(e$rxj)=4 zRCs27?j~}x@@%E6Ou~OP)_0BEL^a~dvH6L9jW{*$OACUc0o^*9_?jOV-mKPLI3^0| zttq6pazto1PUy-F^3~_Shm`yo2c*pKa|M&Xp_>~QRg8XXEF1Q|5fE;a2R6=%a0@;0 ze$OIyH*j%@tnvc+XU8PsG!WM_3}<1pTfn&>a=F^~R0Qrbc(8NWoQU4U7!VMzqBF(b zUzPt9o1iYXr(s0}lgr3YUq|Jc%cLGviQkLnj|jn5&~o+ERnFqi)=!tt#ut-?%pJ&t zFQd;v&~Ej%ZQ}JO%^H&d8w05J;DYBslsk#h9XV`e-W66Igncmgr*C$*B%}QNkfByW zpxN$VXDc+g1xZW+IUppDHHtPwVM8JG)3=`$YO9FL+qZA`IXUz1*M*AKHfPfLM)cjK zH5ASSyao4*l%lWDj|JxFeiCaT=0V5Pww88-4S(h@FRQ@o}3soz6@Ivix&8M z5C)?9@+<56URS}V#$RV!@pjm$qxZyELACQ7^?WUlBSokTg^vJkEenDqFg8-?7&=xx zv{OnCE2ac@`W$^%uOVY`iy=c)Div`Zez<5v9UJ3Vj44ZlGJB+sbD8&O(X8IY=mI!j z>VS_~I;C=6{m=KZTQrhei^(Y~ia?2uR&(UpQA^50^-K}0u?c;yV)cPI*1FOfJb|41 z_t)_|z#3wv(5og-;YD(n*HVwOA?5S$9zr<6RNtwvQ&a^X709W@B4&FOFUeN~FLuHx z2feUh&XjJk_Dbi;(dbJx1d!wB2A%Ez%431(Fu&YPMc*n z&W`JWtbEJ-Wu@0UX&u}Kk)=|8a^~O3NhsG7{6gw9WVVwD>W|-LI@twVW;w;)w03m( z=(@X4$M>*Sc#p=)N|J|cPB)EHOMJGG3qk-9Rk9mM{NgS7Sx%>Q!_}#2(pg(2UbsHN z&#abzlj)wpMxHS`dm~M8!Ua&M@WpRAa4pSB)Ri_4h5fzLDjO?u_riVj_db8Y8MvFh z%sGG)1yQP)^8V%xd_Nn$hA%py8mIkrGK|Id=&4nryjw{LOn!Bl6UVth#OPbI5vUL; zvkBj>kmj!(W?sMl=iSL8e3@Q4`>nCxA&Qh`N5-O)e%j|#FDAl5CEJH25a$b9ldOCqAMu%x7fS~k=)tvU;!(X3SCpK5W5ZY!(ALqN!-3&-^NP1V(J|K@obmpT`ysne)@D) zR-U=JnVD$3AqQiQt-f?tzsG@1RRD=?x^l5a-sbg`8hPG&Lj^Y0$%l}1Qh2Ua3B$y(!VJ#-!mS5M8goIqYlVG--3UM*{(aFNuNYbn7$#9bF2KG&O_jRbC zgGX}3yVTVuA99dpm9;HaTUX+=WWz zbG?a=q~7Vjr)0unebq*Zi5^PvxnW#q*XnMto#Nc6g+iPGrAQH7sVsE7)P|8))O-{qvjHNZ||a!Oo4BXe1xETQPoRm&)? z?=qt=yFUEB`1*d@lBr&3O(v0IT8X8oFn{}*2+36a_?OA486d|{git}Jc|$-}DK$Hu zyNFsQscN~6%Uxg~F4~kOXCh2r5Vg}MH(6)sQ>dP@KmRP9>nbT8A9*vHaAj$_wNhC! zfHUDR=?HB8d~x@tS9t92@YuV~IXP*glzPv8aIne?+u`Jos+&(y&(Y9iF`RME0 zJh$+Z+t~q?B||Q*QHVzjA2>xXNWo=3>#4lP3%6tb8zl678|R}zyd|qwH*P$PgwBiz zCwB=_fyzVdM(6rp*8M@&zvd+=X91ve<@H`RF)G7G=K1%+(A$IJhR8V%Ut%wI#hZ{r z-vn_sc8N5f-B8(*Fp*D>B1tlAVrvOVRC4jp**9AyX>XQa+W}F#p+mpO^cq2fj6UqK zuWzhEQMIJ0scEY(SWJZI!qo4|zpt%{WW{;AR-n+pxk1Ngg|{pv=kY(Iy!$WiU;A&1 z3f{CZA!od{v_E-6SLsBS;4>f{Lcv?!xkkOaFOe%rhVDw+PDAj(xvIw_< zhNbR~LN_~VqB(5cT*W-xG}3#4yISLZj@j1A+*)hxbf5DpKYk{WF1br|0)rrxa-sk7Z zNnk4UMYEW}L9vHl!~wkm7dzA=$p zuMze>I|mJVen8bKK5nc!oggxj(#f_h-c69?-Wm?f2!!!FDCpVIg3lO+ap&pU?{~2H z@Pc@$u*WnzxGM?Goh8C>VtJ|c_y+^4`VJ_e8Rj~T;W)a#j#-@`TYO%T8#~e52#AX{ zT8VbVP#|X$e<;p-#+nm_-{nHC{ zF3{V*8^9h&%q$?`12rOv_dwG-Z(-V3+(-6rU<4gJ(KAxmN z*tCk^!RD;pq?(eMdFyYKm3*Gt%kw7Q6;i7DcN9=j&Q1sJ9L59OS4jIoB$R?E|4oDq zd)=URGVAzrQqdQuXyUo~(%D}Im7`FHb6T|1d!YCT(NW|%dHvMZ*f%((fG_Y40&WD* znpDKb4ruCpN#Y&zSV_k3RxAO_|0EpnJIYF?QR)b6hhsM#KF#$&%#CxUsibSptw93k`Lh zX}ypZQ&i@VN0b*EPy5Vv9Pym(($%gyp3rgEKZ?AnxHk?t>)db9=Ojt&&d_IVkI`Z` zL&9TmJ=DYtKO5o~PGMeLWfdJ6^N2CLG?m~O@5ctP;)-3KgBYXbtvzN_v(cU-T(BLp zwWd1Y!Xh-sd(=#V#_vYce$nbGF(aUJGT~g$p|dmQe~R+f!hxN-IEoQ7J(_Ka8rpby=cWfe`h1)f;_Euerkl2^d>%l-VtD+@+F;0Cwl6`{Xj-x zkM2pd-$zddoU7o@q~APWKoEj%?-k!b1uj~&QD*_IgkPewfu@52V~UbtO((MQ{>tDq zSi6T1fYTG@KR^Bb&^pi2s(tDcTyfqbg{=9`UCXZ0n=0;y4ZUgV2Oy}Ihjvse=Ee+c zJtj2|wDc(i%-j=a<|CM+I>pPC(;`hh061vKhN@MX=IC0B1|iZ1@l63^*r|B_#{1sn zn%)*=S_09B|2O{wQOr*BJtT^N%o-vRo7xQHaFMwA1}dv9}0GF$Oh~xT270XwDLwW z^o}yfk==Al@jUh&^7QkAD$s*U(_j&!_kJ5CcnjBY8iXF54Fjy9h@ClCUdawwxQ~plzxggX0x5cB=?XC#xii4mb^aCPp$09KGB3Mg#fu zw$qKGgfVISClAGR9cHoa;#q7m*uz**(d8jV%=E?1@|@gZKORAX+Tjg^g#>doMrI`H z-{^s)KjTo5;(EqnbB?PHb54sy(3_5U!!&u+a{%NI49x)k>9%3-9$md@>azS?bpkVHn)Y zf3^Qu)q86vU8S~O4Mg~dlO`~L=WjJrd@$){i#il`PQ=d_+&LRJUJ*KsCb<+CD!HF_ znOwN$Vzk@j{LOSzeGN!ReuB@nB0zI0n%&D(&QkWHFWwEc0c%uu{y|Q0OHq8voum;Z z3vaPp4=y@MD5uLo0YW;Jkt1BHK~(gu3u%h^Kx)nY{67d7opBggKgk_^@{|}@a~=~0 z825X?@Mfxb-0Y;x%1IbcGCZUF;^s&~15+7f-K>*mp+dL1HttrzOtxLmHEUK0V^lRt+6W^>FNB35KLEl%Lj5AP}g#a1>ERu+h?+o z9EJRp=vbRiS&w?yr&$J6C?(OP)G-M_e;VP}g0<6dAtn?^)ZEnb?eE%$;Q*s*u-sIk zXwF6gO-!CERAV;iA)w|Zzgz+1w*uu{)6Rtuc$nC!V|$1lgdyP~PMa+X^cz{J$Ua3$ zp=6RVZ$4b^6Gjkwe5`W4g~_+Cdb>Vh;4STT@{LK^sLf7t30{NJhDPD(;9)c%^!}|Gzv;CZrG~W6#CtSjJDqG(G z<`uM)J1}(lDzMDkf}q=2r4hC%Xf;z-o=(tUB%Dhk@GX4^#8j)5)8J1uP!)(W6UGHk zu|1c;dkj!7%pR~LVo^9%i$PHD1T)tIL<=g*mr3?3e)p-vqEUmzu|)-_lsjRBN`ecZ z#CN9dJrWOp>E*RJUbBx4fhPy9Q&w9ISyQvaCcWgwh0#`G@3rEU5WR&%ZD{Z1;(xco znQRS~bM&=!C<6FgD2Mp-9Tyz|p;;L$4K7ok_HmF?Rg{QmiquED0*_J5&RnCbc%gV< z;{|JvO^qeGv-SeYiHqO#&I*>aiXAza9q(oeK(bB^}lO5F|TC`{?9h83m#$rG8iEXHAIGfnqZ6>w{{ zbuG^ne1Xs`s3~byMBc!)=+asmx0XE|S=v~bll0-=UU218k#+DoYT;*8?6jjJ(0e28 z+RCJ7knIA;1|x$Kjf`JBS}~kC_2D$7qp>@q7q?cQ9xeXY@!ZrL^x5YNNiPM7Sy=q& z>k?-^#4WrlxaK0Dk_1{>%FzoE-y&R-ImBe_LKm5pbuReS7 za&_u@I6F*Js};_>BtO30t2F4MGIkDeVL_aGi)Gj?A=RDpaiP6! zU`r01kXe;9VGbz;@_cVR)60a%t~Q>W)5kHR8-onD;dPEcZH9v!!m4V!?!Qb+Ie0*B zKOYg((&J|KD%-|%ezpmLsmuWGWHcwgt0<|hxTPY7;Y*yl|C31_{hv(AktmLL%W2Va zI#*$(le7@w%NQSW=K#G7A)c+G0NrN$D=6Zt(6KgBPwQ3M*XJ`9`lE@;n^r6)Qac26;gvVGpqieItzIbJHk5!0h>TvOm)hwz#vwIa$Oa6z@ zGs;?_bNLRrz(Ov0xXi2f$K|rU%+UF9BZXVxu$^7$`Z7IW0!;RMtzfR^%ptOt=k#B6 z(&2VCIRT8qL6aX!_h7`qsI3hE?@zzTGY_m%-nU#~>tab})cFw1XCFtp?8nY3H!~`V zduQz=Dmc=E79lE8e{QYcHBv)t*I^byis^EFF!xQ4ATd0<>fE!S&do)7FryaMx-a`Ijpdp zTC;Ya{W}OM*yfHw3*IOpCA?b0e@`>2&8gD?>V9N-_#{j*lN6s$D^@Z3l*qc^$W)oH z;+d5#U8jhn3GklU{m&u{E;*ZKx<^;v!Vzjo8elWh#6DUSO?P}kc_1M2!Vz>Fbv-?m zD@N=?^_n+~Nw1n_B4?yjL6jW`QMC<6_rHzNK@k_rYYrJwHR0ljC0}xO&Hd73Y>|9b zpQ-lf?+0g48o(~Id<9n}Pt5rU))?yxNT=>QBe_EBFh41zduLmjPBwb@Rg3Eo_u%QfglA~iC z6xc;b+6{`WA-*AVfZr`w7@!eks=`%Y-O|!r{>$mv$jE;${9J`$uqJsv0WXp_#N|c| zeK$G68Y%YVTfD{I1RKZFV=ph=@X5}1j-9r^g0;?!d|!zFTV;OPqB3*r@$r%s$P*XP zV{C^$+RzQ>wZC@Vo1XJN?Ix-ypm!Iv%U9qdwpF!nmf zyOCVB0>~VSlVE+cK-n*hN0m3VNM93*s8R>)mU*6vI~VGC#|}uQPF3?0uSkoejXlS{ zL1|}S$kC*c93+BN72TC{jE)>=EbBDPFZ{=3P7xilfQQ`6f^n!42us=?Md}Nn<~K3wO85eNy0Y`1=5&z&hVLDJ ztlP@>nBLV;j;QM}2Zb!>#*Z(66`$vr(%o{PpQK&Re?~b`Oh#vVF< zLXkFG6=uo1uL9J3Gh%A4qjRvGX18rbDx~#8km40C+7PXkJ#?dtuFt7Mb%qrU%JTr$ z{eky{oxH6aTG!4SR;*flVd)gn*EK*I81nwY?X63grtU@?nypv%nrn*(KJ{Prb8qD;jFx0HuGsJQa|uHvad z^er^#$>EAk$|K#6xvzXAtIj5ZHCsc(3yxQ@+*(-q_q%so)Zt={v5&8Jdvk=}zr^)E zR%{=G34_3%)k2jo0~%kl^?2xvn^|2_Hot0rw7Q2|s=2OL`i+(7Nm0v_+@^zJ8=1Hn z1vu&V#>U>=yiGo7+k$0umx#C8t9WCspD$(;J}ykRXCK>nqq6;D?v}2BHziL0ww*#N zVj(Ira%xJeV}A3lNoReG2K?}ze4~p5QZD4reTY}(L&@Kot^0zLoP|}N@qKr@z5P!S zO(;Eo@#4ZRLLi?dH!xjv0qGuk_$C0Ut)l6^r+@FQCo+OSk3&{g_S<@P`QvLKzTIao zQzG1<43PsFm*L2p*+MKe{oc;%I`BO1eQ7L0x{|`=Wa{7V_Yn&)Hr1ca%f7Ojynz0= zHyz$#Ik%%Ge_uOqF81QkuGXih4Y?wlSvoawm$NWR7uRnShI+p1-~ak8wJ=B>X?xzQ9TgR|lKoxKKb^C6qnZ? zc6deNi$~UDy8i!a`)E|}+-Y0>9`%TNzQR~P#KTt*g67jHU7ZYRNNlila(`n`*5`OQ z`KnD~fI*ovF(|hH=&n4KY;p-JD5h_%}1BGI=w4Bb<;jWg&e`G1e|QK z_b#LUl!~HjR~F1|G9&?%+je#4Iz+-bH^(#Q+9?ooiZPdY6Bc6% z&!0s$)1O6zGIGS+e8$Kri%oJ14{zM1SlR*N=)K(a*C)=N5qPnjgCuiu?=AjuYm#x8 zJFu3EcMHS5bbg6JarzZwTiX&9`jwca=)}as+>6$q8ygj{gcRqX#`fH{>z?Ux9Ewb_ zexu`^stR+hU(9Oh4Wgr>)LJ?^*hp2T%lUn)GHfKe>50;CQXy8GIdzhVh<7u5k+WA_KjE?3myV93Cg$eVe;;Up z@+vL4o*+ux>XXavPvexo4??h;3k#Kf7O%ea7W;JL1%ZsbOJqU{3Er!H6t+ncg4nuc zJ|Eo$uhGM3^!g1n#Ph+I`P^2SclV|3W{nkf2ENekR#FUhR?{-3JnO8S0wcG6?&#QE zgd%N=RaG}Skp0(;4_FXom~So#D_Qfe<73&Xd@^6V6X_IQJbCiZI8;#K%}g6*8uM-< zSroq9;TnUl$@XGf*a?j)}Mg zAxI3yLpa~v!%NW7=Brc(B28J~ZApg^aA5$z8ps!Tgs`f^{Oi5Hmiqa1H8-1?SXp`H z&I)Jliq;s4;=EP7IM*AN*w)lUl}_DWopT~x^h_4+B{`Ml61JUd2lVy3;|>x0mi6-J zDrnoeokCIU7!fy{ptwe+gF;?Rt+FIgxrF`V+_(mH?7Wj4$5L(O4&E2;+y81v3~@dQ z5so>{;J4i%OXo;JlKDQy_TJ9%u@NOi-xqR4! zFCY{3>jERQ(Pe9n=FZ-ziC?|?mp0=tRO2^XbqPm`fl|`dxBd|2 z9NbYLW7*d4WP@w(HONLm+LyMz``Kr?5@DDoM61VI=tLJyV!yPfj52SF?t6)cT3iV^ zuaKy95+gf-RxOvD_RN3GlK9yTpRjH#s;5ME#z`HWNIM>T>4-yqMpANe@%;ZVyV)KU z6|rNQyYdUlxb<|jL?K@7#6C(b23(Pw)d11Os8q(=n6(KB~Z(@2?Vk{ z$v(zoEQW<7o%-#S>jpHPeOD75e;!;Gd|~v{1cSXVB8BfHC6f0Jg4yi3&EiDvjtvo}vz^KVedsv2_TJu=usOA3{nZ0; z2L`yZ@?0B^0fPMW?s5%(<#G@URo+Y{pd2iIW&%Y?K^jM3M2yGM&re?19rhF0Obid= zXt4unQvbIlKeXx-XKlqO-Qd#<_z~$WUj;+t4p}(Gjd0BK6yAH))8@TEFJ7|MlcvrJX%o$SYgC0_|PQ|-nZR#5)Xa&5`MLh`mHR$mc@0z z&G6lEN9i#2M`YV6`XFT797Kv+sF7^&4XJD_#3<8eB_+aG)hkX}x@&YdiyooDLDS1m zl=yx-S1`@c9UG`!1tAuowm64X@%~>4jpRly!@W5p!e}WB?$okq05M&D!1Bf-7U0Mk zJ|V=YSMStfm6Uf0X~(M{A+o+BaoQd~D!T1ZM)Cw7ycwbPP#VTAxil1x38UWDc_Vp$ zzfcbHc1cC@qdviZG0Qg?$DZ z^=p8!D@v!v<*fxbq#bFvw|ux-_>FPi`cc+slYi=uBuRv6<&RVq625$$z2zdF;*#s# z#>p^;U0^FcCb$_`p|(45?mg6wtT3W2UM5EOrrW)1k?silLW)pgP}y4`L#|Vqc~;U@ znT9g=@;IU8G6oRLo!DjJR37xN=d?hfahj_H?Q3oI5esVY#9GPSkp-D~R9Z0@(?oZ4 zPqW?0mHtmOzN>yti69XLgWl$^c)gsAat<^ouO>hbuQ)+;VshyaGheyYUg;B*?(6H% z&#{nmQE%Q1xynhc=Etd*^!)j_6Nb!oiwseIemoU$a6d$PsiT@p?dhBCb9>4#AV`sDY8A}M{Xac+Nxx>J<=3=-(mK3 z+nJ*6eCN-Y)}PYOQf?@oymqm{leh+XQnZ%HTT`dVL^=t1gL-(QF%=ElDbz@Q)!toU zU;XBDL-i%vkujt{$;|BFR_8O+M5wF5`0T7uR*J{65Fz0)dYkiVklz{(o_|*Inp<0= zp@rQ*qP)2VB+U$#VyO1(*RNkVY-YAQVsrefz4c*XQklobm+;cn;w|_SXq*^%g|nac z(%MM7++7Z$sX7M^utGmEK>fvM+Toe?)89Cni<~Ng=qw=b9v#&8{R?gV&c)N_M2vmb z!L?0hyUl6`H-E88WI%7VN{3MfJxis5%>;Cq&k>{U5LvynzIDInBp35gTqQ4r7Ixa& zbT3;vSPbSbCta{l*}Z}C3N2c8G8|!dV5^AWVL$(U^FZX&O~e*P+siEQ5tyil+Hh*= zpe1q}x3PZ+O+W95ycX$HB@f=NQ$plGgf8kB@7Q)j8Li=;oo*B#Ic2$+iKO)tVm*S< zK|3NQI<0-xBjuImlZvrihPLy&mt99Io;QJmv zM%ED?fy%n7Y{JaG{;7JvLCty5+2*eC-WtGWA1Va*?r2{sBC-95hcaLeAcz(+VJ}L{ zYaw!QaxW7ML7Q*gkUJE2b5!B-zdHaw8thZs$;$gcDr7hD+`gRZvovHUBAx2Pm01_R zYbm^?ok}ig`HGA(AO1b_ZvOD+^)oY*{mAfNU+hesdIZ9cACgEeC%Kny9luZ2hz-pr{qYFTC4T4Rd>V8B3s{}@T~0i zGfoNfrJyQd$S?~TN?Wwh*rP9v)9G>##!8RS6;KZ)*biua-;$#D2A<7_s644NtW4}P z92<2)$(9557i$YA0WwY2vOvE9^7Hk?;^n!7I}gPr$f+HOTIYWu!X-p6HMlluRjC*i z5O3cG^CS`qic$LG#^JkvhonThG#ta3QOZwZ&fEGFbdyKkvR{2|V|rr&$MGBfG66Bs zTBqCvKEo~aD#bx1InNI^XOM?7pXvaoF4s-Bf%1JAaxFpGo$E6{!Ad3xS6HRd_oG@09w11rc-z?8 zA%|(2?qzfl2&9*1m@p>$?cIH5MK?WBOo@UZb2s`qmk#5J^foB>6rW1Tc%!;O%(0DS zF#}UWuDI|=Z@0ewdir%AZU6Vw?{}tG=(^t}edC4kZ$t@G%a+H&53zUMi;R3l9?)0F zi4M`&hwF}sosB;q6`9wLjJSda&Io#kTa8xRn6$rN^@p zj-MZFF*FUcrhShi8ka*`o!eC3Fb>ZkoM9WKZ0F9MTGBgqzgJWm9TvFD{4OSLm6D0c zfwa%;v?4^wv-tZ2E?tu*j;)Q&#g1(=s=t8fc++mhDxK=cz1IEPDufXuNXV?5S{oZ_ zD}S#3uVKH#?U3_{vZ~D8sVMqxBcD3~GW9rB0tM{2^8wkX0<+^B zrpiA00ghft(bTWo!7y^S^)ZMI)Yim}h3>yXyAL;Mk~6 zL++_}j$2KcxKd4}6W>}^Tr1+&jGIjOYz0y5&{3yI-`M;d+O&YjjJ}T20&< zk_rngr*PI6ynNYVZe{gH*(vLA&-fbmkNur^S5Z>KTm_pQnBXqgV)eJOBh#&XbYj?$ zsF@6Zo=|1w6lwYz;72`7bLh7ks`VDhO;DVExFZ^Wj4a|2%0J8N*!Lc<(B0*?xtc#C z&({mdaLsBVl{GyJ!a{iyoj9J8^2|;3Z^pfjDqWt=CSQ)39o0n};tfTnMOMZ|Mj68A zG2VTq6(m>Y?n2}&`Ne?pe_WDvmxxdl<2M{uAYO?;1fS#nmaYupJ`w}p-w+c?5OW0W zQD>iq-$+JUf|ny&A(xl>BsB^b{27I7mx`qf_Iq7;bbxq1k<3Zd&eu+ zt)UJghPs<%mYIDo-HsBZPAC$km+5$gvYKi&O*r9sureH0@rZ4Fx zk6ikrjwD?9^E=JX6RGDFCe5!87J0J?k16m3?Pi{#)L%nxJ9YwF9rsUoi$@Cd21Z|_ zl(lw+!_gYB<~J;36Kw#N`SO%)QjXAv;ob0yRB9#;)kZBQj0hS`-{gA;=7-O?5C0!g z?;THd|NoCa&yg)7v&)uUvdUheK_Z9B-lZZVWOIlpLT2iiQ4}d9WK$%fA-jVpdqnp7 zJzjm@-`nrH-LAi`+jX4tdOgSEaev&$TP&5iavs97uNggvju0~f?x86^VFZ zXFTV|AAz<&t36@@&FF`fq;OuKaIxoMaUO~b`70pDYx9l-B4psDjmk8dp>=6=@ z(I|*&VW6W^U{nbR_7-r;R4Re#cp7PBaBD7*5481`-7vhXWd)&jlwoO%<<+7z2IW;ga4V;BDZ4+}4#ChnQI=xH|git>#w&MyjCwmAV zy(Lq=js%vJDKvAjw!CB#O9;kzmAiKVe1uH2wyuZnwf;lPJjd^?lBY8X_m%p7Zw`8O zTH~@MyN(V2=-m#kPl7>57Epfl4ROE6?!)Q`3E70ePtwCf6}`ghH|{QFg5?iylELx5 zLtRPY`JVwX0z%R#_VjV}2MGFp^X5!1HUT>E=@Gnxy&UoFL53H^xQgFl zK7J234EfxmM-&xzdmtos3dU-RxV6`19G*N)PE7VPFmr^kKA89?6CUR$7YeT=Le|Qv z2KI}>-ebu{8>vgc{KPWk9FcH?=40F&Zl1s+5J66CZa&fV{du06^2_%Ay``$qE1x>fE7t6;W40hDs^&pXSF=`IsEYw!ptEBPjg zS7eqm5TLD@c_p#_?6^aJyp74mAH>hlv+5yy(>SR}9byI(>Mz z^=`I&NJA*r^7#HV*=7NrBaocUtbHH6DI7rL$BurV0p2j+p+DSW_y1SA9ZUEKA<`K? z&Zob#C5x{JLCT@{oy2`^t&< zjzDn0(gDISvdYTYm?+B2Rr7C+47IJO?1H|o%V9`$cD4S98{e*$mUwS&#~Ls9R=*uHi0YHj&C7<_FkVLN4hM9kQz_CmNjt|Ilx zBVTEk;tTq>p$d@z_(AbN)qxjwtaASoiVHX9@WGY@Kb=2cfLu_=Q*VHxA{VcMp$Ltj zisVH35WhrWIn6K`ru6ZUW%PILWp)b{N@Ci1*}~T(@r1N^9F^brBjL$MygO=EPCr*{ zgGHf$k*$p^RQF@*`!fgGtfKxeKI+%-{%PGcyHQ<26#0QNXumtj$9$X#*Rd=KB%rAlPcCBuAvyN=L^^?=~VhnT5&Dl8d>ge6{$<14-^_oOsvM(i5x z+gd_DJuZLv0QcmeCj3ZFWK|9#S>F$8QAvBAc2G5_bl_Eh(bSL)G8Ow(xk#p=xOVCk;ed0f3r> z>!S}UipDanuF=SiX>6+&6c=yXnU&}*WarJnw$zAo1n!^OjaHE~LH&YHQ>AS~J_5Fc ztIs1yJbBf!_cZ#@a>x)1aodDJ;3F(Yix{I#Olqi`8~rwU1hp#zn58KA5Z7)l3%`A~ zqD6FKf7TxizDdGm=jFZ2BNQrS7(Vn?nf*HX+W9tXE{R*T%7YD*#!^V5r0mve=Ed~4 z@t-YJ#|Mou$oT;5UL8F>J)0~#*H{({myA8zzzOn%0D#pYXnW$pJY++S$d40`ALSwk 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𝔖7|-(CPbw3L*wUf3t)VGSW!AT$C&;%n*! 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
o;u9cy4Qj?$m?#zG#LJVv~^%AQ-cLi%%}+>r#}g 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 literal 0 HcmV?d00001 diff --git a/server/cert.crt b/server/cert.crt new file mode 100644 index 0000000..772574d --- /dev/null +++ b/server/cert.crt @@ -0,0 +1,20 @@ +-----BEGIN CERTIFICATE----- +MIIDSDCCAjCgAwIBAgIUWbslfvpB3c1tqw/YXflXxI/IzAIwDQYJKoZIhvcNAQEL +BQAwPzEaMBgGA1UECgwRRHVtbXkgQ2VydGlmaWNhdGUxITAfBgNVBAMMGCoubG9j +YWxob3N0L0NOPWxvY2FsaG9zdDAeFw0yMjAzMTYyMzE1MTZaFw0yMzAzMTYyMzE1 +MTZaMD8xGjAYBgNVBAoMEUR1bW15IENlcnRpZmljYXRlMSEwHwYDVQQDDBgqLmxv +Y2FsaG9zdC9DTj1sb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQCyCS4dPAyx3p8qT8QcUWsJNQRsCtGxDQSQR3kaN278+VjNMOZLLo3PZ427 +7NKomNLDd4ryysqktZfMewymMjRAYIrYTFq+sP1ulEz7/4+EhGLlSsoMlT/dWNy8 +MRx6eJf3ISu9HyYI9GjKrt5XmF8fvBjF9FUyeg/GuSXRJvD6dw/czEeUOVZxFwfD +0ohjZRX8Lrq1gvb5D20Z4N+0pywg6ZAxHtQJEHldAgkQN8eJ36flWfpPzBm97MmW +vij5dFiccQAcLhFXieASuVX/60IXQQIF4wKpJbN552iQhJKmsPTNrjMG7xUPK1RJ +MtGXJOJedTbV9aXsFtDxI+vRncWdAgMBAAGjPDA6MBMGA1UdJQQMMAoGCCsGAQUF +BwMBMCMGA1UdEQQcMBqCGCoubG9jYWxob3N0L0NOPWxvY2FsaG9zdDANBgkqhkiG +9w0BAQsFAAOCAQEAhTi8KQCZfWgwYTIujXh7tQ6yoWy40x7pWHkUDI1nwhtbyhQv +XXKX/3TQhIJKcTDB7UbcTulk1qWOMlK5U6b0J3lU/UNaPQgmmjqLhJmblkQawhVW +tbYxlUwikgA7zo2s5H0x8Oy1/Ebc5KUcD3YFmW06Rqm7IYWrd48zw3/JICzr6ba2 +JpcjVzVBi5RANZdzemnPdIZZOHGo7V9Kzu6NKJ/liNt5x+A9LuIQZw73YpmHurVG +7l+A41pyptxwANYW4EStnbaeIvRh8rVtTaJpbynbywuOYfh5nP9t/iIFnov0RDWQ +9AQKcadiJyQW8qFX7ldj+zgeqaaQxTKrYI4b3Q== +-----END CERTIFICATE----- diff --git a/server/cert.key b/server/cert.key new file mode 100644 index 0000000..7532481 --- /dev/null +++ b/server/cert.key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEAsgkuHTwMsd6fKk/EHFFrCTUEbArRsQ0EkEd5Gjdu/PlYzTDm +Sy6Nz2eNu+zSqJjSw3eK8srKpLWXzHsMpjI0QGCK2ExavrD9bpRM+/+PhIRi5UrK +DJU/3VjcvDEceniX9yErvR8mCPRoyq7eV5hfH7wYxfRVMnoPxrkl0Sbw+ncP3MxH +lDlWcRcHw9KIY2UV/C66tYL2+Q9tGeDftKcsIOmQMR7UCRB5XQIJEDfHid+n5Vn6 +T8wZvezJlr4o+XRYnHEAHC4RV4ngErlV/+tCF0ECBeMCqSWzeedokISSprD0za4z +Bu8VDytUSTLRlyTiXnU21fWl7BbQ8SPr0Z3FnQIDAQABAoIBAQCF7q4IRCJwtL8c +P4GSpBVXidDXzpPNE7P5LiuGc2lFWfdZ9Y1pxY3dF1PiqdgYCU+UyJt45uHnYszd +gTwU0vPH8ljBOz+Q8OjWhS4c7TZ0RHt5bvfs22J+C9mSoYeBArOfsA6NaZ9dYTBs +OXz+fJwi7Yfdc1+cZ4LyxloSq67hW+sCXIoFo667ovz3sagfEGgRRrBKh4WcD99l +n/JEuse4sl732i01c6HahsIAwhiMu0vZpiIT/b5odg7fO6OLDTGx/RCOk4TyCUUs +DKGhAbpON01+t5icBK6RhtJpuZxA6Pim9/JOW4lAeHL1D5173X09tiWraRATtUmo +LFV/uV7BAoGBANpd5xOW2Qn4EbKZiZGVY2ahbnb2iieilQzDszGQTjpaiddwlXIN +UtP0HJ18GA4JDM+/7WfgtdjkgvdJZFAWRZX3cuLzda/A/z1YOhFzfYl6whW+cmtM +kxdSWnH0/1TiKJGevhos0C/8plrFpSPRVuRw26udVpwSQqg/SuJzSaXpAoGBANC3 +6+uQYyxlp4BU/BsYsUyln235sIT2eL0BHleZuS39XKObbNmG19ndCd5lu9XMSBkZ +a050B/YmKpHwlE+C66YUZhCNtrYyXfFd99F20iBreGnADj0Y8GTFNUXc33ygEJQI +2mLH9UttNoTnTvtcjEJ5HV0P8ILiPm6EBNo9vG2VAoGAZgm7EMxMXvwsSOi1//Fu +oWaN18kchajTPUO1WFO2Ok5UWveg3cqcCa7oMC7sjqJr+igVJ5U5ZEBjcmo5FbNS +kOEwLhzVwWrN2jx/5eexoaxbRQ3ZKYp+sUcqPFXfeiq0ClfDPTfzkHjew0vX/wSz +NcwG2gqLjiJ6Q2RP+cEliQECgYEAlOL+WhWviRYivHrjM/kTUNe8uNiqwM6JJlpL +6LVx0YqwsMzIgwubon/48DqmGUcWD0GAuIAwxbhIGb8CLQ35R4m5nQlaUvHu7aTY +iQU3s4S2aslj3tWRdnDvJZz/l4kfClqeXmTBaELJ51iRkOFd9HUtKxuZt+PoITHv +vDbZ2VkCgYAK3brx7BnphTC/16bkfes/J/qfXIO0+f6gJsmwKnOdA9A4g/IvGoCX +uW0N6Z1JJH0C4xZNtalDSRAAH4x9A9DPLAzz0VIFU9OiO4bkHzKwc/gH9SIBTR/C +8OiAB7+SMQYpiXFGIFjjiTqJNKDRnf4EBEpwg7HN4gRsjUgv0danEA== +-----END RSA PRIVATE KEY----- diff --git a/server/googlekey.json b/server/googlekey.json new file mode 100644 index 0000000..b6c2744 --- /dev/null +++ b/server/googlekey.json @@ -0,0 +1,12 @@ +{ + "type": "service_account", + "project_id": "kurir-project-347217", + "private_key_id": "909837ad8b64d351de550354d0f9cfe5e876eff9", + "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCwWCh3QtfgTn5+\nNl9hviQ+E3aIPcCYqiaOSk16F304N4rC3xANrpNfqEKZvcciPpZmcMp+YC66jqvM\nJi4Zby4ZY44uhoQ34AqHzF0E1hmzTUtQcGqDTJ76jtcnQXYBg3aLXKm4fjyggxSa\nE0pEsiIpi8R7STHws8V8LJzBZFvAstuVa6FTnnCtYNVgMt7flwePG240wKKECKc5\nKyZ+iOvBsCRwSNv2WIblq9AQqfKZxKv7aW4049BNwNKnlcLxDuBqgUkP0y4CnAHw\ns79r6uj6JYvJ9jL1Fqv7DIAfwbd1z61PYgKj+zgUopb/svYnZA75CPp2R6RwpQYc\nVL6hf+KBAgMBAAECggEAAscqFgeLyo5kqud/ilTk5xnGjtVi32ojcto5TRB/KhT3\n6Y4lh4L7R9u+TC6OQJwZ9vGqbaIQF7jFJzwSaFdVHinFv4u3cVY6cZK22WtnsBMq\nOfwXYCD4yoDYY1eCPM+zHPVqqAvMYolGGGTwO9OkOvbRyNEUSWgvltSbazwslNpw\nbJqetnI4cLvWtgbQvHiLzOghZwMZXSLJ2Bl0y2SGc4yjbrV+2Ll4Zq8oAiv2RWa8\nDe7lNu1KSPkAlLJGvYiApXcgZvJQR48LH9W8spYAAkdIf1LSROcGCCmpLnrCu0kK\nkkUk9p7F7ozCvaAzYlIzjQ4MyUihUP9t11jD0UISEQKBgQDd2w6kVFmO4FeK/w1h\nkZDlPIYIIuoLhZMIbXEC7DaGNbc+gIOtuQPgVD2h8QbUsJiZn6OQhebex3d5rTxg\ngJqThvdRgh0j8LArRcS11CTyd9hW9uIGrfWDIgbYNoCsco+r9Zto86V+aSRL1Hcv\nACtpyRcjDqHERat5KCUjyRZXyQKBgQDLe/1nMOtaxr9UNRXYEgztVRnbkXnslf0I\ned3Ul4MD5K3VDRF6JN6BykLszr82c527XWrzhxClK3YSHWjA0LouWyzEJTQiRyco\nyz6Vd3KqYKvxKpzr8DAIa/67HTIc6qJWSHfgZUnUs0btEyeGeJf00qUIhZwuKVfw\nphfNF+CA+QKBgA3dowyiOPa1DsOhLTTr5CJvpfDcPcR6lLXyIR4NpVq+ALXnUlOJ\nPLTIjxGP/t1MLD1tvMtLkyJZVR5FtYBSiVavGMX/W9LjOB98PM8gcy60TtEgnP/N\n34pSlhrtTR16C4Cz2QK2N6Gu8JXMsaY+XHhAGTIXuASMVis8VxXle4ABAoGBALrx\n1ONjLDcf9VO12bXDD6FT2AfDZZKYUfnhjI3uDO4cwB/Ge9IN4Wa4njfV0hKCsd0b\nfFD0O7Sjczw9TKoomYRRO5WQ4I7FdBKkd4D2VqB1ZEKS9cxFxLtYDJV3wzyRzEcd\nGRVNuUDy3Cyetmdyj5jblcd4iP5X+XUcAy3ny9hxAoGANlqXYq9wk7vsmlqu5Pz7\nBbupKGNhVwtmQAm3RDudtzbP/qi8awI3g22j4x05UHXnmIVPIEGbjajBIad5PH0s\nI7G2H/Gx91rDN4ym3e3zTVpNyHu8usMo+TVPGsPYrxAjlSo+7HUc/VacOMQvSgXw\nrHEYekIt1HEDgbyWEV23cqI=\n-----END PRIVATE KEY-----\n", + "client_email": "googledrive@kurir-project-347217.iam.gserviceaccount.com", + "client_id": "115368903585615403523", + "auth_uri": "https://accounts.google.com/o/oauth2/auth", + "token_uri": "https://oauth2.googleapis.com/token", + "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", + "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/googledrive%40kurir-project-347217.iam.gserviceaccount.com" +} diff --git a/server/index.js b/server/index.js index 1eb8c60..a09be83 100644 --- a/server/index.js +++ b/server/index.js @@ -23,6 +23,7 @@ app.prepare().then(() => { const http = require('http') const https = require('https') const fs = require('fs') + const { pengirimanBarangModel } = require('./models/pengirim_model'); const options = { key: fs.readFileSync('./server/cert.key'), @@ -41,12 +42,17 @@ app.prepare().then(() => { const kurir_router = require('./routes/kurir_router'); const pengirim_router = require('./routes/pengirim_router'); const peta_router = require('./routes/peta_router'); + const login_admin_router = require('./routes/login_admin_router'); + const admin_router = require('./routes/admin_router') // use routes server.use('/api/login', login_router); server.use('/api/kurir', kurir_router); server.use('/api/pengirim', pengirim_router); server.use('/api/peta', peta_router); + server.use('/api/login_admin', login_admin_router); + server.use('/api/admin', admin_router); + // connect to mongodb mongoose.connect(process.env.DB_CONNECTION, { useNewUrlParser: true, useUnifiedTopology: true, family: 4 }) @@ -57,17 +63,56 @@ app.prepare().then(() => { }) - const io = require("socket.io-client"); - const socket = io("http://localhost:3001/"); + // const io = require("socket.io-client"); + // const socket = io("http://localhost:3001/"); + + server.get('/coba2', (req, res) => { + console.log("sini coba2"); + // socket.emit('info_pengiriman', { + // id_pengirim: '62be1a1a97c4a38caea7a5d8', + // id_pengiriman: '62c0088948578c0819b90343' + // }) // ini untuk info pengiriman refresh + + // socket.emit('info_detail_paket', { + // // id_pengirim: '62be1a1a97c4a38caea7a5d8', + // id_pengiriman: '62c0088948578c0819b90343' + // }) // ini untuk info paket refresh + return res.status(200).send({ status: true, message: 'connected to coba2' }) + }) server.get('/api', (req, res) => { console.log("ada org request"); - socket.emit('coba2', { - data: 'coba2' - }) + return res.status(200).send({ status: true, message: 'connected to api' }) }); + server.get('/api/check_paket' ,async (req, res) => { + try { + const id_paket = req.query.id_paket; + console.log(id_paket); + const check = await pengirimanBarangModel.findOne({ _id: id_paket }); + if(!check) { + return res.status(400).send({ status: false, message: 'paket tidak ditemukan' , data: null}) + } + + const cek_data = await pengirimanBarangModel.findOne({ + _id: id_paket, + + }).select(' -kurir -__v -pengirim').populate({ + path: 'pengirim', + select: '-__v -created_at -updated_at -status' + + }).populate({ + path: 'kurir', + select: '-__v -created_at -updated_at -status' + }) + // console.log(data); + return res.status(200).send({ status: true, message: 'connected to api' , data : cek_data }) + }catch(err){ + return res.status(500).send({ status: false, message: 'error' , data: null}) + } + }) + server.use('/api', (req, res, next) => { res.status(404).send('404 not found'); }); @@ -87,27 +132,68 @@ app.prepare().then(() => { const { Server } = require("socket.io"); const io1 = new Server(_server); - const io2 = new Server(_server_https); + // const io2 = new Server(_server_https); + let users = {}; io1.on('connection', (socket) => { - console.log('socket connected'); - socket.on('coba2', (_) => { - console.log(_ , " ini di dia coba2"); - io1.emit('percobaan1', { + let userId = socket.id; + + if (!users[userId]) users[userId] = []; + users[userId].push(socket.id); + + + console.log('socket connected', userId); + socket.on('info_pengiriman', (_) => { + console.log(_, " info_pengiriman"); + io1.emit('info_pengiriman_id=' + _.id_pengirim, { data: 'percobaan1', - message:"ini terkirim ke user" + message: "ini terkirim ke user" }) - + + }); // ini untuk info pengiriman refresh + + socket.on('info_detail_paket', (_) => { + console.log(_, " info_detail_paket"); + io1.emit('info_detail_paket=' + _.id_pengiriman, { + data: 'percobaan1', + message: "ini terkirim ke user" + }) + + }); // ini untuk info paket refresh + + socket.on('disconnect_it', (reason) => { + console.log("sini untuk disconnect"); + console.log(reason); + // REMOVE FROM SOCKET USERS + // reason.remove(users[userId], (u) => u === socket.id); + // if (users[userId].length === 0) { + // // ISER IS OFFLINE BROAD CAST TO ALL CONNECTED USERS + // console.log("offline", userId); + // // REMOVE OBJECT + delete users[reason]; + // } + + socket.disconnect(); // DISCONNECT SOCKET + }); - socket.on('pengiriman_create', (_) => { - console.log(_ ," ini dia pengiriman_create"); + socket.on('disconnect', (reason) => { + console.log("sini untuk disconnect1"); + console.log(reason); - io1.emit('pengiriman_create'+_.id_pengirim, { - message: 'Pengiriman Baru Untuk Anda', - id_pengiriman : _.id_pengiriman, - }) }) + + + socket.on('tambah_verifikasi_kurir', (_) => { + console.log(_, " tambah_verifikasi_kurir"); + io1.emit('tambah_verifikasi_kurir') + + }); + socket.on('tambah_verifikasi_pengirim', (_) => { + console.log(_, " tambah_verifikasi_pengirim"); + io1.emit('tambah_verifikasi_pengirim') + + }); }) // io2.on('connection', (socket) => { @@ -121,10 +207,10 @@ app.prepare().then(() => { console.log(`> Ready on http://localhost:${port}`) }) - _server_https.listen(3003, (err) => { - if (err) throw err + // _server_https.listen(3003, (err) => { + // if (err) throw err - // console.log(`ini dia ${process.env.DB_CONNECTION}`) - console.log(`> Ready on https://localhost:${3003}`) - }) + // // console.log(`ini dia ${process.env.DB_CONNECTION}`) + // console.log(`> Ready on https://localhost:${3003}`) + // }) }) \ No newline at end of file diff --git a/server/routes/admin_router.js b/server/routes/admin_router.js new file mode 100644 index 0000000..a26e5fd --- /dev/null +++ b/server/routes/admin_router.js @@ -0,0 +1,131 @@ +//create express router +const express = require('express'); +const router = express.Router(); + +const { pengirimModel, kurirModel } = require('../models/users_model'); + + +var ironSession = require("iron-session/express").ironSession; +var session = ironSession({ + cookieName: "myapp_cookiename", + // password: process.env.SECRET_COOKIE_PASSWORD, + password: process.env.IRON_SESSION, + cookieOptions: { + secure: process.env.NODE_ENV === "production", + }, +}); + +const jwt = require('jsonwebtoken'); + +// create '/get_all_kurir' get method +router.get('/get_all_kurir_verifikasi', session, authenticateToken, async (req, res) => { + try { + const kurir = await kurirModel.find({ + status : 'Evaluasi' + }).sort({ created_at: -1 }) + return res.status(200).send({ status: true, data: kurir }) + } + catch (error) { + console.log(error); + res.status(500).send({ message: error.message }); + } +}) + +// create '/get_all_kurir' get method +router.get('/get_all_kurir', session, authenticateToken, async (req, res) => { + try { + const kurir = await kurirModel.find({ + status : 'Aktif' + }).sort({ created_at: -1 }) + return res.status(200).send({ status: true, data: kurir }) + } + catch (error) { + console.log(error); + res.status(500).send({ message: error.message }); + } +}) + + +router.get('/get_all_pengirim', session, authenticateToken, async (req, res) => { + try { + const pengirim = await pengirimModel.find().sort({ created_at: -1 }) + return res.status(200).send({ status: true, data: pengirim }) + } + catch (error) { + console.log(error); + res.status(500).send({ message: error.message }); + } +}) + + +// create 'verifikasi_kurir' post method +router.post('/verifikasi_kurir', session, authenticateToken, async (req, res) => { + try { + const { id_kurir } = req.body; + console.log(id_kurir, "ini id kurir di server") + + + const kurir = await kurirModel.findByIdAndUpdate(id_kurir, { + status : 'Aktif' + }); + + const kurir_all = await kurirModel.find({ + status : 'Evaluasi' + }); + return res.status(200).send({ status: true, data: kurir_all }) + } + catch (error) { + console.log(error); + res.status(500).send({ message: error.message }); + } +}) + + +// create 'verifikasi_kurir' post method +router.post('/batalkan_kurir', session, authenticateToken, async (req, res) => { + try { + const { id_kurir } = req.body; + console.log(id_kurir, "ini id kurir di server") + + + const kurir = await kurirModel.findByIdAndUpdate(id_kurir, { + status : 'Ditolak' + }); + + const kurir_all = await kurirModel.find({ + status : 'Evaluasi' + }); + return res.status(200).send({ status: true, data: kurir_all }) + } + catch (error) { + console.log(error); + res.status(500).send({ message: error.message }); + } +}) + +function authenticateToken(req, res, next) { + // console.log(req.session, " ini authenticate") + const authHeader = req.headers['authorization'] + const token = authHeader && authHeader.split(' ')[1] + if (token == null) { + req.session.destroy(); + return res.sendStatus(401); + } + + + jwt.verify(token, process.env.ACCESS_TOKEN_SECRET, (err, user) => { + if (err) { + req.session.destroy(); + return res.sendStatus(403); + } + + req.user = user + next() + }) +} + + + + + +module.exports = router; \ No newline at end of file diff --git a/server/routes/kurir_router.js b/server/routes/kurir_router.js index 138b437..f473d05 100644 --- a/server/routes/kurir_router.js +++ b/server/routes/kurir_router.js @@ -13,6 +13,9 @@ const ktp_kurir_folder_id = process.env.KTP_KURIR_FOLDER_ID; const ktp_holding_kurir_folder_id = process.env.KTP_HOLDING_KURIR_FOLDER_ID; const kenderaan_kurir_folder_id = process.env.KENDERAAN_KURIR_FOLDER_ID; +const io = require("socket.io-client"); +const socket = io("http://localhost:3001/"); + async function cek_user_kurir(req, res, next) { if (req.query.username == null && req.query.password == null && req.query.id == null) return res.status(401).send({ message: 'Not Authorized' }); const cek_login = await loginUserModel.findOne({ @@ -106,10 +109,10 @@ router.get('/pengiriman_kurir_dalam_pengesahan', cek_user_kurir, async (req, res { status_pengiriman: 'Menghantar Paket Pengiriman Ke Penerima' }, ] }).select(' -kurir -__v ').sort({ updated_at: -1 }).populate({ - path: 'pengirim', - select: '-__v -created_at -updated_at -status' + path: 'pengirim', + select: '-__v -created_at -updated_at -status' - }); + }); res.status(200).send({ message: 'Data berhasil ditemukan', data: cek_data }); } catch (error) { res.status(500).send({ message: 'Internal Server Error', data: null }); @@ -129,10 +132,10 @@ router.get('/pengiriman_completed', cek_user_kurir, async (req, res) => { { status_pengiriman: 'Paket Diterima Oleh Penerima' }, ] }).select(' -kurir -__v ').sort({ updated_at: -1 }).populate({ - path: 'pengirim', - select: '-__v -created_at -updated_at -status' + path: 'pengirim', + select: '-__v -created_at -updated_at -status' - }); + }); res.status(200).send({ message: 'Data berhasil ditemukan', data: cek_data }); } catch (error) { res.status(500).send({ message: 'Internal Server Error', data: null }); @@ -192,10 +195,10 @@ router.get('/pengirim', cek_user_kurir, async (req, res) => { // create '/detail_pengiriman' get route router.get('/detail_pengiriman', cek_user_kurir, async (req, res) => { - try{ + try { id_pengiriman = req.query.id_pengiriman; // console.log('masuk get detail_pengiriman'); - + const cek_data = await pengirimanBarangModel.findOne({ _id: id_pengiriman, kurir: req.query.id @@ -243,9 +246,94 @@ router.post('/mengambil_paket_pengiriman', cek_user_kurir, async (req, res) => { // console.log(cek_pengiriman); res.status(200).send({ message: 'Pengiriman berhasil disahkan', data: cek_pengiriman }); - } catch (error) { - res.status(500).send({ message: 'Internal Server Error', data: null }); + } catch (error) { + res.status(500).send({ message: 'Internal Server Error', data: null }); + } +}) + + +// create 'konfirmasi_terima_paket_pengirim' post route +router.post('/konfirmasi_terima_paket_pengirim', cek_user_kurir, async (req, res) => { + try { + const id_pengiriman = req.body.id_pengiriman; + const cek_data = await pengirimanBarangModel.findOne({ + _id: id_pengiriman, + kurir: req.query.id + }); + + if (!cek_data) return res.status(400).send({ message: 'Data tidak ditemukan', data: null }); + + const cek_pengiriman = await pengirimanBarangModel.findOneAndUpdate({ + _id: id_pengiriman, + kurir: req.query.id } + , { + status_pengiriman: 'Menghantar Paket Pengiriman Ke Penerima', + // push to history + $push: { + history: { + status_pengiriman: 'Menghantar Paket Pengiriman Ke Penerima', + } + }, + + updated_at: new Date() + } + , { new: true } + ); + // console.log(cek_pengiriman); + + socket.emit('info_detail_paket', { + // id_pengirim: '62be1a1a97c4a38caea7a5d8', + id_pengiriman: id_pengiriman, + }) + + res.status(200).send({ message: 'Paket pengiriman berhasil diterima dari pengirim\nMenghantar paket ke penerima', data: cek_pengiriman }); + } catch (error) { + console.log(error); + res.status(500).send({ message: 'Internal Server Error', data: null }); + } +}) + + +// create 'konfirmasi_terima_paket_penerima' post route +// router.post('/konfirmasi_terima_paket_penerima', cek_user_kurir, async (req, res) => { +router.post('/konfirmasi_terima_paket_penerima', async (req, res) => { + try { + const id_pengiriman = req.body.id_pengiriman; + const cek_data = await pengirimanBarangModel.findOne({ + _id: id_pengiriman, + kurir: req.query.id + }); + + if (!cek_data) return res.status(400).send({ message: 'Data tidak ditemukan', data: null }); + + const cek_pengiriman = await pengirimanBarangModel.findOneAndUpdate({ + _id: id_pengiriman, + kurir: req.query.id + } + , { + status_pengiriman: 'Paket Diterima Oleh Penerima', + // push to history + $push: { + history: { + status_pengiriman: 'Paket Diterima Oleh Penerima', + } + }, + + updated_at: new Date() + } + , { new: true } + ); + // console.log(cek_pengiriman); + socket.emit('info_detail_paket', { + // id_pengirim: '62be1a1a97c4a38caea7a5d8', + id_pengiriman: id_pengiriman, + }) + + res.status(200).send({ message: 'Paket pengiriman berhasil diterima oleh Penerima', data: cek_pengiriman }); + } catch (error) { + res.status(500).send({ message: 'Internal Server Error', data: null }); + } }) diff --git a/server/routes/login_admin_router.js b/server/routes/login_admin_router.js new file mode 100644 index 0000000..40f47d1 --- /dev/null +++ b/server/routes/login_admin_router.js @@ -0,0 +1,91 @@ +//create express router +const express = require('express'); +const router = express.Router(); + + +var ironSession = require("iron-session/express").ironSession; +var session = ironSession({ + cookieName: "myapp_cookiename", + // password: process.env.SECRET_COOKIE_PASSWORD, + password: process.env.IRON_SESSION, + cookieOptions: { + secure: process.env.NODE_ENV === "production", + }, +}); + +const jwt = require('jsonwebtoken'); + +// crate get +router.get('/', session, async (req, res) => { + try { + const username = req.query.username; + const password = req.query.password; + + if(username != 'admin' && password != 'admin'){ + return res.status(401).send({ status: false, message: 'username or password is wrong' }) + } + + data = { + role :'admin', + ini : 'aran' + } + + // expired in 1 day + const accessToken = jwt.sign(data, process.env.ACCESS_TOKEN_SECRET , { expiresIn: '1d' }); + + + req.session.data = { + accessToken: accessToken, + role : "admin" + } + + await req.session.save(); + + return res.status(200).send({ status: true, message: 'login success' , accessToken: accessToken }) + + } catch (error) { + console.log(error); + res.status(500).send({ message: error.message }); + } +}) + +// create '/logout' get method +router.get('/logout', session, authenticateToken , async (req, res) => { + try{ + + console.log(req.session) + // req.session.destroy(); + return res.status(200).send({ status: true, message: 'logout success' }) + } + catch(error){ + console.log(error); + res.status(500).send({ message: error.message }); + } +}) + +// create '/' post +router.post('/', authenticateToken, async (req, res) => { + console.log(req.user); + res.status(200).send({ status: true, message: 'login success' , user: req.user }) +}) + +function authenticateToken(req,res,next){ + // console.log(req.session , " ini authenticate") + const authHeader = req.headers['authorization'] + const token = authHeader && authHeader.split(' ')[1] + if(token == null) return res.sendStatus(401) + req.session.destroy(); + + jwt.verify(token, process.env.ACCESS_TOKEN_SECRET, (err, user) => { + if(err) return res.sendStatus(403) + req.session.destroy(); + req.user = user + next() + }) +} + + + + + +module.exports = router; \ No newline at end of file diff --git a/server/routes/login_router.js b/server/routes/login_router.js index 15e567d..19948b2 100644 --- a/server/routes/login_router.js +++ b/server/routes/login_router.js @@ -11,6 +11,9 @@ const ktp_kurir_folder_id = process.env.KTP_KURIR_FOLDER_ID; const ktp_holding_kurir_folder_id = process.env.KTP_HOLDING_KURIR_FOLDER_ID; const kenderaan_kurir_folder_id = process.env.KENDERAAN_KURIR_FOLDER_ID; +const io = require("socket.io-client"); +const socket = io("http://localhost:3001/"); + // crate get router.get('/', async (req, res) => { console.log("ada request login"); @@ -50,7 +53,7 @@ router.get('/', async (req, res) => { // if user is not found if (!user) { res.status(400).send({ - status :false, + status: false, message: 'Username dan Password Salah', focus: 'username' }); @@ -98,14 +101,23 @@ router.post('/daftar1', async (req, res) => { console.log(isExist + "ini adalag evaluasi"); // console.log("ini untuk nik") if (isExist) { - let message = (isExist.status == 'Evaluasi') ? 'NIK telah terdaftar sebelumnya dan sekarang dalam evaluasi tim kami.\nTim kami akan mengirim ke email yang anda daftarkan sebelumnya untuk konfirmasi pendaftaran' : 'NIK Sudah Terdaftar dan sudah diaktifkan'; + let message; + + if (isExist.status == 'Evaluasi') { + message = 'NIK telah terdaftar sebelumnya dan sekarang dalam evaluasi tim kami.\nTim kami akan mengirim ke email yang anda daftarkan sebelumnya untuk konfirmasi pendaftaran'; + } else if (isExist.status == 'Ditolak') { + message = 'NIK ini telah ditolak.\nSilahkan coba NIK lain'; + } else if (isExist.status == 'Aktif') { + message = 'NIK sudah terdaftar sebelumnya'; + } + // let message = (isExist.status == 'Evaluasi') ? 'NIK telah terdaftar sebelumnya dan sekarang dalam evaluasi tim kami.\nTim kami akan mengirim ke email yang anda daftarkan sebelumnya untuk konfirmasi pendaftaran' : 'NIK Sudah Terdaftar dan sudah diaktifkan'; return res.status(400).send({ status: false, message: message, focus: 'nik' }); - + } // check if data.no_telp is exists @@ -113,7 +125,17 @@ router.post('/daftar1', async (req, res) => { // console.log(isExist2) // console.log("ini untuk no telpon") if (isExist2) { - let message = (isExist2.status == 'Evaluasi') ? 'No Telpon ini telah terdaftar sebelumnya dan sekarang dalam evaluasi tim kami.\n Jika anda pemilik no telpon ini, Tim kami akan mengirim ke email yang anda daftarkan sebelumnya untuk konfirmasi pendaftaran' : 'No Telpon Sudah Terdaftar dan sudah diaktifkan'; + let message; + + if (isExist2.status == 'Evaluasi') { + message = 'No Telpon telah terdaftar sebelumnya dan sekarang dalam evaluasi tim kami' + } else if (isExist2.status == 'Ditolak') { + message = 'No Telpon ini telah ditolak' + } else if (isExist2.status == 'Aktif') { + message = 'No Telpon sudah terdaftar sebelumnya' + } + + // let message = (isExist2.status == 'Evaluasi') ? 'No Telpon ini telah terdaftar sebelumnya dan sekarang dalam evaluasi tim kami.\n Jika anda pemilik no telpon ini, Tim kami akan mengirim ke email yang anda daftarkan sebelumnya untuk konfirmasi pendaftaran' : 'No Telpon Sudah Terdaftar dan sudah diaktifkan'; res.status(400).send({ status: false, message: message, @@ -127,7 +149,17 @@ router.post('/daftar1', async (req, res) => { // console.log(isExist3) // console.log("ini untuk email") if (isExist3) { - let message = (isExist3.status == 'Evaluasi') ? 'Email ini telah terdaftar sebelumnya dan sekarang dalam evaluasi tim kami.\nTim kami akan mengirim ke email ini yang anda daftarkan sebelumnya untuk konfirmasi pendaftaran' : 'Email Sudah Terdaftar dan sudah diaktifkan'; + let message; + + if (isExist3.status == 'Evaluasi') { + message = 'Email telah terdaftar sebelumnya dan sekarang dalam evaluasi tim kami' + } else if (isExist3.status == 'Ditolak') { + message = 'Email ini telah ditolak' + } else { + message = 'Email sudah terdaftar sebelumnya' + } + + // let message = (isExist3.status == 'Evaluasi') ? 'Email ini telah terdaftar sebelumnya dan sekarang dalam evaluasi tim kami.\nTim kami akan mengirim ke email ini yang anda daftarkan sebelumnya untuk konfirmasi pendaftaran' : 'Email Sudah Terdaftar dan sudah diaktifkan'; res.status(400).send({ status: false, message: message, @@ -146,18 +178,18 @@ router.post('/daftar1', async (req, res) => { return; } - + res.send({ status: true, message: 'Anda akan mendapat notifikasi di email anda dan juga no telpon jika admin menyetujui ataupun membatalkan pendaftaran anda' }); // console.log(data) let new_kurir = new kurirModel(data); - + let new_login = new loginUserModel(data); new_login._idnya = new_kurir._id; await new_kurir.save(); await new_login.save(); // console.log(new_kurir) // console.log(new_login) - + // add photo_url to new_kurir let id_photo = googlenya.uploadFile(new_kurir._id + ".jpg", req.files.photo.path, kurir_folder_id, "ini photo kurir"); @@ -180,7 +212,7 @@ router.post('/daftar1', async (req, res) => { const ktp_holding_url = `https://drive.google.com/uc?export=view&id=${await id_ktp_holding}` const kenderaan_url = `https://drive.google.com/uc?export=view&id=${await id_kenderaan}` - + // await kurirModel.findOneAndUpdate({ _id: new_kurir._id }, { // status: 'Aktif', // photo_url: photo_url, @@ -188,6 +220,8 @@ router.post('/daftar1', async (req, res) => { await kurirModel.findOneAndUpdate({ _id: new_kurir._id }, { photo_url: photo_url, ktp_url: ktp_url, ktp_holding_url: ktp_holding_url, kenderaan_url: kenderaan_url }); + socket.emit('tambah_verifikasi_kurir') + // const data = await kurirModel.findOne({ _id: new_kurir._id }); // console.log(data) @@ -261,6 +295,8 @@ router.post('/daftar1', async (req, res) => { await new_pengirim.save(); await new_login.save(); + socket.emit('tambah_verifikasi_pengirim') + } diff --git a/yarn.lock b/yarn.lock index e52d4a4..69ee960 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,166 @@ # yarn lockfile v1 +"@ampproject/remapping@^2.1.0": + "integrity" "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==" + "resolved" "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.18.6": + "integrity" "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==" + "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/compat-data@^7.18.6": + "integrity" "sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ==" + "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.6.tgz" + "version" "7.18.6" + +"@babel/core@^7.0.0", "@babel/core@^7.0.0-0": + "integrity" "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==" + "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.18.6" + "@babel/helper-compilation-targets" "^7.18.6" + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helpers" "^7.18.6" + "@babel/parser" "^7.18.6" + "@babel/template" "^7.18.6" + "@babel/traverse" "^7.18.6" + "@babel/types" "^7.18.6" + "convert-source-map" "^1.7.0" + "debug" "^4.1.0" + "gensync" "^1.0.0-beta.2" + "json5" "^2.2.1" + "semver" "^6.3.0" + +"@babel/generator@^7.18.6": + "integrity" "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==" + "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz" + "version" "7.18.7" + dependencies: + "@babel/types" "^7.18.7" + "@jridgewell/gen-mapping" "^0.3.2" + "jsesc" "^2.5.1" + +"@babel/helper-compilation-targets@^7.18.6": + "integrity" "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==" + "resolved" "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/compat-data" "^7.18.6" + "@babel/helper-validator-option" "^7.18.6" + "browserslist" "^4.20.2" + "semver" "^6.3.0" + +"@babel/helper-environment-visitor@^7.18.6": + "integrity" "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==" + "resolved" "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz" + "version" "7.18.6" + +"@babel/helper-function-name@^7.18.6": + "integrity" "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==" + "resolved" "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/template" "^7.18.6" + "@babel/types" "^7.18.6" + +"@babel/helper-hoist-variables@^7.18.6": + "integrity" "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==" + "resolved" "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.18.6": + "integrity" "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==" + "resolved" "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-module-transforms@^7.18.6": + "integrity" "sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw==" + "resolved" "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-environment-visitor" "^7.18.6" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.18.6" + "@babel/template" "^7.18.6" + "@babel/traverse" "^7.18.6" + "@babel/types" "^7.18.6" + +"@babel/helper-plugin-utils@^7.18.6": + "integrity" "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==" + "resolved" "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz" + "version" "7.18.6" + +"@babel/helper-simple-access@^7.18.6": + "integrity" "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==" + "resolved" "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-split-export-declaration@^7.18.6": + "integrity" "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==" + "resolved" "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-validator-identifier@^7.18.6": + "integrity" "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==" + "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz" + "version" "7.18.6" + +"@babel/helper-validator-option@^7.18.6": + "integrity" "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==" + "resolved" "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz" + "version" "7.18.6" + +"@babel/helpers@^7.18.6": + "integrity" "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==" + "resolved" "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/template" "^7.18.6" + "@babel/traverse" "^7.18.6" + "@babel/types" "^7.18.6" + +"@babel/highlight@^7.18.6": + "integrity" "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==" + "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + "chalk" "^2.0.0" + "js-tokens" "^4.0.0" + +"@babel/parser@^7.18.6": + "integrity" "sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw==" + "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.18.6.tgz" + "version" "7.18.6" + +"@babel/plugin-syntax-jsx@^7.12.13": + "integrity" "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/runtime-corejs3@^7.10.2": "integrity" "sha512-WxYHHUWF2uZ7Hp1K+D1xQgbgkGUfA+5UPOegEXGt2Y5SMog/rYCVaifLZDbw8UkNXozEqqrZTy6bglL7xTaCOw==" "resolved" "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.9.tgz" @@ -10,13 +170,147 @@ "core-js-pure" "^3.20.2" "regenerator-runtime" "^0.13.4" -"@babel/runtime@^7.10.2", "@babel/runtime@^7.16.3": +"@babel/runtime@^7.10.2", "@babel/runtime@^7.13.10", "@babel/runtime@^7.16.3", "@babel/runtime@^7.17.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.7": "integrity" "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==" "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz" "version" "7.17.9" dependencies: "regenerator-runtime" "^0.13.4" +"@babel/template@^7.18.6": + "integrity" "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==" + "resolved" "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.18.6" + "@babel/types" "^7.18.6" + +"@babel/traverse@^7.18.6": + "integrity" "sha512-zS/OKyqmD7lslOtFqbscH6gMLFYOfG1YPqCKfAW5KrTeolKqvB8UelR49Fpr6y93kYkW2Ik00mT1LOGiAGvizw==" + "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.6.tgz" + "version" "7.18.6" + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.6" + "@babel/helper-function-name" "^7.18.6" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.18.6" + "@babel/types" "^7.18.6" + "debug" "^4.1.0" + "globals" "^11.1.0" + +"@babel/types@^7.18.6", "@babel/types@^7.18.7": + "integrity" "sha512-QG3yxTcTIBoAcQmkCs+wAPYZhu7Dk9rXKacINfNbdJDNERTbLQbHGyVG8q/YGMPeCJRIhSY0+fTc5+xuh6WPSQ==" + "resolved" "https://registry.npmjs.org/@babel/types/-/types-7.18.7.tgz" + "version" "7.18.7" + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + "to-fast-properties" "^2.0.0" + +"@emotion/babel-plugin@^11.7.1": + "integrity" "sha512-Pr/7HGH6H6yKgnVFNEj2MVlreu3ADqftqjqwUvDy/OJzKFgxKeTQ+eeUf20FOTuHVkDON2iNa25rAXVYtWJCjw==" + "resolved" "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.9.2.tgz" + "version" "11.9.2" + dependencies: + "@babel/helper-module-imports" "^7.12.13" + "@babel/plugin-syntax-jsx" "^7.12.13" + "@babel/runtime" "^7.13.10" + "@emotion/hash" "^0.8.0" + "@emotion/memoize" "^0.7.5" + "@emotion/serialize" "^1.0.2" + "babel-plugin-macros" "^2.6.1" + "convert-source-map" "^1.5.0" + "escape-string-regexp" "^4.0.0" + "find-root" "^1.1.0" + "source-map" "^0.5.7" + "stylis" "4.0.13" + +"@emotion/cache@^11.9.3": + "integrity" "sha512-0dgkI/JKlCXa+lEXviaMtGBL0ynpx4osh7rjOXE71q9bIF8G+XhJgvi+wDu0B0IdCVx37BffiwXlN9I3UuzFvg==" + "resolved" "https://registry.npmjs.org/@emotion/cache/-/cache-11.9.3.tgz" + "version" "11.9.3" + dependencies: + "@emotion/memoize" "^0.7.4" + "@emotion/sheet" "^1.1.1" + "@emotion/utils" "^1.0.0" + "@emotion/weak-memoize" "^0.2.5" + "stylis" "4.0.13" + +"@emotion/hash@^0.8.0": + "integrity" "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + "resolved" "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz" + "version" "0.8.0" + +"@emotion/is-prop-valid@^1.1.3": + "integrity" "sha512-RFg04p6C+1uO19uG8N+vqanzKqiM9eeV1LDOG3bmkYmuOj7NbKNlFC/4EZq5gnwAIlcC/jOT24f8Td0iax2SXA==" + "resolved" "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.1.3.tgz" + "version" "1.1.3" + dependencies: + "@emotion/memoize" "^0.7.4" + +"@emotion/memoize@^0.7.4", "@emotion/memoize@^0.7.5": + "integrity" "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==" + "resolved" "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz" + "version" "0.7.5" + +"@emotion/react@^11.0.0-rc.0", "@emotion/react@^11.4.1", "@emotion/react@^11.5.0", "@emotion/react@^11.9.3": + "integrity" "sha512-g9Q1GcTOlzOEjqwuLF/Zd9LC+4FljjPjDfxSM7KmEakm+hsHXk+bYZ2q+/hTJzr0OUNkujo72pXLQvXj6H+GJQ==" + "resolved" "https://registry.npmjs.org/@emotion/react/-/react-11.9.3.tgz" + "version" "11.9.3" + dependencies: + "@babel/runtime" "^7.13.10" + "@emotion/babel-plugin" "^11.7.1" + "@emotion/cache" "^11.9.3" + "@emotion/serialize" "^1.0.4" + "@emotion/utils" "^1.1.0" + "@emotion/weak-memoize" "^0.2.5" + "hoist-non-react-statics" "^3.3.1" + +"@emotion/serialize@^1.0.2", "@emotion/serialize@^1.0.4": + "integrity" "sha512-1JHamSpH8PIfFwAMryO2bNka+y8+KA5yga5Ocf2d7ZEiJjb7xlLW7aknBGZqJLajuLOvJ+72vN+IBSwPlXD1Pg==" + "resolved" "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "@emotion/hash" "^0.8.0" + "@emotion/memoize" "^0.7.4" + "@emotion/unitless" "^0.7.5" + "@emotion/utils" "^1.0.0" + "csstype" "^3.0.2" + +"@emotion/sheet@^1.1.1": + "integrity" "sha512-J3YPccVRMiTZxYAY0IOq3kd+hUP8idY8Kz6B/Cyo+JuXq52Ek+zbPbSQUrVQp95aJ+lsAW7DPL1P2Z+U1jGkKA==" + "resolved" "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.1.1.tgz" + "version" "1.1.1" + +"@emotion/styled@^11.3.0", "@emotion/styled@^11.9.3": + "integrity" "sha512-o3sBNwbtoVz9v7WB1/Y/AmXl69YHmei2mrVnK7JgyBJ//Rst5yqPZCecEJlMlJrFeWHp+ki/54uN265V2pEcXA==" + "resolved" "https://registry.npmjs.org/@emotion/styled/-/styled-11.9.3.tgz" + "version" "11.9.3" + dependencies: + "@babel/runtime" "^7.13.10" + "@emotion/babel-plugin" "^11.7.1" + "@emotion/is-prop-valid" "^1.1.3" + "@emotion/serialize" "^1.0.4" + "@emotion/utils" "^1.1.0" + +"@emotion/unitless@^0.7.5": + "integrity" "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + "resolved" "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz" + "version" "0.7.5" + +"@emotion/utils@^1.0.0", "@emotion/utils@^1.1.0": + "integrity" "sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==" + "resolved" "https://registry.npmjs.org/@emotion/utils/-/utils-1.1.0.tgz" + "version" "1.1.0" + +"@emotion/weak-memoize@^0.2.5": + "integrity" "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" + "resolved" "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz" + "version" "0.2.5" + "@eslint/eslintrc@^1.2.1": "integrity" "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==" "resolved" "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz" @@ -32,6 +326,48 @@ "minimatch" "^3.0.4" "strip-json-comments" "^3.1.1" +"@hapi/b64@5.x.x": + "integrity" "sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw==" + "resolved" "https://registry.npmjs.org/@hapi/b64/-/b64-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "@hapi/hoek" "9.x.x" + +"@hapi/boom@9.x.x": + "integrity" "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==" + "resolved" "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz" + "version" "9.1.4" + dependencies: + "@hapi/hoek" "9.x.x" + +"@hapi/bourne@2.x.x": + "integrity" "sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q==" + "resolved" "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.1.0.tgz" + "version" "2.1.0" + +"@hapi/cryptiles@5.x.x": + "integrity" "sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA==" + "resolved" "https://registry.npmjs.org/@hapi/cryptiles/-/cryptiles-5.1.0.tgz" + "version" "5.1.0" + dependencies: + "@hapi/boom" "9.x.x" + +"@hapi/hoek@9.x.x": + "integrity" "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + "resolved" "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz" + "version" "9.3.0" + +"@hapi/iron@^6.0.0": + "integrity" "sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw==" + "resolved" "https://registry.npmjs.org/@hapi/iron/-/iron-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "@hapi/b64" "5.x.x" + "@hapi/boom" "9.x.x" + "@hapi/bourne" "2.x.x" + "@hapi/cryptiles" "5.x.x" + "@hapi/hoek" "9.x.x" + "@humanwhocodes/config-array@^0.9.2": "integrity" "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==" "resolved" "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz" @@ -46,6 +382,133 @@ "resolved" "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" "version" "1.2.1" +"@jridgewell/gen-mapping@^0.1.0": + "integrity" "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==" + "resolved" "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz" + "version" "0.1.1" + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/gen-mapping@^0.3.2": + "integrity" "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==" + "resolved" "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz" + "version" "0.3.2" + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@^3.0.3": + "integrity" "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + "resolved" "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" + "version" "3.1.0" + +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": + "integrity" "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" + "resolved" "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" + "version" "1.1.2" + +"@jridgewell/sourcemap-codec@^1.4.10": + "integrity" "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + "resolved" "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" + "version" "1.4.14" + +"@jridgewell/trace-mapping@^0.3.9": + "integrity" "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==" + "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz" + "version" "0.3.14" + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@mui/base@5.0.0-alpha.88": + "integrity" "sha512-uL7ej2F/3GUnZewsDQSHUVHoSBT3AQcTIdfdy6QeCHy7X26mtbcIvTRcjl2PzbbNQplppavSTibPiQG/giJ+ng==" + "resolved" "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.88.tgz" + "version" "5.0.0-alpha.88" + dependencies: + "@babel/runtime" "^7.17.2" + "@emotion/is-prop-valid" "^1.1.3" + "@mui/types" "^7.1.4" + "@mui/utils" "^5.8.6" + "@popperjs/core" "^2.11.5" + "clsx" "^1.2.0" + "prop-types" "^15.8.1" + "react-is" "^17.0.2" + +"@mui/icons-material@^5.8.4": + "integrity" "sha512-9Z/vyj2szvEhGWDvb+gG875bOGm8b8rlHBKOD1+nA3PcgC3fV6W1AU6pfOorPeBfH2X4mb9Boe97vHvaSndQvA==" + "resolved" "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.8.4.tgz" + "version" "5.8.4" + dependencies: + "@babel/runtime" "^7.17.2" + +"@mui/material@^5.0.0", "@mui/material@^5.8.7": + "integrity" "sha512-Oo62UhrgEi+BMLr3nUEASJgScE2/hhq14CbBUmrVV3GQlEGtqMZsy26Vb0AqEmphFeN3TXlsbM9aeW5yq8ZFlw==" + "resolved" "https://registry.npmjs.org/@mui/material/-/material-5.8.7.tgz" + "version" "5.8.7" + dependencies: + "@babel/runtime" "^7.17.2" + "@mui/base" "5.0.0-alpha.88" + "@mui/system" "^5.8.7" + "@mui/types" "^7.1.4" + "@mui/utils" "^5.8.6" + "@types/react-transition-group" "^4.4.5" + "clsx" "^1.2.0" + "csstype" "^3.1.0" + "prop-types" "^15.8.1" + "react-is" "^17.0.2" + "react-transition-group" "^4.4.2" + +"@mui/private-theming@^5.8.6": + "integrity" "sha512-yHsJk1qU9r/q0DlnxGRJPHyM0Y/nUv8FTNgDTiI9I58GWuVuZqeTUr7JRvPh6ybeP/FLtW5eXEavRK9wxVk4uQ==" + "resolved" "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.8.6.tgz" + "version" "5.8.6" + dependencies: + "@babel/runtime" "^7.17.2" + "@mui/utils" "^5.8.6" + "prop-types" "^15.8.1" + +"@mui/styled-engine@^5.8.7": + "integrity" "sha512-tVqtowjbYmiRq+qcqXK731L9eWoL9H8xTRhuTgaDGKdch1zlt4I2UwInUe1w2N9N/u3/jHsFbLcl1Un3uOwpQg==" + "resolved" "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.8.7.tgz" + "version" "5.8.7" + dependencies: + "@babel/runtime" "^7.17.2" + "@emotion/cache" "^11.9.3" + "csstype" "^3.1.0" + "prop-types" "^15.8.1" + +"@mui/system@^5.8.7": + "integrity" "sha512-yFoFbfO42FWeSUDrFPixYjpqySQMqVMOSbSlAxiKnwFpvXGGn/bkfQTboCRNO31fvES29FJLQd4mwwMHd5mXng==" + "resolved" "https://registry.npmjs.org/@mui/system/-/system-5.8.7.tgz" + "version" "5.8.7" + dependencies: + "@babel/runtime" "^7.17.2" + "@mui/private-theming" "^5.8.6" + "@mui/styled-engine" "^5.8.7" + "@mui/types" "^7.1.4" + "@mui/utils" "^5.8.6" + "clsx" "^1.2.0" + "csstype" "^3.1.0" + "prop-types" "^15.8.1" + +"@mui/types@^7.1.4": + "integrity" "sha512-uveM3byMbthO+6tXZ1n2zm0W3uJCQYtwt/v5zV5I77v2v18u0ITkb8xwhsDD2i3V2Kye7SaNR6FFJ6lMuY/WqQ==" + "resolved" "https://registry.npmjs.org/@mui/types/-/types-7.1.4.tgz" + "version" "7.1.4" + +"@mui/utils@^5.8.6": + "integrity" "sha512-QM2Sd1xZo2jOt2Vz5Rmro+pi2FLJyiv4+OjxkUwXR3oUM65KSMAMLl/KNYU55s3W3DLRFP5MVwE4FhAbHseHAg==" + "resolved" "https://registry.npmjs.org/@mui/utils/-/utils-5.8.6.tgz" + "version" "5.8.6" + dependencies: + "@babel/runtime" "^7.17.2" + "@types/prop-types" "^15.7.5" + "@types/react-is" "^16.7.1 || ^17.0.0" + "prop-types" "^15.8.1" + "react-is" "^17.0.2" + "@next/env@12.1.5": "integrity" "sha512-+34yUJslfJi7Lyx6ELuN8nWcOzi27izfYnZIC1Dqv7kmmfiBVxgzR3BXhlvEMTKC2IRJhXVs2FkMY+buQe3k7Q==" "resolved" "https://registry.npmjs.org/@next/env/-/env-12.1.5.tgz" @@ -84,6 +547,11 @@ "@nodelib/fs.scandir" "2.1.5" "fastq" "^1.6.0" +"@popperjs/core@^2.11.5": + "integrity" "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==" + "resolved" "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz" + "version" "2.11.5" + "@rushstack/eslint-patch@1.0.8": "integrity" "sha512-ZK5v4bJwgXldAUA8r3q9YKfCwOqoHTK/ZqRjSeRXQrBXWouoPnS4MQtgC4AXGiiBuUu5wxrRgTlv0ktmM4P1Aw==" "resolved" "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.0.8.tgz" @@ -106,31 +574,136 @@ dependencies: "defer-to-connect" "^1.0.1" +"@types/body-parser@*": + "integrity" "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==" + "resolved" "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz" + "version" "1.19.2" + dependencies: + "@types/connect" "*" + "@types/node" "*" + "@types/component-emitter@^1.2.10": "integrity" "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==" "resolved" "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz" "version" "1.2.11" +"@types/connect@*": + "integrity" "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==" + "resolved" "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz" + "version" "3.4.35" + dependencies: + "@types/node" "*" + "@types/cookie@^0.4.1": "integrity" "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" "resolved" "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz" "version" "0.4.1" +"@types/cookie@^0.5.1": + "integrity" "sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==" + "resolved" "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.1.tgz" + "version" "0.5.1" + "@types/cors@^2.8.12": "integrity" "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" "resolved" "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz" "version" "2.8.12" +"@types/express-serve-static-core@^4.17.18": + "integrity" "sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==" + "resolved" "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz" + "version" "4.17.29" + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express@^4.17.13": + "integrity" "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==" + "resolved" "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz" + "version" "4.17.13" + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.18" + "@types/qs" "*" + "@types/serve-static" "*" + "@types/json5@^0.0.29": "integrity" "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" "resolved" "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" "version" "0.0.29" +"@types/mime@^1": + "integrity" "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + "resolved" "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz" + "version" "1.3.2" + "@types/node@*", "@types/node@>=10.0.0": "integrity" "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==" "resolved" "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz" "version" "17.0.23" +"@types/node@^16.11.7": + "integrity" "sha512-GqWykok+3uocgfAJM8imbozrqLnPyTrpFlrryURQlw1EesPUCx5XxTiucWDSFF9/NUEXDuD4bnvHm8xfVGWTpQ==" + "resolved" "https://registry.npmjs.org/@types/node/-/node-16.11.43.tgz" + "version" "16.11.43" + +"@types/parse-json@^4.0.0": + "integrity" "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + "resolved" "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz" + "version" "4.0.0" + +"@types/prop-types@*", "@types/prop-types@^15.7.5": + "integrity" "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + "resolved" "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz" + "version" "15.7.5" + +"@types/qs@*": + "integrity" "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + "resolved" "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz" + "version" "6.9.7" + +"@types/range-parser@*": + "integrity" "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + "resolved" "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz" + "version" "1.2.4" + +"@types/react-is@^16.7.1 || ^17.0.0": + "integrity" "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==" + "resolved" "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.3.tgz" + "version" "17.0.3" + dependencies: + "@types/react" "*" + +"@types/react-transition-group@^4.4.5": + "integrity" "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==" + "resolved" "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz" + "version" "4.4.5" + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@^17.0.0 || ^18.0.0": + "integrity" "sha512-iz3BtLuIYH1uWdsv6wXYdhozhqj20oD4/Hk2DNXIn1kFsmp9x8d9QB6FnPhfkbhd2PgEONt9Q1x/ebkwjfFLow==" + "resolved" "https://registry.npmjs.org/@types/react/-/react-18.0.15.tgz" + "version" "18.0.15" + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + "csstype" "^3.0.2" + +"@types/scheduler@*": + "integrity" "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + "resolved" "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz" + "version" "0.16.2" + +"@types/serve-static@*": + "integrity" "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==" + "resolved" "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz" + "version" "1.13.10" + dependencies: + "@types/mime" "^1" + "@types/node" "*" + "@types/webidl-conversions@*": "integrity" "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q==" "resolved" "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz" @@ -247,6 +820,13 @@ "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" "version" "5.0.1" +"ansi-styles@^3.2.1": + "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + "version" "3.2.1" + dependencies: + "color-convert" "^1.9.0" + "ansi-styles@^4.0.0", "ansi-styles@^4.1.0": "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" @@ -341,6 +921,15 @@ "resolved" "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz" "version" "2.2.0" +"babel-plugin-macros@^2.6.1": + "integrity" "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==" + "resolved" "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz" + "version" "2.8.0" + dependencies: + "@babel/runtime" "^7.7.2" + "cosmiconfig" "^6.0.0" + "resolve" "^1.12.0" + "balanced-match@^1.0.0": "integrity" "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" @@ -411,6 +1000,16 @@ dependencies: "fill-range" "^7.0.1" +"browserslist@^4.20.2", "browserslist@>= 4.21.0": + "integrity" "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==" + "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz" + "version" "4.21.1" + dependencies: + "caniuse-lite" "^1.0.30001359" + "electron-to-chromium" "^1.4.172" + "node-releases" "^2.0.5" + "update-browserslist-db" "^1.0.4" + "bson@^4.2.2", "bson@^4.6.1": "integrity" "sha512-VeJKHShcu1b/ugl0QiujlVuBepab714X9nNyBdA1kfekuDGecxgpTA2Z6nYbagrWFeiIyzSWIOzju3lhj+RNyQ==" "resolved" "https://registry.npmjs.org/bson/-/bson-4.6.2.tgz" @@ -467,10 +1066,19 @@ "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" "version" "6.3.0" -"caniuse-lite@^1.0.30001283": - "integrity" "sha512-Y1xk6paHpUXKP/P6YjQv1xqyTbgAP05ycHBcRdQjTcyXlWol868sJJPlmk5ylOekw2BrucWes5jk+LvVd7WZ5Q==" - "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001331.tgz" - "version" "1.0.30001331" +"caniuse-lite@^1.0.30001283", "caniuse-lite@^1.0.30001359": + "integrity" "sha512-HpQhpzTGGPVMnCjIomjt+jvyUu8vNFo3TaDiZ/RcoTrlOq/5+tC8zHdsbgFB6MxmaY+jCpsH09aD80Bb4Ow3Sg==" + "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001363.tgz" + "version" "1.0.30001363" + +"chalk@^2.0.0": + "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + "version" "2.4.2" + dependencies: + "ansi-styles" "^3.2.1" + "escape-string-regexp" "^1.0.5" + "supports-color" "^5.3.0" "chalk@^4.0.0", "chalk@^4.1.0": "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" @@ -517,6 +1125,18 @@ dependencies: "mimic-response" "^1.0.0" +"clsx@^1.1.1", "clsx@^1.2.0": + "integrity" "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==" + "resolved" "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz" + "version" "1.2.1" + +"color-convert@^1.9.0": + "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" + "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + "version" "1.9.3" + dependencies: + "color-name" "1.1.3" + "color-convert@^2.0.1": "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" @@ -529,6 +1149,11 @@ "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" "version" "1.1.4" +"color-name@1.1.3": + "integrity" "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + "version" "1.1.3" + "component-emitter@~1.3.0": "integrity" "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" "resolved" "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" @@ -574,11 +1199,23 @@ "resolved" "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" "version" "1.0.4" +"convert-source-map@^1.5.0", "convert-source-map@^1.7.0": + "integrity" "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==" + "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz" + "version" "1.8.0" + dependencies: + "safe-buffer" "~5.1.1" + "cookie-signature@1.0.6": "integrity" "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" "resolved" "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" "version" "1.0.6" +"cookie@^0.5.0": + "integrity" "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + "resolved" "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" + "version" "0.5.0" + "cookie@~0.4.1", "cookie@0.4.2": "integrity" "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" "resolved" "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" @@ -597,6 +1234,17 @@ "object-assign" "^4" "vary" "^1" +"cosmiconfig@^6.0.0": + "integrity" "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==" + "resolved" "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz" + "version" "6.0.0" + 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" + "cross-spawn@^7.0.2": "integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==" "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" @@ -616,6 +1264,11 @@ "resolved" "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz" "version" "2.0.0" +"csstype@^3.0.2", "csstype@^3.1.0": + "integrity" "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" + "resolved" "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz" + "version" "3.1.0" + "damerau-levenshtein@^1.0.7": "integrity" "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" "resolved" "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz" @@ -635,7 +1288,7 @@ dependencies: "ms" "^2.1.1" -"debug@^4.1.1", "debug@^4.3.2", "debug@~4.3.1", "debug@~4.3.2", "debug@4", "debug@4.x": +"debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.2", "debug@~4.3.1", "debug@~4.3.2", "debug@4", "debug@4.x": "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==" "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" "version" "4.3.4" @@ -714,6 +1367,14 @@ dependencies: "esutils" "^2.0.2" +"dom-helpers@^5.0.1": + "integrity" "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==" + "resolved" "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz" + "version" "5.2.1" + dependencies: + "@babel/runtime" "^7.8.7" + "csstype" "^3.0.2" + "dot-prop@^5.2.0": "integrity" "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==" "resolved" "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz" @@ -743,6 +1404,11 @@ "resolved" "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" "version" "1.1.1" +"electron-to-chromium@^1.4.172": + "integrity" "sha512-7at5ash3FD9U5gPa3/wPr6OdiZd/zBjvDZaaHBpcqFOFUhZiWnb7stkqk8xUFL9H9nk7Yok5vCCNK8wyC/+f8A==" + "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.180.tgz" + "version" "1.4.180" + "emoji-regex@^8.0.0": "integrity" "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" @@ -797,6 +1463,13 @@ "engine.io-parser" "~5.0.3" "ws" "~8.2.3" +"error-ex@^1.3.1": + "integrity" "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==" + "resolved" "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + "version" "1.3.2" + dependencies: + "is-arrayish" "^0.2.1" + "es-abstract@^1.19.1", "es-abstract@^1.19.2": "integrity" "sha512-flV8e5g9/xulChMG48Fygk1ptpo4lQRJ0eJYtxJFgi7pklLx7EFcOJ34jnvr8pbWlaFN/AT1cZpe0hiFel9Hqg==" "resolved" "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.4.tgz" @@ -839,6 +1512,11 @@ "is-date-object" "^1.0.1" "is-symbol" "^1.0.2" +"escalade@^3.1.1": + "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + "version" "3.1.1" + "escape-goat@^2.0.0": "integrity" "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" "resolved" "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz" @@ -849,6 +1527,11 @@ "resolved" "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" "version" "1.0.3" +"escape-string-regexp@^1.0.5": + "integrity" "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + "version" "1.0.5" + "escape-string-regexp@^4.0.0": "integrity" "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" @@ -1083,7 +1766,7 @@ "connect-multiparty" "^2.2.0" "fs-extra" "^9.1.0" -"express@^4.17.3": +"express@^4.17.3", "express@>=4": "integrity" "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==" "resolved" "https://registry.npmjs.org/express/-/express-4.17.3.tgz" "version" "4.17.3" @@ -1189,6 +1872,11 @@ "statuses" "~1.5.0" "unpipe" "~1.0.0" +"find-root@^1.1.0": + "integrity" "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + "resolved" "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz" + "version" "1.1.0" + "find-up@^2.1.0": "integrity" "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=" "resolved" "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" @@ -1263,6 +1951,11 @@ "gaxios" "^4.0.0" "json-bigint" "^1.0.0" +"gensync@^1.0.0-beta.2": + "integrity" "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + "resolved" "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + "version" "1.0.0-beta.2" + "get-intrinsic@^1.0.2", "get-intrinsic@^1.1.0", "get-intrinsic@^1.1.1": "integrity" "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==" "resolved" "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" @@ -1334,6 +2027,11 @@ dependencies: "ini" "2.0.0" +"globals@^11.1.0": + "integrity" "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + "resolved" "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + "version" "11.12.0" + "globals@^13.6.0", "globals@^13.9.0": "integrity" "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==" "resolved" "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz" @@ -1432,7 +2130,7 @@ "version" "1.0.1" "has-flag@^3.0.0": - "integrity" "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "integrity" "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" "version" "3.0.0" @@ -1465,6 +2163,13 @@ dependencies: "function-bind" "^1.1.1" +"hoist-non-react-statics@^3.3.1": + "integrity" "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==" + "resolved" "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz" + "version" "3.3.2" + dependencies: + "react-is" "^16.7.0" + "http-cache-semantics@^4.0.0": "integrity" "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" "resolved" "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" @@ -1522,7 +2227,7 @@ "resolved" "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz" "version" "5.2.0" -"import-fresh@^3.0.0", "import-fresh@^3.2.1": +"import-fresh@^3.0.0", "import-fresh@^3.1.0", "import-fresh@^3.2.1": "integrity" "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==" "resolved" "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" "version" "3.3.0" @@ -1582,6 +2287,22 @@ "resolved" "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" "version" "1.9.1" +"iron-session@^6.1.3": + "integrity" "sha512-o5ErwzAtTBKPtxo4nDmxOZAjK4Stku//5sFM0vac3/Px34530gTwnXoa8zwsC4/koqCtKY0yC0KF/1K+ZMGuHA==" + "resolved" "https://registry.npmjs.org/iron-session/-/iron-session-6.1.3.tgz" + "version" "6.1.3" + dependencies: + "@hapi/iron" "^6.0.0" + "@types/cookie" "^0.5.1" + "@types/express" "^4.17.13" + "@types/node" "^16.11.7" + "cookie" "^0.5.0" + +"is-arrayish@^0.2.1": + "integrity" "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + "version" "0.2.1" + "is-bigint@^1.0.1": "integrity" "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==" "resolved" "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" @@ -1748,7 +2469,7 @@ "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" "version" "2.0.0" -"js-tokens@^3.0.0 || ^4.0.0": +"js-tokens@^3.0.0 || ^4.0.0", "js-tokens@^4.0.0": "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" "version" "4.0.0" @@ -1760,6 +2481,11 @@ dependencies: "argparse" "^2.0.1" +"jsesc@^2.5.1": + "integrity" "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + "version" "2.5.2" + "json-bigint@^1.0.0": "integrity" "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==" "resolved" "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz" @@ -1772,6 +2498,11 @@ "resolved" "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" "version" "3.0.0" +"json-parse-even-better-errors@^2.3.0": + "integrity" "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "resolved" "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" + "version" "2.3.1" + "json-schema-traverse@^0.4.1": "integrity" "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" @@ -1789,6 +2520,11 @@ dependencies: "minimist" "^1.2.0" +"json5@^2.2.1": + "integrity" "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" + "resolved" "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz" + "version" "2.2.1" + "jsonfile@^6.0.1": "integrity" "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==" "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" @@ -1798,6 +2534,22 @@ optionalDependencies: "graceful-fs" "^4.1.6" +"jsonwebtoken@^8.5.1": + "integrity" "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==" + "resolved" "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz" + "version" "8.5.1" + dependencies: + "jws" "^3.2.2" + "lodash.includes" "^4.3.0" + "lodash.isboolean" "^3.0.3" + "lodash.isinteger" "^4.0.4" + "lodash.isnumber" "^3.0.3" + "lodash.isplainobject" "^4.0.6" + "lodash.isstring" "^4.0.1" + "lodash.once" "^4.0.0" + "ms" "^2.1.1" + "semver" "^5.6.0" + "jsx-ast-utils@^2.4.1 || ^3.0.0", "jsx-ast-utils@^3.2.1": "integrity" "sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw==" "resolved" "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.2.tgz" @@ -1806,6 +2558,15 @@ "array-includes" "^3.1.4" "object.assign" "^4.1.2" +"jwa@^1.4.1": + "integrity" "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==" + "resolved" "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz" + "version" "1.4.1" + dependencies: + "buffer-equal-constant-time" "1.0.1" + "ecdsa-sig-formatter" "1.0.11" + "safe-buffer" "^5.0.1" + "jwa@^2.0.0": "integrity" "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==" "resolved" "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz" @@ -1815,6 +2576,14 @@ "ecdsa-sig-formatter" "1.0.11" "safe-buffer" "^5.0.1" +"jws@^3.2.2": + "integrity" "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==" + "resolved" "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz" + "version" "3.2.2" + dependencies: + "jwa" "^1.4.1" + "safe-buffer" "^5.0.1" + "jws@^4.0.0": "integrity" "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==" "resolved" "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz" @@ -1862,6 +2631,11 @@ "prelude-ls" "^1.2.1" "type-check" "~0.4.0" +"lines-and-columns@^1.1.6": + "integrity" "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + "resolved" "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" + "version" "1.2.4" + "locate-path@^2.0.0": "integrity" "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=" "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" @@ -1870,11 +2644,46 @@ "p-locate" "^2.0.0" "path-exists" "^3.0.0" +"lodash.includes@^4.3.0": + "integrity" "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + "resolved" "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz" + "version" "4.3.0" + +"lodash.isboolean@^3.0.3": + "integrity" "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + "resolved" "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz" + "version" "3.0.3" + +"lodash.isinteger@^4.0.4": + "integrity" "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + "resolved" "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz" + "version" "4.0.4" + +"lodash.isnumber@^3.0.3": + "integrity" "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + "resolved" "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz" + "version" "3.0.3" + +"lodash.isplainobject@^4.0.6": + "integrity" "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + "resolved" "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz" + "version" "4.0.6" + +"lodash.isstring@^4.0.1": + "integrity" "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + "resolved" "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz" + "version" "4.0.1" + "lodash.merge@^4.6.2": "integrity" "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" "resolved" "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" "version" "4.6.2" +"lodash.once@^4.0.0": + "integrity" "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + "resolved" "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz" + "version" "4.1.1" + "loose-envify@^1.1.0", "loose-envify@^1.4.0": "integrity" "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==" "resolved" "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" @@ -2066,7 +2875,7 @@ "resolved" "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" "version" "0.6.3" -"next@>=10.2.0", "next@12.1.5": +"next@>= 6.0.0", "next@>=10", "next@>=10.2.0", "next@12.1.5": "integrity" "sha512-YGHDpyfgCfnT5GZObsKepmRnne7Kzp7nGrac07dikhutWQug7hHg85/+sPJ4ZW5Q2pDkb+n0FnmLkmd44htIJQ==" "resolved" "https://registry.npmjs.org/next/-/next-12.1.5.tgz" "version" "12.1.5" @@ -2089,6 +2898,14 @@ "@next/swc-win32-ia32-msvc" "12.1.5" "@next/swc-win32-x64-msvc" "12.1.5" +"nextjs-progressbar@^0.0.14": + "integrity" "sha512-AXYXHDN6M52AwFnGqH/vlwyo0gbC9zM7QS/4ryOTI0RUqfze5FJl8uSrxKJMzK6hGFdDeQXcZoWsLGXeCVtTwg==" + "resolved" "https://registry.npmjs.org/nextjs-progressbar/-/nextjs-progressbar-0.0.14.tgz" + "version" "0.0.14" + dependencies: + "nprogress" "^0.2.0" + "prop-types" "^15.7.2" + "node-fetch@^2.6.7": "integrity" "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==" "resolved" "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz" @@ -2101,6 +2918,11 @@ "resolved" "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz" "version" "1.3.1" +"node-releases@^2.0.5": + "integrity" "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==" + "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz" + "version" "2.0.5" + "nodemon@^2.0.15": "integrity" "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==" "resolved" "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz" @@ -2134,6 +2956,11 @@ "resolved" "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz" "version" "4.5.1" +"nprogress@^0.2.0": + "integrity" "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" + "resolved" "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz" + "version" "0.2.0" + "object-assign@^4", "object-assign@^4.1.1": "integrity" "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" @@ -2261,6 +3088,16 @@ dependencies: "callsites" "^3.0.0" +"parse-json@^5.0.0": + "integrity" "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==" + "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" + "version" "5.2.0" + 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" + "parseurl@~1.3.3": "integrity" "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" "resolved" "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" @@ -2325,7 +3162,7 @@ "resolved" "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" "version" "2.0.0" -"prop-types@^15.8.1": +"prop-types@^15.6.2", "prop-types@^15.7.2", "prop-types@^15.8.1": "integrity" "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==" "resolved" "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" "version" "15.8.1" @@ -2412,7 +3249,7 @@ "minimist" "^1.2.0" "strip-json-comments" "~2.0.1" -"react-dom@^17.0.2 || ^18.0.0-0", "react-dom@18.0.0": +"react-dom@^17.0.0 || ^18.0.0", "react-dom@^17.0.2 || ^18.0.0-0", "react-dom@^18.0.0", "react-dom@>=16", "react-dom@>=16.6.0", "react-dom@18.0.0": "integrity" "sha512-XqX7uzmFo0pUceWFCt7Gff6IyIMzFUn7QMZrbrQfGxtaxXZIcGQzoNpRLE3fQLnS4XzLLPMZX2T9TRcSrasicw==" "resolved" "https://registry.npmjs.org/react-dom/-/react-dom-18.0.0.tgz" "version" "18.0.0" @@ -2420,12 +3257,34 @@ "loose-envify" "^1.1.0" "scheduler" "^0.21.0" -"react-is@^16.13.1": +"react-is@^16.13.1", "react-is@^16.7.0": "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" "version" "16.13.1" -"react@^17.0.2 || ^18.0.0-0", "react@^18.0.0", "react@>= 16.8.0 || 17.x.x || ^18.0.0-0", "react@18.0.0": +"react-is@^17.0.2": + "integrity" "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + "resolved" "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" + "version" "17.0.2" + +"react-toastify@^9.0.5": + "integrity" "sha512-dszPCeQINY+Nm6HmsiAXT/7wsazPqv0S/RuhIYLAW+fTKcd3T1iRjZG0XqrN9nvAzqaE5J6uxMaiBrOevxjY8g==" + "resolved" "https://registry.npmjs.org/react-toastify/-/react-toastify-9.0.5.tgz" + "version" "9.0.5" + dependencies: + "clsx" "^1.1.1" + +"react-transition-group@^4.4.2": + "integrity" "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==" + "resolved" "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz" + "version" "4.4.2" + dependencies: + "@babel/runtime" "^7.5.5" + "dom-helpers" "^5.0.1" + "loose-envify" "^1.4.0" + "prop-types" "^15.6.2" + +"react@^17.0.0 || ^18.0.0", "react@^17.0.2 || ^18.0.0-0", "react@^18.0.0", "react@>= 16.0.0", "react@>= 16.8.0 || 17.x.x || ^18.0.0-0", "react@>=16", "react@>=16.6.0", "react@>=16.8.0", "react@18.0.0": "integrity" "sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A==" "resolved" "https://registry.npmjs.org/react/-/react-18.0.0.tgz" "version" "18.0.0" @@ -2476,7 +3335,7 @@ "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" "version" "4.0.0" -"resolve@^1.13.1", "resolve@^1.17.0", "resolve@^1.20.0": +"resolve@^1.12.0", "resolve@^1.13.1", "resolve@^1.17.0", "resolve@^1.20.0": "integrity" "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==" "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz" "version" "1.22.0" @@ -2524,6 +3383,11 @@ "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" "version" "5.2.1" +"safe-buffer@~5.1.1": + "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + "version" "5.1.2" + "safer-buffer@>= 2.1.2 < 3": "integrity" "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" "resolved" "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" @@ -2550,6 +3414,11 @@ dependencies: "semver" "^6.3.0" +"semver@^5.6.0": + "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + "version" "5.7.1" + "semver@^5.7.1": "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" @@ -2714,6 +3583,11 @@ "resolved" "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" "version" "1.0.2" +"source-map@^0.5.7": + "integrity" "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" + "version" "0.5.7" + "sparse-bitfield@^3.0.3": "integrity" "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=" "resolved" "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz" @@ -2792,6 +3666,18 @@ "resolved" "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.1.tgz" "version" "5.0.1" +"stylis@4.0.13": + "integrity" "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==" + "resolved" "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz" + "version" "4.0.13" + +"supports-color@^5.3.0": + "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + "version" "5.5.0" + dependencies: + "has-flag" "^3.0.0" + "supports-color@^5.5.0": "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" @@ -2811,11 +3697,26 @@ "resolved" "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" "version" "1.0.0" +"sweetalert2-react-content@^5.0.1": + "integrity" "sha512-waB/aDHeVSBdxHEFioy0OmQVi+bupr/S1M+GW54WbFkuO86uxVLRzzFomeddhGzrl6R4JwNJAmuKYDhQVN+uyw==" + "resolved" "https://registry.npmjs.org/sweetalert2-react-content/-/sweetalert2-react-content-5.0.1.tgz" + "version" "5.0.1" + +"sweetalert2@^11.0.0", "sweetalert2@^11.4.20": + "integrity" "sha512-3LiBFa5yRmTcqM0vGcFmo0EnhmaMSJfzhFpvZoXK6BOY94HIcIUbwhhW+NY5oXOpz5CT21qFAu0fKCUkOc/Pew==" + "resolved" "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.4.20.tgz" + "version" "11.4.20" + "text-table@^0.2.0": "integrity" "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" "resolved" "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" "version" "0.2.0" +"to-fast-properties@^2.0.0": + "integrity" "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" + "resolved" "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + "version" "2.0.0" + "to-readable-stream@^1.0.0": "integrity" "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" "resolved" "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz" @@ -2950,6 +3851,14 @@ "resolved" "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" "version" "1.0.0" +"update-browserslist-db@^1.0.4": + "integrity" "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==" + "resolved" "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "escalade" "^3.1.1" + "picocolors" "^1.0.0" + "update-notifier@^5.1.0": "integrity" "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==" "resolved" "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz" @@ -3108,3 +4017,8 @@ "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" "version" "4.0.0" + +"yaml@^1.7.2": + "integrity" "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + "resolved" "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" + "version" "1.10.2"