├── .gitignore ├── .prettierignore ├── LICENSE ├── README.md ├── backend ├── classifier │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── migrations │ │ ├── 0001_initial.py │ │ └── __init__.py │ ├── models.py │ ├── serializers.py │ ├── tests.py │ ├── urls.py │ └── views.py ├── config │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── manage.py ├── requirements.txt └── setup.cfg └── frontend ├── package-lock.json ├── package.json ├── public └── images │ ├── dark.png │ ├── favicon.ico │ ├── image_classification.png │ └── img1.jpg └── src ├── components ├── ClassifierButtons.js ├── ClassifierHeader.js ├── ClassifierResult.js ├── ClassifyAgain.js ├── CustomDivider.js ├── Description.js ├── DescriptionItem.js ├── Hero.js ├── HeroButtons.js ├── ImageDropzone.js └── Spacer.js ├── layout ├── Footer.js ├── Header.js ├── Layout.js └── Sidebar.js ├── pages ├── _app.js ├── _document.js ├── classifier.js └── index.js ├── theme └── theme.js └── utils ├── capitalizeFirstLetter.js ├── createEmotionCache.js └── replaceUnderscore.js /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | .DS_Store 3 | .next/ 4 | db.sqlite3 5 | media/ 6 | node_modules/ 7 | venv/ 8 | */migrations/* 9 | !*/migrations/__init__.py -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | *.html -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Bob's Programming Academy 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Image Classification 2 | 3 | This is an image classification app built using **Django 4**, **Django REST Framework 3**, **Next.js 12**, and **Material UI 5**. The app uses **Inception-ResNet-v2** to classify images selected by the user. 4 | 5 | ### Dark mode: 6 | 7 | ![plot](https://github.com/BobsProgrammingAcademy/Image-Classification-App-Layout-Customization/blob/master/frontend/public/images/dark.png?raw=true) 8 | 9 | ### Light mode: 10 | 11 | ![plot](https://github.com/BobsProgrammingAcademy/Image-Classification-App-Layout-Customization/blob/master/frontend/public/images/image_classification.png?raw=true) 12 | 13 | 14 | ## Table of Contents 15 | - [Prerequisites](#prerequisites) 16 | - [Installation](#installation) 17 | - [Running the application](#run-the-application) 18 | - [Customizing the application](#customize-the-application) 19 | - [Copyright and License](#copyright-and-license) 20 | 21 | 22 | ## Prerequisites 23 | 24 | Install the following prerequisites: 25 | 26 | 1. [Python 3.7-3.10](https://www.python.org/downloads/) 27 |
This project uses **TensorFlow v2.9.1**. For TensorFlow to work, you must install a correct version of Python on your machine. More information [here](https://www.tensorflow.org/install/source#tested_build_configurations). 28 | 2. [Node.js](https://nodejs.org/en/) 29 | 3. [Visual Studio Code](https://code.visualstudio.com/download) 30 | 31 | ## Installation 32 | 33 | ### Backend 34 | 35 | #### 1. Create a virtual environment 36 | 37 | From the **root** directory, run: 38 | 39 | ```bash 40 | cd backend 41 | ``` 42 | 43 | ```bash 44 | python -m venv venv 45 | ``` 46 | 47 | #### 2. Activate the virtual environment 48 | 49 | From the **backend** directory, run: 50 | 51 | On macOS: 52 | 53 | ```bash 54 | source venv/bin/activate 55 | ``` 56 | 57 | On Windows: 58 | 59 | ```bash 60 | venv\scripts\activate 61 | ``` 62 | 63 | #### 3. Install required backend dependencies 64 | 65 | From the **backend** directory, run: 66 | 67 | ```bash 68 | pip install -r requirements.txt 69 | ``` 70 | 71 | #### 4. Run migrations 72 | 73 | From the **backend** directory, run: 74 | 75 | ```bash 76 | python manage.py makemigrations 77 | ``` 78 | 79 | ```bash 80 | python manage.py migrate 81 | ``` 82 | 83 | ### Frontend 84 | 85 | #### 1. Install required frontend dependencies 86 | 87 | From the **root** directory, run: 88 | 89 | ```bash 90 | cd frontend 91 | ``` 92 | 93 | ```bash 94 | npm install 95 | ``` 96 | 97 | ## Run the application 98 | 99 | To run the application, you need to have both the backend and the frontend up and running. 100 | 101 | ### 1. Run backend 102 | 103 | From the **backend** directory, run: 104 | 105 | ```bash 106 | python manage.py runserver 107 | ``` 108 | 109 | ### 2. Run frontend 110 | 111 | From the **frontend** directory, run: 112 | 113 | ```bash 114 | npm run dev 115 | ``` 116 | 117 | ## View the application 118 | 119 | Go to http://localhost:3000/ to view the application. 120 | 121 | ## Customize the application 122 | 123 | This section describes how to customize the application. 124 | 125 | ### 1. Changing Colors 126 | 127 | To modify the colors in the application, make changes in the ```frontend/src/theme/theme.js``` file. 128 | 129 | ### 2. Changing Fonts 130 | 131 | To modify the fonts in the application, first, add a new font to the ```frontend/src/pages/_document.js``` file, and then make changes in the ```frontend/src/theme/theme.js``` file. 132 | 133 | ### 3. Changing Logo 134 | 135 | To modify the logo in the application, make changes in the ```frontend/src/layout/Header.js``` and ```frontend/src/layout/Sidebar.js``` files. 136 | 137 | ### 4. Changing the Image in the Hero Section 138 | 139 | To modify the image in the Hero section, make changes in the ```frontend/src/components/Hero.js``` and ```frontend/src/layout/Footer.js``` files. 140 | 141 | ### 5. Changing the Text in the Hero Section 142 | 143 | To modify the text in the Hero section, make changes in the ```frontend/src/components/Hero.js``` file. 144 | 145 | ### 6. Changing Buttons in the Hero Section 146 | 147 | To modify the two buttons in the Hero section, make changes in the ```frontend/src/components/HeroButtons.js``` file. 148 | 149 | ### 7. Changing the App Description 150 | 151 | To modify the app's description on the home page, make changes in the ```frontend/src/components/Description.js``` file. 152 | 153 | ## Copyright and License 154 | 155 | Copyright © 2022 Bob's Programming Academy. Code released under the MIT license. 156 | -------------------------------------------------------------------------------- /backend/classifier/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BobsProgrammingAcademy/image-classification-layout-customization/1c6abe0684d3920291f67457042e161747a144d6/backend/classifier/__init__.py -------------------------------------------------------------------------------- /backend/classifier/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | from .models import Classifier 3 | 4 | admin.site.register(Classifier) 5 | -------------------------------------------------------------------------------- /backend/classifier/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class ClassifierConfig(AppConfig): 5 | default_auto_field = 'django.db.models.BigAutoField' 6 | name = 'classifier' 7 | -------------------------------------------------------------------------------- /backend/classifier/migrations/0001_initial.py: -------------------------------------------------------------------------------- 1 | # Generated by Django 4.0.6 on 2022-07-07 20:43 2 | 3 | from django.db import migrations, models 4 | 5 | 6 | class Migration(migrations.Migration): 7 | 8 | initial = True 9 | 10 | dependencies = [ 11 | ] 12 | 13 | operations = [ 14 | migrations.CreateModel( 15 | name='Classifier', 16 | fields=[ 17 | ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), 18 | ('image', models.ImageField(upload_to='images')), 19 | ('result', models.CharField(blank=True, max_length=250)), 20 | ('date_uploaded', models.DateTimeField(auto_now_add=True)), 21 | ], 22 | ), 23 | ] 24 | -------------------------------------------------------------------------------- /backend/classifier/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BobsProgrammingAcademy/image-classification-layout-customization/1c6abe0684d3920291f67457042e161747a144d6/backend/classifier/migrations/__init__.py -------------------------------------------------------------------------------- /backend/classifier/models.py: -------------------------------------------------------------------------------- 1 | import cv2 2 | import ssl 3 | import numpy as np 4 | import tensorflow as tf 5 | from django.db import models 6 | from PIL import Image 7 | 8 | 9 | class Classifier(models.Model): 10 | image = models.ImageField(upload_to='images') 11 | result = models.CharField(max_length=250, blank=True) 12 | date_uploaded = models.DateTimeField(auto_now_add=True) 13 | 14 | def __str__(self): 15 | return 'Image classfied at {}'.format(self.date_uploaded.strftime('%Y-%m-%d %H:%M')) 16 | 17 | def save(self, *args, **kwargs): 18 | try: 19 | # SSL certificate necessary so we can download weights of the InceptionResNetV2 model 20 | ssl._create_default_https_context = ssl._create_unverified_context 21 | 22 | img = Image.open(self.image) 23 | img_array = tf.keras.preprocessing.image.img_to_array(img) 24 | dimensions = (299, 299) 25 | 26 | # Interpolation - a method of constructing new data points within the range 27 | # of a discrete set of known data points. 28 | resized_image = cv2.resize(img_array, dimensions, interpolation=cv2.INTER_AREA) 29 | ready_image = np.expand_dims(resized_image, axis=0) 30 | ready_image = tf.keras.applications.inception_resnet_v2.preprocess_input(ready_image) 31 | 32 | model = tf.keras.applications.InceptionResNetV2(weights='imagenet') 33 | prediction = model.predict(ready_image) 34 | decoded = tf.keras.applications.inception_resnet_v2.decode_predictions(prediction)[0][0][1] 35 | self.result = str(decoded) 36 | print('Success') 37 | except Exception as e: 38 | print('Classification failed:', e) 39 | 40 | return super().save(*args, **kwargs) 41 | -------------------------------------------------------------------------------- /backend/classifier/serializers.py: -------------------------------------------------------------------------------- 1 | from rest_framework import serializers 2 | from .models import Classifier 3 | 4 | 5 | class ClassifierSerializer(serializers.ModelSerializer): 6 | class Meta: 7 | model = Classifier 8 | fields = '__all__' 9 | -------------------------------------------------------------------------------- /backend/classifier/tests.py: -------------------------------------------------------------------------------- 1 | # from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /backend/classifier/urls.py: -------------------------------------------------------------------------------- 1 | from django.urls import path, include 2 | from rest_framework import routers 3 | 4 | from .views import ClassifierViewSet 5 | 6 | router = routers.DefaultRouter() 7 | router.register(r'classifier', ClassifierViewSet) 8 | 9 | urlpatterns = [ 10 | path('', include(router.urls)), 11 | ] 12 | -------------------------------------------------------------------------------- /backend/classifier/views.py: -------------------------------------------------------------------------------- 1 | from rest_framework import viewsets 2 | 3 | from .serializers import ClassifierSerializer 4 | from .models import Classifier 5 | 6 | 7 | class ClassifierViewSet(viewsets.ModelViewSet): 8 | queryset = Classifier.objects.all().order_by('-date_uploaded') 9 | serializer_class = ClassifierSerializer 10 | -------------------------------------------------------------------------------- /backend/config/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BobsProgrammingAcademy/image-classification-layout-customization/1c6abe0684d3920291f67457042e161747a144d6/backend/config/__init__.py -------------------------------------------------------------------------------- /backend/config/asgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | ASGI config for config project. 3 | 4 | It exposes the ASGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/4.0/howto/deployment/asgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.asgi import get_asgi_application 13 | 14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings') 15 | 16 | application = get_asgi_application() 17 | -------------------------------------------------------------------------------- /backend/config/settings.py: -------------------------------------------------------------------------------- 1 | import os 2 | from pathlib import Path 3 | 4 | # Build paths inside the project like this: BASE_DIR / 'subdir'. 5 | BASE_DIR = Path(__file__).resolve().parent.parent 6 | 7 | 8 | # Quick-start development settings - unsuitable for production 9 | # See https://docs.djangoproject.com/en/4.0/howto/deployment/checklist/ 10 | 11 | # SECURITY WARNING: keep the secret key used in production secret! 12 | SECRET_KEY = 'django-insecure-dr6(w&0-s8($%f&1$i8md4ns#f0j8ioe2op+-4n3v5g02v3zxz' 13 | 14 | # SECURITY WARNING: don't run with debug turned on in production! 15 | DEBUG = True 16 | 17 | ALLOWED_HOSTS = [] 18 | 19 | 20 | # Application definition 21 | 22 | INSTALLED_APPS = [ 23 | 'django.contrib.admin', 24 | 'django.contrib.auth', 25 | 'django.contrib.contenttypes', 26 | 'django.contrib.sessions', 27 | 'django.contrib.messages', 28 | 'django.contrib.staticfiles', 29 | 30 | # 3rd party 31 | 'rest_framework', 32 | 'corsheaders', 33 | 34 | # Local 35 | 'classifier', 36 | ] 37 | 38 | MIDDLEWARE = [ 39 | 'corsheaders.middleware.CorsMiddleware', 40 | 'django.middleware.security.SecurityMiddleware', 41 | 'django.contrib.sessions.middleware.SessionMiddleware', 42 | 'django.middleware.common.CommonMiddleware', 43 | 'django.middleware.csrf.CsrfViewMiddleware', 44 | 'django.contrib.auth.middleware.AuthenticationMiddleware', 45 | 'django.contrib.messages.middleware.MessageMiddleware', 46 | 'django.middleware.clickjacking.XFrameOptionsMiddleware', 47 | ] 48 | 49 | ROOT_URLCONF = 'config.urls' 50 | 51 | TEMPLATES = [ 52 | { 53 | 'BACKEND': 'django.template.backends.django.DjangoTemplates', 54 | 'DIRS': [], 55 | 'APP_DIRS': True, 56 | 'OPTIONS': { 57 | 'context_processors': [ 58 | 'django.template.context_processors.debug', 59 | 'django.template.context_processors.request', 60 | 'django.contrib.auth.context_processors.auth', 61 | 'django.contrib.messages.context_processors.messages', 62 | ], 63 | }, 64 | }, 65 | ] 66 | 67 | WSGI_APPLICATION = 'config.wsgi.application' 68 | 69 | 70 | # Database 71 | # https://docs.djangoproject.com/en/4.0/ref/settings/#databases 72 | 73 | DATABASES = { 74 | 'default': { 75 | 'ENGINE': 'django.db.backends.sqlite3', 76 | 'NAME': BASE_DIR / 'db.sqlite3', 77 | } 78 | } 79 | 80 | 81 | # Password validation 82 | # https://docs.djangoproject.com/en/4.0/ref/settings/#auth-password-validators 83 | 84 | AUTH_PASSWORD_VALIDATORS = [ 85 | { 86 | 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 87 | }, 88 | { 89 | 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 90 | }, 91 | { 92 | 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 93 | }, 94 | { 95 | 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 96 | }, 97 | ] 98 | 99 | 100 | # Internationalization 101 | # https://docs.djangoproject.com/en/4.0/topics/i18n/ 102 | 103 | LANGUAGE_CODE = 'en-us' 104 | 105 | TIME_ZONE = 'UTC' 106 | 107 | USE_I18N = True 108 | 109 | USE_TZ = True 110 | 111 | 112 | # Static files (CSS, JavaScript, Images) 113 | # https://docs.djangoproject.com/en/4.0/howto/static-files/ 114 | 115 | STATIC_URL = '/static/' 116 | STATIC_ROOT = os.path.join(BASE_DIR, 'static') 117 | 118 | MEDIA_URL = '/media/' 119 | MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 120 | 121 | 122 | # Default primary key field type 123 | # https://docs.djangoproject.com/en/4.0/ref/settings/#default-auto-field 124 | 125 | DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' 126 | 127 | CORS_ORIGIN_ALLOW_ALL = True 128 | 129 | FILE_UPLOAD_PERMISSIONS = 0o640 130 | -------------------------------------------------------------------------------- /backend/config/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf import settings 2 | from django.conf.urls.static import static 3 | from django.contrib import admin 4 | from django.urls import path, include 5 | 6 | urlpatterns = [ 7 | path('admin/', admin.site.urls), 8 | path('api/', include('classifier.urls')) 9 | ] 10 | 11 | urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 12 | urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 13 | -------------------------------------------------------------------------------- /backend/config/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for config project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/4.0/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | 12 | from django.core.wsgi import get_wsgi_application 13 | 14 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings') 15 | 16 | application = get_wsgi_application() 17 | -------------------------------------------------------------------------------- /backend/manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | """Django's command-line utility for administrative tasks.""" 3 | import os 4 | import sys 5 | 6 | 7 | def main(): 8 | """Run administrative tasks.""" 9 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings') 10 | try: 11 | from django.core.management import execute_from_command_line 12 | except ImportError as exc: 13 | raise ImportError( 14 | "Couldn't import Django. Are you sure it's installed and " 15 | "available on your PYTHONPATH environment variable? Did you " 16 | "forget to activate a virtual environment?" 17 | ) from exc 18 | execute_from_command_line(sys.argv) 19 | 20 | 21 | if __name__ == '__main__': 22 | main() 23 | -------------------------------------------------------------------------------- /backend/requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BobsProgrammingAcademy/image-classification-layout-customization/1c6abe0684d3920291f67457042e161747a144d6/backend/requirements.txt -------------------------------------------------------------------------------- /backend/setup.cfg: -------------------------------------------------------------------------------- 1 | [flake8] 2 | exclude = .git,*migrations*,*venv* 3 | max-line-length = 119 4 | indent-size = 2 -------------------------------------------------------------------------------- /frontend/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "image-classification", 3 | "version": "1.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "image-classification", 9 | "version": "1.0.0", 10 | "license": "MIT", 11 | "dependencies": { 12 | "@emotion/cache": "^11.9.3", 13 | "@emotion/react": "^11.9.3", 14 | "@emotion/server": "^11.4.0", 15 | "@emotion/styled": "^11.9.3", 16 | "@fortawesome/fontawesome-svg-core": "^6.1.1", 17 | "@fortawesome/free-regular-svg-icons": "^6.1.1", 18 | "@fortawesome/react-fontawesome": "^0.2.0", 19 | "@mui/icons-material": "^5.8.4", 20 | "@mui/material": "^5.8.7", 21 | "aos": "^2.3.4", 22 | "axios": "^0.27.2", 23 | "next": "^12.2.0", 24 | "prop-types": "^15.8.1", 25 | "react": "^18.2.0", 26 | "react-dom": "^18.2.0", 27 | "react-dropzone": "^14.2.2", 28 | "react-lazy-load-image-component": "^1.5.4" 29 | }, 30 | "devDependencies": { 31 | "regenerator-runtime": "^0.13.9" 32 | } 33 | }, 34 | "node_modules/@ampproject/remapping": { 35 | "version": "2.2.0", 36 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", 37 | "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", 38 | "peer": true, 39 | "dependencies": { 40 | "@jridgewell/gen-mapping": "^0.1.0", 41 | "@jridgewell/trace-mapping": "^0.3.9" 42 | }, 43 | "engines": { 44 | "node": ">=6.0.0" 45 | } 46 | }, 47 | "node_modules/@babel/code-frame": { 48 | "version": "7.18.6", 49 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", 50 | "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", 51 | "dependencies": { 52 | "@babel/highlight": "^7.18.6" 53 | }, 54 | "engines": { 55 | "node": ">=6.9.0" 56 | } 57 | }, 58 | "node_modules/@babel/compat-data": { 59 | "version": "7.18.6", 60 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.6.tgz", 61 | "integrity": "sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ==", 62 | "peer": true, 63 | "engines": { 64 | "node": ">=6.9.0" 65 | } 66 | }, 67 | "node_modules/@babel/core": { 68 | "version": "7.18.6", 69 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", 70 | "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", 71 | "peer": true, 72 | "dependencies": { 73 | "@ampproject/remapping": "^2.1.0", 74 | "@babel/code-frame": "^7.18.6", 75 | "@babel/generator": "^7.18.6", 76 | "@babel/helper-compilation-targets": "^7.18.6", 77 | "@babel/helper-module-transforms": "^7.18.6", 78 | "@babel/helpers": "^7.18.6", 79 | "@babel/parser": "^7.18.6", 80 | "@babel/template": "^7.18.6", 81 | "@babel/traverse": "^7.18.6", 82 | "@babel/types": "^7.18.6", 83 | "convert-source-map": "^1.7.0", 84 | "debug": "^4.1.0", 85 | "gensync": "^1.0.0-beta.2", 86 | "json5": "^2.2.1", 87 | "semver": "^6.3.0" 88 | }, 89 | "engines": { 90 | "node": ">=6.9.0" 91 | }, 92 | "funding": { 93 | "type": "opencollective", 94 | "url": "https://opencollective.com/babel" 95 | } 96 | }, 97 | "node_modules/@babel/generator": { 98 | "version": "7.18.7", 99 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz", 100 | "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==", 101 | "peer": true, 102 | "dependencies": { 103 | "@babel/types": "^7.18.7", 104 | "@jridgewell/gen-mapping": "^0.3.2", 105 | "jsesc": "^2.5.1" 106 | }, 107 | "engines": { 108 | "node": ">=6.9.0" 109 | } 110 | }, 111 | "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { 112 | "version": "0.3.2", 113 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", 114 | "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", 115 | "peer": true, 116 | "dependencies": { 117 | "@jridgewell/set-array": "^1.0.1", 118 | "@jridgewell/sourcemap-codec": "^1.4.10", 119 | "@jridgewell/trace-mapping": "^0.3.9" 120 | }, 121 | "engines": { 122 | "node": ">=6.0.0" 123 | } 124 | }, 125 | "node_modules/@babel/helper-compilation-targets": { 126 | "version": "7.18.6", 127 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz", 128 | "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==", 129 | "peer": true, 130 | "dependencies": { 131 | "@babel/compat-data": "^7.18.6", 132 | "@babel/helper-validator-option": "^7.18.6", 133 | "browserslist": "^4.20.2", 134 | "semver": "^6.3.0" 135 | }, 136 | "engines": { 137 | "node": ">=6.9.0" 138 | }, 139 | "peerDependencies": { 140 | "@babel/core": "^7.0.0" 141 | } 142 | }, 143 | "node_modules/@babel/helper-environment-visitor": { 144 | "version": "7.18.6", 145 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", 146 | "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==", 147 | "peer": true, 148 | "engines": { 149 | "node": ">=6.9.0" 150 | } 151 | }, 152 | "node_modules/@babel/helper-function-name": { 153 | "version": "7.18.6", 154 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", 155 | "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", 156 | "peer": true, 157 | "dependencies": { 158 | "@babel/template": "^7.18.6", 159 | "@babel/types": "^7.18.6" 160 | }, 161 | "engines": { 162 | "node": ">=6.9.0" 163 | } 164 | }, 165 | "node_modules/@babel/helper-hoist-variables": { 166 | "version": "7.18.6", 167 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", 168 | "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", 169 | "peer": true, 170 | "dependencies": { 171 | "@babel/types": "^7.18.6" 172 | }, 173 | "engines": { 174 | "node": ">=6.9.0" 175 | } 176 | }, 177 | "node_modules/@babel/helper-module-imports": { 178 | "version": "7.18.6", 179 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", 180 | "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", 181 | "dependencies": { 182 | "@babel/types": "^7.18.6" 183 | }, 184 | "engines": { 185 | "node": ">=6.9.0" 186 | } 187 | }, 188 | "node_modules/@babel/helper-module-transforms": { 189 | "version": "7.18.6", 190 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.6.tgz", 191 | "integrity": "sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw==", 192 | "peer": true, 193 | "dependencies": { 194 | "@babel/helper-environment-visitor": "^7.18.6", 195 | "@babel/helper-module-imports": "^7.18.6", 196 | "@babel/helper-simple-access": "^7.18.6", 197 | "@babel/helper-split-export-declaration": "^7.18.6", 198 | "@babel/helper-validator-identifier": "^7.18.6", 199 | "@babel/template": "^7.18.6", 200 | "@babel/traverse": "^7.18.6", 201 | "@babel/types": "^7.18.6" 202 | }, 203 | "engines": { 204 | "node": ">=6.9.0" 205 | } 206 | }, 207 | "node_modules/@babel/helper-plugin-utils": { 208 | "version": "7.18.6", 209 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", 210 | "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==", 211 | "engines": { 212 | "node": ">=6.9.0" 213 | } 214 | }, 215 | "node_modules/@babel/helper-simple-access": { 216 | "version": "7.18.6", 217 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", 218 | "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", 219 | "peer": true, 220 | "dependencies": { 221 | "@babel/types": "^7.18.6" 222 | }, 223 | "engines": { 224 | "node": ">=6.9.0" 225 | } 226 | }, 227 | "node_modules/@babel/helper-split-export-declaration": { 228 | "version": "7.18.6", 229 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", 230 | "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", 231 | "peer": true, 232 | "dependencies": { 233 | "@babel/types": "^7.18.6" 234 | }, 235 | "engines": { 236 | "node": ">=6.9.0" 237 | } 238 | }, 239 | "node_modules/@babel/helper-validator-identifier": { 240 | "version": "7.18.6", 241 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", 242 | "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", 243 | "engines": { 244 | "node": ">=6.9.0" 245 | } 246 | }, 247 | "node_modules/@babel/helper-validator-option": { 248 | "version": "7.18.6", 249 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", 250 | "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", 251 | "peer": true, 252 | "engines": { 253 | "node": ">=6.9.0" 254 | } 255 | }, 256 | "node_modules/@babel/helpers": { 257 | "version": "7.18.6", 258 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz", 259 | "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==", 260 | "peer": true, 261 | "dependencies": { 262 | "@babel/template": "^7.18.6", 263 | "@babel/traverse": "^7.18.6", 264 | "@babel/types": "^7.18.6" 265 | }, 266 | "engines": { 267 | "node": ">=6.9.0" 268 | } 269 | }, 270 | "node_modules/@babel/highlight": { 271 | "version": "7.18.6", 272 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", 273 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", 274 | "dependencies": { 275 | "@babel/helper-validator-identifier": "^7.18.6", 276 | "chalk": "^2.0.0", 277 | "js-tokens": "^4.0.0" 278 | }, 279 | "engines": { 280 | "node": ">=6.9.0" 281 | } 282 | }, 283 | "node_modules/@babel/parser": { 284 | "version": "7.18.6", 285 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.6.tgz", 286 | "integrity": "sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw==", 287 | "peer": true, 288 | "bin": { 289 | "parser": "bin/babel-parser.js" 290 | }, 291 | "engines": { 292 | "node": ">=6.0.0" 293 | } 294 | }, 295 | "node_modules/@babel/plugin-syntax-jsx": { 296 | "version": "7.18.6", 297 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", 298 | "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", 299 | "dependencies": { 300 | "@babel/helper-plugin-utils": "^7.18.6" 301 | }, 302 | "engines": { 303 | "node": ">=6.9.0" 304 | }, 305 | "peerDependencies": { 306 | "@babel/core": "^7.0.0-0" 307 | } 308 | }, 309 | "node_modules/@babel/runtime": { 310 | "version": "7.18.6", 311 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", 312 | "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", 313 | "dependencies": { 314 | "regenerator-runtime": "^0.13.4" 315 | }, 316 | "engines": { 317 | "node": ">=6.9.0" 318 | } 319 | }, 320 | "node_modules/@babel/template": { 321 | "version": "7.18.6", 322 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", 323 | "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", 324 | "peer": true, 325 | "dependencies": { 326 | "@babel/code-frame": "^7.18.6", 327 | "@babel/parser": "^7.18.6", 328 | "@babel/types": "^7.18.6" 329 | }, 330 | "engines": { 331 | "node": ">=6.9.0" 332 | } 333 | }, 334 | "node_modules/@babel/traverse": { 335 | "version": "7.18.6", 336 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.6.tgz", 337 | "integrity": "sha512-zS/OKyqmD7lslOtFqbscH6gMLFYOfG1YPqCKfAW5KrTeolKqvB8UelR49Fpr6y93kYkW2Ik00mT1LOGiAGvizw==", 338 | "peer": true, 339 | "dependencies": { 340 | "@babel/code-frame": "^7.18.6", 341 | "@babel/generator": "^7.18.6", 342 | "@babel/helper-environment-visitor": "^7.18.6", 343 | "@babel/helper-function-name": "^7.18.6", 344 | "@babel/helper-hoist-variables": "^7.18.6", 345 | "@babel/helper-split-export-declaration": "^7.18.6", 346 | "@babel/parser": "^7.18.6", 347 | "@babel/types": "^7.18.6", 348 | "debug": "^4.1.0", 349 | "globals": "^11.1.0" 350 | }, 351 | "engines": { 352 | "node": ">=6.9.0" 353 | } 354 | }, 355 | "node_modules/@babel/types": { 356 | "version": "7.18.7", 357 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.7.tgz", 358 | "integrity": "sha512-QG3yxTcTIBoAcQmkCs+wAPYZhu7Dk9rXKacINfNbdJDNERTbLQbHGyVG8q/YGMPeCJRIhSY0+fTc5+xuh6WPSQ==", 359 | "dependencies": { 360 | "@babel/helper-validator-identifier": "^7.18.6", 361 | "to-fast-properties": "^2.0.0" 362 | }, 363 | "engines": { 364 | "node": ">=6.9.0" 365 | } 366 | }, 367 | "node_modules/@emotion/babel-plugin": { 368 | "version": "11.9.2", 369 | "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.9.2.tgz", 370 | "integrity": "sha512-Pr/7HGH6H6yKgnVFNEj2MVlreu3ADqftqjqwUvDy/OJzKFgxKeTQ+eeUf20FOTuHVkDON2iNa25rAXVYtWJCjw==", 371 | "dependencies": { 372 | "@babel/helper-module-imports": "^7.12.13", 373 | "@babel/plugin-syntax-jsx": "^7.12.13", 374 | "@babel/runtime": "^7.13.10", 375 | "@emotion/hash": "^0.8.0", 376 | "@emotion/memoize": "^0.7.5", 377 | "@emotion/serialize": "^1.0.2", 378 | "babel-plugin-macros": "^2.6.1", 379 | "convert-source-map": "^1.5.0", 380 | "escape-string-regexp": "^4.0.0", 381 | "find-root": "^1.1.0", 382 | "source-map": "^0.5.7", 383 | "stylis": "4.0.13" 384 | }, 385 | "peerDependencies": { 386 | "@babel/core": "^7.0.0" 387 | } 388 | }, 389 | "node_modules/@emotion/cache": { 390 | "version": "11.9.3", 391 | "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.9.3.tgz", 392 | "integrity": "sha512-0dgkI/JKlCXa+lEXviaMtGBL0ynpx4osh7rjOXE71q9bIF8G+XhJgvi+wDu0B0IdCVx37BffiwXlN9I3UuzFvg==", 393 | "dependencies": { 394 | "@emotion/memoize": "^0.7.4", 395 | "@emotion/sheet": "^1.1.1", 396 | "@emotion/utils": "^1.0.0", 397 | "@emotion/weak-memoize": "^0.2.5", 398 | "stylis": "4.0.13" 399 | } 400 | }, 401 | "node_modules/@emotion/hash": { 402 | "version": "0.8.0", 403 | "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", 404 | "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" 405 | }, 406 | "node_modules/@emotion/is-prop-valid": { 407 | "version": "1.1.3", 408 | "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.1.3.tgz", 409 | "integrity": "sha512-RFg04p6C+1uO19uG8N+vqanzKqiM9eeV1LDOG3bmkYmuOj7NbKNlFC/4EZq5gnwAIlcC/jOT24f8Td0iax2SXA==", 410 | "dependencies": { 411 | "@emotion/memoize": "^0.7.4" 412 | } 413 | }, 414 | "node_modules/@emotion/memoize": { 415 | "version": "0.7.5", 416 | "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz", 417 | "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==" 418 | }, 419 | "node_modules/@emotion/react": { 420 | "version": "11.9.3", 421 | "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.9.3.tgz", 422 | "integrity": "sha512-g9Q1GcTOlzOEjqwuLF/Zd9LC+4FljjPjDfxSM7KmEakm+hsHXk+bYZ2q+/hTJzr0OUNkujo72pXLQvXj6H+GJQ==", 423 | "dependencies": { 424 | "@babel/runtime": "^7.13.10", 425 | "@emotion/babel-plugin": "^11.7.1", 426 | "@emotion/cache": "^11.9.3", 427 | "@emotion/serialize": "^1.0.4", 428 | "@emotion/utils": "^1.1.0", 429 | "@emotion/weak-memoize": "^0.2.5", 430 | "hoist-non-react-statics": "^3.3.1" 431 | }, 432 | "peerDependencies": { 433 | "@babel/core": "^7.0.0", 434 | "react": ">=16.8.0" 435 | }, 436 | "peerDependenciesMeta": { 437 | "@babel/core": { 438 | "optional": true 439 | }, 440 | "@types/react": { 441 | "optional": true 442 | } 443 | } 444 | }, 445 | "node_modules/@emotion/serialize": { 446 | "version": "1.0.4", 447 | "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.4.tgz", 448 | "integrity": "sha512-1JHamSpH8PIfFwAMryO2bNka+y8+KA5yga5Ocf2d7ZEiJjb7xlLW7aknBGZqJLajuLOvJ+72vN+IBSwPlXD1Pg==", 449 | "dependencies": { 450 | "@emotion/hash": "^0.8.0", 451 | "@emotion/memoize": "^0.7.4", 452 | "@emotion/unitless": "^0.7.5", 453 | "@emotion/utils": "^1.0.0", 454 | "csstype": "^3.0.2" 455 | } 456 | }, 457 | "node_modules/@emotion/server": { 458 | "version": "11.4.0", 459 | "resolved": "https://registry.npmjs.org/@emotion/server/-/server-11.4.0.tgz", 460 | "integrity": "sha512-IHovdWA3V0DokzxLtUNDx4+hQI82zUXqQFcVz/om2t44O0YSc+NHB+qifnyAOoQwt3SXcBTgaSntobwUI9gnfA==", 461 | "dependencies": { 462 | "@emotion/utils": "^1.0.0", 463 | "html-tokenize": "^2.0.0", 464 | "multipipe": "^1.0.2", 465 | "through": "^2.3.8" 466 | }, 467 | "peerDependencies": { 468 | "@emotion/css": "^11.0.0-rc.0" 469 | }, 470 | "peerDependenciesMeta": { 471 | "@emotion/css": { 472 | "optional": true 473 | } 474 | } 475 | }, 476 | "node_modules/@emotion/sheet": { 477 | "version": "1.1.1", 478 | "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.1.1.tgz", 479 | "integrity": "sha512-J3YPccVRMiTZxYAY0IOq3kd+hUP8idY8Kz6B/Cyo+JuXq52Ek+zbPbSQUrVQp95aJ+lsAW7DPL1P2Z+U1jGkKA==" 480 | }, 481 | "node_modules/@emotion/styled": { 482 | "version": "11.9.3", 483 | "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.9.3.tgz", 484 | "integrity": "sha512-o3sBNwbtoVz9v7WB1/Y/AmXl69YHmei2mrVnK7JgyBJ//Rst5yqPZCecEJlMlJrFeWHp+ki/54uN265V2pEcXA==", 485 | "dependencies": { 486 | "@babel/runtime": "^7.13.10", 487 | "@emotion/babel-plugin": "^11.7.1", 488 | "@emotion/is-prop-valid": "^1.1.3", 489 | "@emotion/serialize": "^1.0.4", 490 | "@emotion/utils": "^1.1.0" 491 | }, 492 | "peerDependencies": { 493 | "@babel/core": "^7.0.0", 494 | "@emotion/react": "^11.0.0-rc.0", 495 | "react": ">=16.8.0" 496 | }, 497 | "peerDependenciesMeta": { 498 | "@babel/core": { 499 | "optional": true 500 | }, 501 | "@types/react": { 502 | "optional": true 503 | } 504 | } 505 | }, 506 | "node_modules/@emotion/unitless": { 507 | "version": "0.7.5", 508 | "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", 509 | "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" 510 | }, 511 | "node_modules/@emotion/utils": { 512 | "version": "1.1.0", 513 | "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.1.0.tgz", 514 | "integrity": "sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==" 515 | }, 516 | "node_modules/@emotion/weak-memoize": { 517 | "version": "0.2.5", 518 | "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", 519 | "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" 520 | }, 521 | "node_modules/@fortawesome/fontawesome-common-types": { 522 | "version": "6.1.1", 523 | "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.1.1.tgz", 524 | "integrity": "sha512-wVn5WJPirFTnzN6tR95abCx+ocH+3IFLXAgyavnf9hUmN0CfWoDjPT/BAWsUVwSlYYVBeCLJxaqi7ZGe4uSjBA==", 525 | "hasInstallScript": true, 526 | "engines": { 527 | "node": ">=6" 528 | } 529 | }, 530 | "node_modules/@fortawesome/fontawesome-svg-core": { 531 | "version": "6.1.1", 532 | "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.1.1.tgz", 533 | "integrity": "sha512-NCg0w2YIp81f4V6cMGD9iomfsIj7GWrqmsa0ZsPh59G7PKiGN1KymZNxmF00ssuAlo/VZmpK6xazsGOwzKYUMg==", 534 | "hasInstallScript": true, 535 | "dependencies": { 536 | "@fortawesome/fontawesome-common-types": "6.1.1" 537 | }, 538 | "engines": { 539 | "node": ">=6" 540 | } 541 | }, 542 | "node_modules/@fortawesome/free-regular-svg-icons": { 543 | "version": "6.1.1", 544 | "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.1.1.tgz", 545 | "integrity": "sha512-xXiW7hcpgwmWtndKPOzG+43fPH7ZjxOaoeyooptSztGmJxCAflHZxXNK0GcT0uEsR4jTGQAfGklDZE5NHoBhKg==", 546 | "hasInstallScript": true, 547 | "dependencies": { 548 | "@fortawesome/fontawesome-common-types": "6.1.1" 549 | }, 550 | "engines": { 551 | "node": ">=6" 552 | } 553 | }, 554 | "node_modules/@fortawesome/react-fontawesome": { 555 | "version": "0.2.0", 556 | "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz", 557 | "integrity": "sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==", 558 | "dependencies": { 559 | "prop-types": "^15.8.1" 560 | }, 561 | "peerDependencies": { 562 | "@fortawesome/fontawesome-svg-core": "~1 || ~6", 563 | "react": ">=16.3" 564 | } 565 | }, 566 | "node_modules/@jridgewell/gen-mapping": { 567 | "version": "0.1.1", 568 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", 569 | "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", 570 | "peer": true, 571 | "dependencies": { 572 | "@jridgewell/set-array": "^1.0.0", 573 | "@jridgewell/sourcemap-codec": "^1.4.10" 574 | }, 575 | "engines": { 576 | "node": ">=6.0.0" 577 | } 578 | }, 579 | "node_modules/@jridgewell/resolve-uri": { 580 | "version": "3.1.0", 581 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", 582 | "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", 583 | "peer": true, 584 | "engines": { 585 | "node": ">=6.0.0" 586 | } 587 | }, 588 | "node_modules/@jridgewell/set-array": { 589 | "version": "1.1.2", 590 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", 591 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", 592 | "peer": true, 593 | "engines": { 594 | "node": ">=6.0.0" 595 | } 596 | }, 597 | "node_modules/@jridgewell/sourcemap-codec": { 598 | "version": "1.4.14", 599 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", 600 | "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", 601 | "peer": true 602 | }, 603 | "node_modules/@jridgewell/trace-mapping": { 604 | "version": "0.3.14", 605 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", 606 | "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", 607 | "peer": true, 608 | "dependencies": { 609 | "@jridgewell/resolve-uri": "^3.0.3", 610 | "@jridgewell/sourcemap-codec": "^1.4.10" 611 | } 612 | }, 613 | "node_modules/@mui/base": { 614 | "version": "5.0.0-alpha.88", 615 | "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.88.tgz", 616 | "integrity": "sha512-uL7ej2F/3GUnZewsDQSHUVHoSBT3AQcTIdfdy6QeCHy7X26mtbcIvTRcjl2PzbbNQplppavSTibPiQG/giJ+ng==", 617 | "dependencies": { 618 | "@babel/runtime": "^7.17.2", 619 | "@emotion/is-prop-valid": "^1.1.3", 620 | "@mui/types": "^7.1.4", 621 | "@mui/utils": "^5.8.6", 622 | "@popperjs/core": "^2.11.5", 623 | "clsx": "^1.2.0", 624 | "prop-types": "^15.8.1", 625 | "react-is": "^17.0.2" 626 | }, 627 | "engines": { 628 | "node": ">=12.0.0" 629 | }, 630 | "funding": { 631 | "type": "opencollective", 632 | "url": "https://opencollective.com/mui" 633 | }, 634 | "peerDependencies": { 635 | "@types/react": "^17.0.0 || ^18.0.0", 636 | "react": "^17.0.0 || ^18.0.0", 637 | "react-dom": "^17.0.0 || ^18.0.0" 638 | }, 639 | "peerDependenciesMeta": { 640 | "@types/react": { 641 | "optional": true 642 | } 643 | } 644 | }, 645 | "node_modules/@mui/base/node_modules/react-is": { 646 | "version": "17.0.2", 647 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", 648 | "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" 649 | }, 650 | "node_modules/@mui/icons-material": { 651 | "version": "5.8.4", 652 | "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.8.4.tgz", 653 | "integrity": "sha512-9Z/vyj2szvEhGWDvb+gG875bOGm8b8rlHBKOD1+nA3PcgC3fV6W1AU6pfOorPeBfH2X4mb9Boe97vHvaSndQvA==", 654 | "dependencies": { 655 | "@babel/runtime": "^7.17.2" 656 | }, 657 | "engines": { 658 | "node": ">=12.0.0" 659 | }, 660 | "funding": { 661 | "type": "opencollective", 662 | "url": "https://opencollective.com/mui" 663 | }, 664 | "peerDependencies": { 665 | "@mui/material": "^5.0.0", 666 | "@types/react": "^17.0.0 || ^18.0.0", 667 | "react": "^17.0.0 || ^18.0.0" 668 | }, 669 | "peerDependenciesMeta": { 670 | "@types/react": { 671 | "optional": true 672 | } 673 | } 674 | }, 675 | "node_modules/@mui/material": { 676 | "version": "5.8.7", 677 | "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.8.7.tgz", 678 | "integrity": "sha512-Oo62UhrgEi+BMLr3nUEASJgScE2/hhq14CbBUmrVV3GQlEGtqMZsy26Vb0AqEmphFeN3TXlsbM9aeW5yq8ZFlw==", 679 | "dependencies": { 680 | "@babel/runtime": "^7.17.2", 681 | "@mui/base": "5.0.0-alpha.88", 682 | "@mui/system": "^5.8.7", 683 | "@mui/types": "^7.1.4", 684 | "@mui/utils": "^5.8.6", 685 | "@types/react-transition-group": "^4.4.5", 686 | "clsx": "^1.2.0", 687 | "csstype": "^3.1.0", 688 | "prop-types": "^15.8.1", 689 | "react-is": "^17.0.2", 690 | "react-transition-group": "^4.4.2" 691 | }, 692 | "engines": { 693 | "node": ">=12.0.0" 694 | }, 695 | "funding": { 696 | "type": "opencollective", 697 | "url": "https://opencollective.com/mui" 698 | }, 699 | "peerDependencies": { 700 | "@emotion/react": "^11.5.0", 701 | "@emotion/styled": "^11.3.0", 702 | "@types/react": "^17.0.0 || ^18.0.0", 703 | "react": "^17.0.0 || ^18.0.0", 704 | "react-dom": "^17.0.0 || ^18.0.0" 705 | }, 706 | "peerDependenciesMeta": { 707 | "@emotion/react": { 708 | "optional": true 709 | }, 710 | "@emotion/styled": { 711 | "optional": true 712 | }, 713 | "@types/react": { 714 | "optional": true 715 | } 716 | } 717 | }, 718 | "node_modules/@mui/material/node_modules/react-is": { 719 | "version": "17.0.2", 720 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", 721 | "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" 722 | }, 723 | "node_modules/@mui/private-theming": { 724 | "version": "5.8.6", 725 | "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.8.6.tgz", 726 | "integrity": "sha512-yHsJk1qU9r/q0DlnxGRJPHyM0Y/nUv8FTNgDTiI9I58GWuVuZqeTUr7JRvPh6ybeP/FLtW5eXEavRK9wxVk4uQ==", 727 | "dependencies": { 728 | "@babel/runtime": "^7.17.2", 729 | "@mui/utils": "^5.8.6", 730 | "prop-types": "^15.8.1" 731 | }, 732 | "engines": { 733 | "node": ">=12.0.0" 734 | }, 735 | "funding": { 736 | "type": "opencollective", 737 | "url": "https://opencollective.com/mui" 738 | }, 739 | "peerDependencies": { 740 | "@types/react": "^17.0.0 || ^18.0.0", 741 | "react": "^17.0.0 || ^18.0.0" 742 | }, 743 | "peerDependenciesMeta": { 744 | "@types/react": { 745 | "optional": true 746 | } 747 | } 748 | }, 749 | "node_modules/@mui/styled-engine": { 750 | "version": "5.8.7", 751 | "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.8.7.tgz", 752 | "integrity": "sha512-tVqtowjbYmiRq+qcqXK731L9eWoL9H8xTRhuTgaDGKdch1zlt4I2UwInUe1w2N9N/u3/jHsFbLcl1Un3uOwpQg==", 753 | "dependencies": { 754 | "@babel/runtime": "^7.17.2", 755 | "@emotion/cache": "^11.9.3", 756 | "csstype": "^3.1.0", 757 | "prop-types": "^15.8.1" 758 | }, 759 | "engines": { 760 | "node": ">=12.0.0" 761 | }, 762 | "funding": { 763 | "type": "opencollective", 764 | "url": "https://opencollective.com/mui" 765 | }, 766 | "peerDependencies": { 767 | "@emotion/react": "^11.4.1", 768 | "@emotion/styled": "^11.3.0", 769 | "react": "^17.0.0 || ^18.0.0" 770 | }, 771 | "peerDependenciesMeta": { 772 | "@emotion/react": { 773 | "optional": true 774 | }, 775 | "@emotion/styled": { 776 | "optional": true 777 | } 778 | } 779 | }, 780 | "node_modules/@mui/system": { 781 | "version": "5.8.7", 782 | "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.8.7.tgz", 783 | "integrity": "sha512-yFoFbfO42FWeSUDrFPixYjpqySQMqVMOSbSlAxiKnwFpvXGGn/bkfQTboCRNO31fvES29FJLQd4mwwMHd5mXng==", 784 | "dependencies": { 785 | "@babel/runtime": "^7.17.2", 786 | "@mui/private-theming": "^5.8.6", 787 | "@mui/styled-engine": "^5.8.7", 788 | "@mui/types": "^7.1.4", 789 | "@mui/utils": "^5.8.6", 790 | "clsx": "^1.2.0", 791 | "csstype": "^3.1.0", 792 | "prop-types": "^15.8.1" 793 | }, 794 | "engines": { 795 | "node": ">=12.0.0" 796 | }, 797 | "funding": { 798 | "type": "opencollective", 799 | "url": "https://opencollective.com/mui" 800 | }, 801 | "peerDependencies": { 802 | "@emotion/react": "^11.5.0", 803 | "@emotion/styled": "^11.3.0", 804 | "@types/react": "^17.0.0 || ^18.0.0", 805 | "react": "^17.0.0 || ^18.0.0" 806 | }, 807 | "peerDependenciesMeta": { 808 | "@emotion/react": { 809 | "optional": true 810 | }, 811 | "@emotion/styled": { 812 | "optional": true 813 | }, 814 | "@types/react": { 815 | "optional": true 816 | } 817 | } 818 | }, 819 | "node_modules/@mui/types": { 820 | "version": "7.1.4", 821 | "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.1.4.tgz", 822 | "integrity": "sha512-uveM3byMbthO+6tXZ1n2zm0W3uJCQYtwt/v5zV5I77v2v18u0ITkb8xwhsDD2i3V2Kye7SaNR6FFJ6lMuY/WqQ==", 823 | "peerDependencies": { 824 | "@types/react": "*" 825 | }, 826 | "peerDependenciesMeta": { 827 | "@types/react": { 828 | "optional": true 829 | } 830 | } 831 | }, 832 | "node_modules/@mui/utils": { 833 | "version": "5.8.6", 834 | "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.8.6.tgz", 835 | "integrity": "sha512-QM2Sd1xZo2jOt2Vz5Rmro+pi2FLJyiv4+OjxkUwXR3oUM65KSMAMLl/KNYU55s3W3DLRFP5MVwE4FhAbHseHAg==", 836 | "dependencies": { 837 | "@babel/runtime": "^7.17.2", 838 | "@types/prop-types": "^15.7.5", 839 | "@types/react-is": "^16.7.1 || ^17.0.0", 840 | "prop-types": "^15.8.1", 841 | "react-is": "^17.0.2" 842 | }, 843 | "engines": { 844 | "node": ">=12.0.0" 845 | }, 846 | "funding": { 847 | "type": "opencollective", 848 | "url": "https://opencollective.com/mui" 849 | }, 850 | "peerDependencies": { 851 | "react": "^17.0.0 || ^18.0.0" 852 | } 853 | }, 854 | "node_modules/@mui/utils/node_modules/react-is": { 855 | "version": "17.0.2", 856 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", 857 | "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" 858 | }, 859 | "node_modules/@next/env": { 860 | "version": "12.2.0", 861 | "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.0.tgz", 862 | "integrity": "sha512-/FCkDpL/8SodJEXvx/DYNlOD5ijTtkozf4PPulYPtkPOJaMPpBSOkzmsta4fnrnbdH6eZjbwbiXFdr6gSQCV4w==" 863 | }, 864 | "node_modules/@next/swc-android-arm-eabi": { 865 | "version": "12.2.0", 866 | "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.0.tgz", 867 | "integrity": "sha512-hbneH8DNRB2x0Nf5fPCYoL8a0osvdTCe4pvOc9Rv5CpDsoOlf8BWBs2OWpeP0U2BktGvIsuUhmISmdYYGyrvTw==", 868 | "cpu": [ 869 | "arm" 870 | ], 871 | "optional": true, 872 | "os": [ 873 | "android" 874 | ], 875 | "engines": { 876 | "node": ">= 10" 877 | } 878 | }, 879 | "node_modules/@next/swc-android-arm64": { 880 | "version": "12.2.0", 881 | "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.0.tgz", 882 | "integrity": "sha512-1eEk91JHjczcJomxJ8X0XaUeNcp5Lx1U2Ic7j15ouJ83oRX+3GIslOuabW2oPkSgXbHkThMClhirKpvG98kwZg==", 883 | "cpu": [ 884 | "arm64" 885 | ], 886 | "optional": true, 887 | "os": [ 888 | "android" 889 | ], 890 | "engines": { 891 | "node": ">= 10" 892 | } 893 | }, 894 | "node_modules/@next/swc-darwin-arm64": { 895 | "version": "12.2.0", 896 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.0.tgz", 897 | "integrity": "sha512-x5U5gJd7ZvrEtTFnBld9O2bUlX8opu7mIQUqRzj7KeWzBwPhrIzTTsQXAiNqsaMuaRPvyHBVW/5d/6g6+89Y8g==", 898 | "cpu": [ 899 | "arm64" 900 | ], 901 | "optional": true, 902 | "os": [ 903 | "darwin" 904 | ], 905 | "engines": { 906 | "node": ">= 10" 907 | } 908 | }, 909 | "node_modules/@next/swc-darwin-x64": { 910 | "version": "12.2.0", 911 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.0.tgz", 912 | "integrity": "sha512-iwMNFsrAPjfedjKDv9AXPAV16PWIomP3qw/FfPaxkDVRbUls7BNdofBLzkQmqxqWh93WrawLwaqyXpJuAaiwJA==", 913 | "cpu": [ 914 | "x64" 915 | ], 916 | "optional": true, 917 | "os": [ 918 | "darwin" 919 | ], 920 | "engines": { 921 | "node": ">= 10" 922 | } 923 | }, 924 | "node_modules/@next/swc-freebsd-x64": { 925 | "version": "12.2.0", 926 | "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.0.tgz", 927 | "integrity": "sha512-gRiAw8g3Akf6niTDLEm1Emfa7jXDjvaAj/crDO8hKASKA4Y1fS4kbi/tyWw5VtoFI4mUzRmCPmZ8eL0tBSG58A==", 928 | "cpu": [ 929 | "x64" 930 | ], 931 | "optional": true, 932 | "os": [ 933 | "freebsd" 934 | ], 935 | "engines": { 936 | "node": ">= 10" 937 | } 938 | }, 939 | "node_modules/@next/swc-linux-arm-gnueabihf": { 940 | "version": "12.2.0", 941 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.0.tgz", 942 | "integrity": "sha512-/TJZkxaIpeEwnXh6A40trgwd40C5+LJroLUOEQwMOJdavLl62PjCA6dGl1pgooWLCIb5YdBQ0EG4ylzvLwS2+Q==", 943 | "cpu": [ 944 | "arm" 945 | ], 946 | "optional": true, 947 | "os": [ 948 | "linux" 949 | ], 950 | "engines": { 951 | "node": ">= 10" 952 | } 953 | }, 954 | "node_modules/@next/swc-linux-arm64-gnu": { 955 | "version": "12.2.0", 956 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.0.tgz", 957 | "integrity": "sha512-++WAB4ElXCSOKG9H8r4ENF8EaV+w0QkrpjehmryFkQXmt5juVXz+nKDVlCRMwJU7A1O0Mie82XyEoOrf6Np1pA==", 958 | "cpu": [ 959 | "arm64" 960 | ], 961 | "optional": true, 962 | "os": [ 963 | "linux" 964 | ], 965 | "engines": { 966 | "node": ">= 10" 967 | } 968 | }, 969 | "node_modules/@next/swc-linux-arm64-musl": { 970 | "version": "12.2.0", 971 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.0.tgz", 972 | "integrity": "sha512-XrqkHi/VglEn5zs2CYK6ofJGQySrd+Lr4YdmfJ7IhsCnMKkQY1ma9Hv5THwhZVof3e+6oFHrQ9bWrw9K4WTjFA==", 973 | "cpu": [ 974 | "arm64" 975 | ], 976 | "optional": true, 977 | "os": [ 978 | "linux" 979 | ], 980 | "engines": { 981 | "node": ">= 10" 982 | } 983 | }, 984 | "node_modules/@next/swc-linux-x64-gnu": { 985 | "version": "12.2.0", 986 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.0.tgz", 987 | "integrity": "sha512-MyhHbAKVjpn065WzRbqpLu2krj4kHLi6RITQdD1ee+uxq9r2yg5Qe02l24NxKW+1/lkmpusl4Y5Lks7rBiJn4w==", 988 | "cpu": [ 989 | "x64" 990 | ], 991 | "optional": true, 992 | "os": [ 993 | "linux" 994 | ], 995 | "engines": { 996 | "node": ">= 10" 997 | } 998 | }, 999 | "node_modules/@next/swc-linux-x64-musl": { 1000 | "version": "12.2.0", 1001 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.0.tgz", 1002 | "integrity": "sha512-Tz1tJZ5egE0S/UqCd5V6ZPJsdSzv/8aa7FkwFmIJ9neLS8/00za+OY5pq470iZQbPrkTwpKzmfTTIPRVD5iqDg==", 1003 | "cpu": [ 1004 | "x64" 1005 | ], 1006 | "optional": true, 1007 | "os": [ 1008 | "linux" 1009 | ], 1010 | "engines": { 1011 | "node": ">= 10" 1012 | } 1013 | }, 1014 | "node_modules/@next/swc-win32-arm64-msvc": { 1015 | "version": "12.2.0", 1016 | "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.0.tgz", 1017 | "integrity": "sha512-0iRO/CPMCdCYUzuH6wXLnsfJX1ykBX4emOOvH0qIgtiZM0nVYbF8lkEyY2ph4XcsurpinS+ziWuYCXVqrOSqiw==", 1018 | "cpu": [ 1019 | "arm64" 1020 | ], 1021 | "optional": true, 1022 | "os": [ 1023 | "win32" 1024 | ], 1025 | "engines": { 1026 | "node": ">= 10" 1027 | } 1028 | }, 1029 | "node_modules/@next/swc-win32-ia32-msvc": { 1030 | "version": "12.2.0", 1031 | "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.0.tgz", 1032 | "integrity": "sha512-8A26RJVcJHwIKm8xo/qk2ePRquJ6WCI2keV2qOW/Qm+ZXrPXHMIWPYABae/nKN243YFBNyPiHytjX37VrcpUhg==", 1033 | "cpu": [ 1034 | "ia32" 1035 | ], 1036 | "optional": true, 1037 | "os": [ 1038 | "win32" 1039 | ], 1040 | "engines": { 1041 | "node": ">= 10" 1042 | } 1043 | }, 1044 | "node_modules/@next/swc-win32-x64-msvc": { 1045 | "version": "12.2.0", 1046 | "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.0.tgz", 1047 | "integrity": "sha512-OI14ozFLThEV3ey6jE47zrzSTV/6eIMsvbwozo+XfdWqOPwQ7X00YkRx4GVMKMC0rM44oGS2gmwMKYpe4EblnA==", 1048 | "cpu": [ 1049 | "x64" 1050 | ], 1051 | "optional": true, 1052 | "os": [ 1053 | "win32" 1054 | ], 1055 | "engines": { 1056 | "node": ">= 10" 1057 | } 1058 | }, 1059 | "node_modules/@popperjs/core": { 1060 | "version": "2.11.5", 1061 | "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", 1062 | "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==", 1063 | "funding": { 1064 | "type": "opencollective", 1065 | "url": "https://opencollective.com/popperjs" 1066 | } 1067 | }, 1068 | "node_modules/@swc/helpers": { 1069 | "version": "0.4.2", 1070 | "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.2.tgz", 1071 | "integrity": "sha512-556Az0VX7WR6UdoTn4htt/l3zPQ7bsQWK+HqdG4swV7beUCxo/BqmvbOpUkTIm/9ih86LIf1qsUnywNL3obGHw==", 1072 | "dependencies": { 1073 | "tslib": "^2.4.0" 1074 | } 1075 | }, 1076 | "node_modules/@types/parse-json": { 1077 | "version": "4.0.0", 1078 | "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", 1079 | "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" 1080 | }, 1081 | "node_modules/@types/prop-types": { 1082 | "version": "15.7.5", 1083 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", 1084 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" 1085 | }, 1086 | "node_modules/@types/react": { 1087 | "version": "18.0.15", 1088 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.15.tgz", 1089 | "integrity": "sha512-iz3BtLuIYH1uWdsv6wXYdhozhqj20oD4/Hk2DNXIn1kFsmp9x8d9QB6FnPhfkbhd2PgEONt9Q1x/ebkwjfFLow==", 1090 | "dependencies": { 1091 | "@types/prop-types": "*", 1092 | "@types/scheduler": "*", 1093 | "csstype": "^3.0.2" 1094 | } 1095 | }, 1096 | "node_modules/@types/react-is": { 1097 | "version": "17.0.3", 1098 | "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.3.tgz", 1099 | "integrity": "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==", 1100 | "dependencies": { 1101 | "@types/react": "*" 1102 | } 1103 | }, 1104 | "node_modules/@types/react-transition-group": { 1105 | "version": "4.4.5", 1106 | "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", 1107 | "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==", 1108 | "dependencies": { 1109 | "@types/react": "*" 1110 | } 1111 | }, 1112 | "node_modules/@types/scheduler": { 1113 | "version": "0.16.2", 1114 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", 1115 | "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" 1116 | }, 1117 | "node_modules/ansi-styles": { 1118 | "version": "3.2.1", 1119 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 1120 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 1121 | "dependencies": { 1122 | "color-convert": "^1.9.0" 1123 | }, 1124 | "engines": { 1125 | "node": ">=4" 1126 | } 1127 | }, 1128 | "node_modules/aos": { 1129 | "version": "2.3.4", 1130 | "resolved": "https://registry.npmjs.org/aos/-/aos-2.3.4.tgz", 1131 | "integrity": "sha512-zh/ahtR2yME4I51z8IttIt4lC1Nw0ktsFtmeDzID1m9naJnWXhCoARaCgNOGXb5CLy3zm+wqmRAEgMYB5E2HUw==", 1132 | "dependencies": { 1133 | "classlist-polyfill": "^1.0.3", 1134 | "lodash.debounce": "^4.0.6", 1135 | "lodash.throttle": "^4.0.1" 1136 | } 1137 | }, 1138 | "node_modules/asynckit": { 1139 | "version": "0.4.0", 1140 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 1141 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" 1142 | }, 1143 | "node_modules/attr-accept": { 1144 | "version": "2.2.2", 1145 | "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz", 1146 | "integrity": "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==", 1147 | "engines": { 1148 | "node": ">=4" 1149 | } 1150 | }, 1151 | "node_modules/axios": { 1152 | "version": "0.27.2", 1153 | "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", 1154 | "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", 1155 | "dependencies": { 1156 | "follow-redirects": "^1.14.9", 1157 | "form-data": "^4.0.0" 1158 | } 1159 | }, 1160 | "node_modules/babel-plugin-macros": { 1161 | "version": "2.8.0", 1162 | "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", 1163 | "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", 1164 | "dependencies": { 1165 | "@babel/runtime": "^7.7.2", 1166 | "cosmiconfig": "^6.0.0", 1167 | "resolve": "^1.12.0" 1168 | } 1169 | }, 1170 | "node_modules/browserslist": { 1171 | "version": "4.21.1", 1172 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", 1173 | "integrity": "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==", 1174 | "funding": [ 1175 | { 1176 | "type": "opencollective", 1177 | "url": "https://opencollective.com/browserslist" 1178 | }, 1179 | { 1180 | "type": "tidelift", 1181 | "url": "https://tidelift.com/funding/github/npm/browserslist" 1182 | } 1183 | ], 1184 | "peer": true, 1185 | "dependencies": { 1186 | "caniuse-lite": "^1.0.30001359", 1187 | "electron-to-chromium": "^1.4.172", 1188 | "node-releases": "^2.0.5", 1189 | "update-browserslist-db": "^1.0.4" 1190 | }, 1191 | "bin": { 1192 | "browserslist": "cli.js" 1193 | }, 1194 | "engines": { 1195 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 1196 | } 1197 | }, 1198 | "node_modules/buffer-from": { 1199 | "version": "0.1.2", 1200 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-0.1.2.tgz", 1201 | "integrity": "sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg==" 1202 | }, 1203 | "node_modules/callsites": { 1204 | "version": "3.1.0", 1205 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 1206 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 1207 | "engines": { 1208 | "node": ">=6" 1209 | } 1210 | }, 1211 | "node_modules/caniuse-lite": { 1212 | "version": "1.0.30001363", 1213 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001363.tgz", 1214 | "integrity": "sha512-HpQhpzTGGPVMnCjIomjt+jvyUu8vNFo3TaDiZ/RcoTrlOq/5+tC8zHdsbgFB6MxmaY+jCpsH09aD80Bb4Ow3Sg==", 1215 | "funding": [ 1216 | { 1217 | "type": "opencollective", 1218 | "url": "https://opencollective.com/browserslist" 1219 | }, 1220 | { 1221 | "type": "tidelift", 1222 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 1223 | } 1224 | ] 1225 | }, 1226 | "node_modules/chalk": { 1227 | "version": "2.4.2", 1228 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 1229 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 1230 | "dependencies": { 1231 | "ansi-styles": "^3.2.1", 1232 | "escape-string-regexp": "^1.0.5", 1233 | "supports-color": "^5.3.0" 1234 | }, 1235 | "engines": { 1236 | "node": ">=4" 1237 | } 1238 | }, 1239 | "node_modules/chalk/node_modules/escape-string-regexp": { 1240 | "version": "1.0.5", 1241 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1242 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", 1243 | "engines": { 1244 | "node": ">=0.8.0" 1245 | } 1246 | }, 1247 | "node_modules/classlist-polyfill": { 1248 | "version": "1.2.0", 1249 | "resolved": "https://registry.npmjs.org/classlist-polyfill/-/classlist-polyfill-1.2.0.tgz", 1250 | "integrity": "sha512-GzIjNdcEtH4ieA2S8NmrSxv7DfEV5fmixQeyTmqmRmRJPGpRBaSnA2a0VrCjyT8iW8JjEdMbKzDotAJf+ajgaQ==" 1251 | }, 1252 | "node_modules/clsx": { 1253 | "version": "1.2.1", 1254 | "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", 1255 | "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", 1256 | "engines": { 1257 | "node": ">=6" 1258 | } 1259 | }, 1260 | "node_modules/color-convert": { 1261 | "version": "1.9.3", 1262 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 1263 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 1264 | "dependencies": { 1265 | "color-name": "1.1.3" 1266 | } 1267 | }, 1268 | "node_modules/color-name": { 1269 | "version": "1.1.3", 1270 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 1271 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" 1272 | }, 1273 | "node_modules/combined-stream": { 1274 | "version": "1.0.8", 1275 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 1276 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 1277 | "dependencies": { 1278 | "delayed-stream": "~1.0.0" 1279 | }, 1280 | "engines": { 1281 | "node": ">= 0.8" 1282 | } 1283 | }, 1284 | "node_modules/convert-source-map": { 1285 | "version": "1.8.0", 1286 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", 1287 | "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", 1288 | "dependencies": { 1289 | "safe-buffer": "~5.1.1" 1290 | } 1291 | }, 1292 | "node_modules/core-util-is": { 1293 | "version": "1.0.3", 1294 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", 1295 | "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" 1296 | }, 1297 | "node_modules/cosmiconfig": { 1298 | "version": "6.0.0", 1299 | "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", 1300 | "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", 1301 | "dependencies": { 1302 | "@types/parse-json": "^4.0.0", 1303 | "import-fresh": "^3.1.0", 1304 | "parse-json": "^5.0.0", 1305 | "path-type": "^4.0.0", 1306 | "yaml": "^1.7.2" 1307 | }, 1308 | "engines": { 1309 | "node": ">=8" 1310 | } 1311 | }, 1312 | "node_modules/csstype": { 1313 | "version": "3.1.0", 1314 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", 1315 | "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" 1316 | }, 1317 | "node_modules/debug": { 1318 | "version": "4.3.4", 1319 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 1320 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 1321 | "peer": true, 1322 | "dependencies": { 1323 | "ms": "2.1.2" 1324 | }, 1325 | "engines": { 1326 | "node": ">=6.0" 1327 | }, 1328 | "peerDependenciesMeta": { 1329 | "supports-color": { 1330 | "optional": true 1331 | } 1332 | } 1333 | }, 1334 | "node_modules/delayed-stream": { 1335 | "version": "1.0.0", 1336 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 1337 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", 1338 | "engines": { 1339 | "node": ">=0.4.0" 1340 | } 1341 | }, 1342 | "node_modules/dom-helpers": { 1343 | "version": "5.2.1", 1344 | "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", 1345 | "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", 1346 | "dependencies": { 1347 | "@babel/runtime": "^7.8.7", 1348 | "csstype": "^3.0.2" 1349 | } 1350 | }, 1351 | "node_modules/duplexer2": { 1352 | "version": "0.1.4", 1353 | "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", 1354 | "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", 1355 | "dependencies": { 1356 | "readable-stream": "^2.0.2" 1357 | } 1358 | }, 1359 | "node_modules/duplexer2/node_modules/isarray": { 1360 | "version": "1.0.0", 1361 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1362 | "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" 1363 | }, 1364 | "node_modules/duplexer2/node_modules/readable-stream": { 1365 | "version": "2.3.7", 1366 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 1367 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 1368 | "dependencies": { 1369 | "core-util-is": "~1.0.0", 1370 | "inherits": "~2.0.3", 1371 | "isarray": "~1.0.0", 1372 | "process-nextick-args": "~2.0.0", 1373 | "safe-buffer": "~5.1.1", 1374 | "string_decoder": "~1.1.1", 1375 | "util-deprecate": "~1.0.1" 1376 | } 1377 | }, 1378 | "node_modules/duplexer2/node_modules/string_decoder": { 1379 | "version": "1.1.1", 1380 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1381 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1382 | "dependencies": { 1383 | "safe-buffer": "~5.1.0" 1384 | } 1385 | }, 1386 | "node_modules/electron-to-chromium": { 1387 | "version": "1.4.182", 1388 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.182.tgz", 1389 | "integrity": "sha512-OpEjTADzGoXABjqobGhpy0D2YsTncAax7IkER68ycc4adaq0dqEG9//9aenKPy7BGA90bqQdLac0dPp6uMkcSg==", 1390 | "peer": true 1391 | }, 1392 | "node_modules/error-ex": { 1393 | "version": "1.3.2", 1394 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 1395 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 1396 | "dependencies": { 1397 | "is-arrayish": "^0.2.1" 1398 | } 1399 | }, 1400 | "node_modules/escalade": { 1401 | "version": "3.1.1", 1402 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 1403 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 1404 | "peer": true, 1405 | "engines": { 1406 | "node": ">=6" 1407 | } 1408 | }, 1409 | "node_modules/escape-string-regexp": { 1410 | "version": "4.0.0", 1411 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 1412 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 1413 | "engines": { 1414 | "node": ">=10" 1415 | }, 1416 | "funding": { 1417 | "url": "https://github.com/sponsors/sindresorhus" 1418 | } 1419 | }, 1420 | "node_modules/file-selector": { 1421 | "version": "0.6.0", 1422 | "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.6.0.tgz", 1423 | "integrity": "sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==", 1424 | "dependencies": { 1425 | "tslib": "^2.4.0" 1426 | }, 1427 | "engines": { 1428 | "node": ">= 12" 1429 | } 1430 | }, 1431 | "node_modules/find-root": { 1432 | "version": "1.1.0", 1433 | "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", 1434 | "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" 1435 | }, 1436 | "node_modules/follow-redirects": { 1437 | "version": "1.15.1", 1438 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", 1439 | "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", 1440 | "funding": [ 1441 | { 1442 | "type": "individual", 1443 | "url": "https://github.com/sponsors/RubenVerborgh" 1444 | } 1445 | ], 1446 | "engines": { 1447 | "node": ">=4.0" 1448 | }, 1449 | "peerDependenciesMeta": { 1450 | "debug": { 1451 | "optional": true 1452 | } 1453 | } 1454 | }, 1455 | "node_modules/form-data": { 1456 | "version": "4.0.0", 1457 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", 1458 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", 1459 | "dependencies": { 1460 | "asynckit": "^0.4.0", 1461 | "combined-stream": "^1.0.8", 1462 | "mime-types": "^2.1.12" 1463 | }, 1464 | "engines": { 1465 | "node": ">= 6" 1466 | } 1467 | }, 1468 | "node_modules/function-bind": { 1469 | "version": "1.1.1", 1470 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1471 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 1472 | }, 1473 | "node_modules/gensync": { 1474 | "version": "1.0.0-beta.2", 1475 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 1476 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", 1477 | "peer": true, 1478 | "engines": { 1479 | "node": ">=6.9.0" 1480 | } 1481 | }, 1482 | "node_modules/globals": { 1483 | "version": "11.12.0", 1484 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 1485 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 1486 | "peer": true, 1487 | "engines": { 1488 | "node": ">=4" 1489 | } 1490 | }, 1491 | "node_modules/has": { 1492 | "version": "1.0.3", 1493 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1494 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1495 | "dependencies": { 1496 | "function-bind": "^1.1.1" 1497 | }, 1498 | "engines": { 1499 | "node": ">= 0.4.0" 1500 | } 1501 | }, 1502 | "node_modules/has-flag": { 1503 | "version": "3.0.0", 1504 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1505 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", 1506 | "engines": { 1507 | "node": ">=4" 1508 | } 1509 | }, 1510 | "node_modules/hoist-non-react-statics": { 1511 | "version": "3.3.2", 1512 | "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", 1513 | "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", 1514 | "dependencies": { 1515 | "react-is": "^16.7.0" 1516 | } 1517 | }, 1518 | "node_modules/html-tokenize": { 1519 | "version": "2.0.1", 1520 | "resolved": "https://registry.npmjs.org/html-tokenize/-/html-tokenize-2.0.1.tgz", 1521 | "integrity": "sha512-QY6S+hZ0f5m1WT8WffYN+Hg+xm/w5I8XeUcAq/ZYP5wVC8xbKi4Whhru3FtrAebD5EhBW8rmFzkDI6eCAuFe2w==", 1522 | "dependencies": { 1523 | "buffer-from": "~0.1.1", 1524 | "inherits": "~2.0.1", 1525 | "minimist": "~1.2.5", 1526 | "readable-stream": "~1.0.27-1", 1527 | "through2": "~0.4.1" 1528 | }, 1529 | "bin": { 1530 | "html-tokenize": "bin/cmd.js" 1531 | } 1532 | }, 1533 | "node_modules/import-fresh": { 1534 | "version": "3.3.0", 1535 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 1536 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 1537 | "dependencies": { 1538 | "parent-module": "^1.0.0", 1539 | "resolve-from": "^4.0.0" 1540 | }, 1541 | "engines": { 1542 | "node": ">=6" 1543 | }, 1544 | "funding": { 1545 | "url": "https://github.com/sponsors/sindresorhus" 1546 | } 1547 | }, 1548 | "node_modules/inherits": { 1549 | "version": "2.0.4", 1550 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1551 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 1552 | }, 1553 | "node_modules/is-arrayish": { 1554 | "version": "0.2.1", 1555 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 1556 | "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" 1557 | }, 1558 | "node_modules/is-core-module": { 1559 | "version": "2.9.0", 1560 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", 1561 | "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", 1562 | "dependencies": { 1563 | "has": "^1.0.3" 1564 | }, 1565 | "funding": { 1566 | "url": "https://github.com/sponsors/ljharb" 1567 | } 1568 | }, 1569 | "node_modules/isarray": { 1570 | "version": "0.0.1", 1571 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", 1572 | "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" 1573 | }, 1574 | "node_modules/js-tokens": { 1575 | "version": "4.0.0", 1576 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 1577 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 1578 | }, 1579 | "node_modules/jsesc": { 1580 | "version": "2.5.2", 1581 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", 1582 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", 1583 | "peer": true, 1584 | "bin": { 1585 | "jsesc": "bin/jsesc" 1586 | }, 1587 | "engines": { 1588 | "node": ">=4" 1589 | } 1590 | }, 1591 | "node_modules/json-parse-even-better-errors": { 1592 | "version": "2.3.1", 1593 | "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", 1594 | "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" 1595 | }, 1596 | "node_modules/json5": { 1597 | "version": "2.2.1", 1598 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", 1599 | "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", 1600 | "peer": true, 1601 | "bin": { 1602 | "json5": "lib/cli.js" 1603 | }, 1604 | "engines": { 1605 | "node": ">=6" 1606 | } 1607 | }, 1608 | "node_modules/lines-and-columns": { 1609 | "version": "1.2.4", 1610 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", 1611 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" 1612 | }, 1613 | "node_modules/lodash.debounce": { 1614 | "version": "4.0.8", 1615 | "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", 1616 | "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" 1617 | }, 1618 | "node_modules/lodash.throttle": { 1619 | "version": "4.1.1", 1620 | "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", 1621 | "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" 1622 | }, 1623 | "node_modules/loose-envify": { 1624 | "version": "1.4.0", 1625 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 1626 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 1627 | "dependencies": { 1628 | "js-tokens": "^3.0.0 || ^4.0.0" 1629 | }, 1630 | "bin": { 1631 | "loose-envify": "cli.js" 1632 | } 1633 | }, 1634 | "node_modules/mime-db": { 1635 | "version": "1.52.0", 1636 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 1637 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", 1638 | "engines": { 1639 | "node": ">= 0.6" 1640 | } 1641 | }, 1642 | "node_modules/mime-types": { 1643 | "version": "2.1.35", 1644 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 1645 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 1646 | "dependencies": { 1647 | "mime-db": "1.52.0" 1648 | }, 1649 | "engines": { 1650 | "node": ">= 0.6" 1651 | } 1652 | }, 1653 | "node_modules/minimist": { 1654 | "version": "1.2.6", 1655 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", 1656 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" 1657 | }, 1658 | "node_modules/ms": { 1659 | "version": "2.1.2", 1660 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1661 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 1662 | "peer": true 1663 | }, 1664 | "node_modules/multipipe": { 1665 | "version": "1.0.2", 1666 | "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-1.0.2.tgz", 1667 | "integrity": "sha512-6uiC9OvY71vzSGX8lZvSqscE7ft9nPupJ8fMjrCNRAUy2LREUW42UL+V/NTrogr6rFgRydUrCX4ZitfpSNkSCQ==", 1668 | "dependencies": { 1669 | "duplexer2": "^0.1.2", 1670 | "object-assign": "^4.1.0" 1671 | } 1672 | }, 1673 | "node_modules/nanoid": { 1674 | "version": "3.3.4", 1675 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 1676 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", 1677 | "bin": { 1678 | "nanoid": "bin/nanoid.cjs" 1679 | }, 1680 | "engines": { 1681 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 1682 | } 1683 | }, 1684 | "node_modules/next": { 1685 | "version": "12.2.0", 1686 | "resolved": "https://registry.npmjs.org/next/-/next-12.2.0.tgz", 1687 | "integrity": "sha512-B4j7D3SHYopLYx6/Ark0fenwIar9tEaZZFAaxmKjgcMMexhVJzB3jt7X+6wcdXPPMeUD6r09weUtnDpjox/vIA==", 1688 | "dependencies": { 1689 | "@next/env": "12.2.0", 1690 | "@swc/helpers": "0.4.2", 1691 | "caniuse-lite": "^1.0.30001332", 1692 | "postcss": "8.4.5", 1693 | "styled-jsx": "5.0.2", 1694 | "use-sync-external-store": "1.1.0" 1695 | }, 1696 | "bin": { 1697 | "next": "dist/bin/next" 1698 | }, 1699 | "engines": { 1700 | "node": ">=12.22.0" 1701 | }, 1702 | "optionalDependencies": { 1703 | "@next/swc-android-arm-eabi": "12.2.0", 1704 | "@next/swc-android-arm64": "12.2.0", 1705 | "@next/swc-darwin-arm64": "12.2.0", 1706 | "@next/swc-darwin-x64": "12.2.0", 1707 | "@next/swc-freebsd-x64": "12.2.0", 1708 | "@next/swc-linux-arm-gnueabihf": "12.2.0", 1709 | "@next/swc-linux-arm64-gnu": "12.2.0", 1710 | "@next/swc-linux-arm64-musl": "12.2.0", 1711 | "@next/swc-linux-x64-gnu": "12.2.0", 1712 | "@next/swc-linux-x64-musl": "12.2.0", 1713 | "@next/swc-win32-arm64-msvc": "12.2.0", 1714 | "@next/swc-win32-ia32-msvc": "12.2.0", 1715 | "@next/swc-win32-x64-msvc": "12.2.0" 1716 | }, 1717 | "peerDependencies": { 1718 | "fibers": ">= 3.1.0", 1719 | "node-sass": "^6.0.0 || ^7.0.0", 1720 | "react": "^17.0.2 || ^18.0.0-0", 1721 | "react-dom": "^17.0.2 || ^18.0.0-0", 1722 | "sass": "^1.3.0" 1723 | }, 1724 | "peerDependenciesMeta": { 1725 | "fibers": { 1726 | "optional": true 1727 | }, 1728 | "node-sass": { 1729 | "optional": true 1730 | }, 1731 | "sass": { 1732 | "optional": true 1733 | } 1734 | } 1735 | }, 1736 | "node_modules/node-releases": { 1737 | "version": "2.0.5", 1738 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", 1739 | "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", 1740 | "peer": true 1741 | }, 1742 | "node_modules/object-assign": { 1743 | "version": "4.1.1", 1744 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 1745 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 1746 | "engines": { 1747 | "node": ">=0.10.0" 1748 | } 1749 | }, 1750 | "node_modules/object-keys": { 1751 | "version": "0.4.0", 1752 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", 1753 | "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==" 1754 | }, 1755 | "node_modules/parent-module": { 1756 | "version": "1.0.1", 1757 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 1758 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 1759 | "dependencies": { 1760 | "callsites": "^3.0.0" 1761 | }, 1762 | "engines": { 1763 | "node": ">=6" 1764 | } 1765 | }, 1766 | "node_modules/parse-json": { 1767 | "version": "5.2.0", 1768 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", 1769 | "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", 1770 | "dependencies": { 1771 | "@babel/code-frame": "^7.0.0", 1772 | "error-ex": "^1.3.1", 1773 | "json-parse-even-better-errors": "^2.3.0", 1774 | "lines-and-columns": "^1.1.6" 1775 | }, 1776 | "engines": { 1777 | "node": ">=8" 1778 | }, 1779 | "funding": { 1780 | "url": "https://github.com/sponsors/sindresorhus" 1781 | } 1782 | }, 1783 | "node_modules/path-parse": { 1784 | "version": "1.0.7", 1785 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 1786 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" 1787 | }, 1788 | "node_modules/path-type": { 1789 | "version": "4.0.0", 1790 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 1791 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", 1792 | "engines": { 1793 | "node": ">=8" 1794 | } 1795 | }, 1796 | "node_modules/picocolors": { 1797 | "version": "1.0.0", 1798 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 1799 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" 1800 | }, 1801 | "node_modules/postcss": { 1802 | "version": "8.4.5", 1803 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", 1804 | "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", 1805 | "dependencies": { 1806 | "nanoid": "^3.1.30", 1807 | "picocolors": "^1.0.0", 1808 | "source-map-js": "^1.0.1" 1809 | }, 1810 | "engines": { 1811 | "node": "^10 || ^12 || >=14" 1812 | }, 1813 | "funding": { 1814 | "type": "opencollective", 1815 | "url": "https://opencollective.com/postcss/" 1816 | } 1817 | }, 1818 | "node_modules/process-nextick-args": { 1819 | "version": "2.0.1", 1820 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 1821 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 1822 | }, 1823 | "node_modules/prop-types": { 1824 | "version": "15.8.1", 1825 | "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", 1826 | "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", 1827 | "dependencies": { 1828 | "loose-envify": "^1.4.0", 1829 | "object-assign": "^4.1.1", 1830 | "react-is": "^16.13.1" 1831 | } 1832 | }, 1833 | "node_modules/react": { 1834 | "version": "18.2.0", 1835 | "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", 1836 | "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", 1837 | "dependencies": { 1838 | "loose-envify": "^1.1.0" 1839 | }, 1840 | "engines": { 1841 | "node": ">=0.10.0" 1842 | } 1843 | }, 1844 | "node_modules/react-dom": { 1845 | "version": "18.2.0", 1846 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", 1847 | "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", 1848 | "dependencies": { 1849 | "loose-envify": "^1.1.0", 1850 | "scheduler": "^0.23.0" 1851 | }, 1852 | "peerDependencies": { 1853 | "react": "^18.2.0" 1854 | } 1855 | }, 1856 | "node_modules/react-dropzone": { 1857 | "version": "14.2.2", 1858 | "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.2.2.tgz", 1859 | "integrity": "sha512-5oyGN/B5rNhop2ggUnxztXBQ6q6zii+OMEftPzsxAR2hhpVWz0nAV+3Ktxo2h5bZzdcCKrpd8bfWAVsveIBM+w==", 1860 | "dependencies": { 1861 | "attr-accept": "^2.2.2", 1862 | "file-selector": "^0.6.0", 1863 | "prop-types": "^15.8.1" 1864 | }, 1865 | "engines": { 1866 | "node": ">= 10.13" 1867 | }, 1868 | "peerDependencies": { 1869 | "react": ">= 16.8 || 18.0.0" 1870 | } 1871 | }, 1872 | "node_modules/react-is": { 1873 | "version": "16.13.1", 1874 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", 1875 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" 1876 | }, 1877 | "node_modules/react-lazy-load-image-component": { 1878 | "version": "1.5.4", 1879 | "resolved": "https://registry.npmjs.org/react-lazy-load-image-component/-/react-lazy-load-image-component-1.5.4.tgz", 1880 | "integrity": "sha512-PSi9tckzZmiqfYZwS6ke2RoRbICsN5m0qsG6fEjUdQNe5STiJieXLlRuGD3uAASOQPFiKYFSLoueN07nk0uffw==", 1881 | "dependencies": { 1882 | "lodash.debounce": "^4.0.8", 1883 | "lodash.throttle": "^4.1.1" 1884 | }, 1885 | "peerDependencies": { 1886 | "react": "^15.x.x || ^16.x.x || ^17.x.x || ^18.x.x", 1887 | "react-dom": "^15.x.x || ^16.x.x || ^17.x.x || ^18.x.x" 1888 | } 1889 | }, 1890 | "node_modules/react-transition-group": { 1891 | "version": "4.4.2", 1892 | "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", 1893 | "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", 1894 | "dependencies": { 1895 | "@babel/runtime": "^7.5.5", 1896 | "dom-helpers": "^5.0.1", 1897 | "loose-envify": "^1.4.0", 1898 | "prop-types": "^15.6.2" 1899 | }, 1900 | "peerDependencies": { 1901 | "react": ">=16.6.0", 1902 | "react-dom": ">=16.6.0" 1903 | } 1904 | }, 1905 | "node_modules/readable-stream": { 1906 | "version": "1.0.34", 1907 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", 1908 | "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", 1909 | "dependencies": { 1910 | "core-util-is": "~1.0.0", 1911 | "inherits": "~2.0.1", 1912 | "isarray": "0.0.1", 1913 | "string_decoder": "~0.10.x" 1914 | } 1915 | }, 1916 | "node_modules/regenerator-runtime": { 1917 | "version": "0.13.9", 1918 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", 1919 | "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" 1920 | }, 1921 | "node_modules/resolve": { 1922 | "version": "1.22.1", 1923 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", 1924 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", 1925 | "dependencies": { 1926 | "is-core-module": "^2.9.0", 1927 | "path-parse": "^1.0.7", 1928 | "supports-preserve-symlinks-flag": "^1.0.0" 1929 | }, 1930 | "bin": { 1931 | "resolve": "bin/resolve" 1932 | }, 1933 | "funding": { 1934 | "url": "https://github.com/sponsors/ljharb" 1935 | } 1936 | }, 1937 | "node_modules/resolve-from": { 1938 | "version": "4.0.0", 1939 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 1940 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 1941 | "engines": { 1942 | "node": ">=4" 1943 | } 1944 | }, 1945 | "node_modules/safe-buffer": { 1946 | "version": "5.1.2", 1947 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1948 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1949 | }, 1950 | "node_modules/scheduler": { 1951 | "version": "0.23.0", 1952 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", 1953 | "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", 1954 | "dependencies": { 1955 | "loose-envify": "^1.1.0" 1956 | } 1957 | }, 1958 | "node_modules/semver": { 1959 | "version": "6.3.0", 1960 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 1961 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 1962 | "peer": true, 1963 | "bin": { 1964 | "semver": "bin/semver.js" 1965 | } 1966 | }, 1967 | "node_modules/source-map": { 1968 | "version": "0.5.7", 1969 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 1970 | "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", 1971 | "engines": { 1972 | "node": ">=0.10.0" 1973 | } 1974 | }, 1975 | "node_modules/source-map-js": { 1976 | "version": "1.0.2", 1977 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 1978 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 1979 | "engines": { 1980 | "node": ">=0.10.0" 1981 | } 1982 | }, 1983 | "node_modules/string_decoder": { 1984 | "version": "0.10.31", 1985 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", 1986 | "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" 1987 | }, 1988 | "node_modules/styled-jsx": { 1989 | "version": "5.0.2", 1990 | "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.2.tgz", 1991 | "integrity": "sha512-LqPQrbBh3egD57NBcHET4qcgshPks+yblyhPlH2GY8oaDgKs8SK4C3dBh3oSJjgzJ3G5t1SYEZGHkP+QEpX9EQ==", 1992 | "engines": { 1993 | "node": ">= 12.0.0" 1994 | }, 1995 | "peerDependencies": { 1996 | "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" 1997 | }, 1998 | "peerDependenciesMeta": { 1999 | "@babel/core": { 2000 | "optional": true 2001 | }, 2002 | "babel-plugin-macros": { 2003 | "optional": true 2004 | } 2005 | } 2006 | }, 2007 | "node_modules/stylis": { 2008 | "version": "4.0.13", 2009 | "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz", 2010 | "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==" 2011 | }, 2012 | "node_modules/supports-color": { 2013 | "version": "5.5.0", 2014 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 2015 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 2016 | "dependencies": { 2017 | "has-flag": "^3.0.0" 2018 | }, 2019 | "engines": { 2020 | "node": ">=4" 2021 | } 2022 | }, 2023 | "node_modules/supports-preserve-symlinks-flag": { 2024 | "version": "1.0.0", 2025 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 2026 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 2027 | "engines": { 2028 | "node": ">= 0.4" 2029 | }, 2030 | "funding": { 2031 | "url": "https://github.com/sponsors/ljharb" 2032 | } 2033 | }, 2034 | "node_modules/through": { 2035 | "version": "2.3.8", 2036 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 2037 | "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" 2038 | }, 2039 | "node_modules/through2": { 2040 | "version": "0.4.2", 2041 | "resolved": "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz", 2042 | "integrity": "sha512-45Llu+EwHKtAZYTPPVn3XZHBgakWMN3rokhEv5hu596XP+cNgplMg+Gj+1nmAvj+L0K7+N49zBKx5rah5u0QIQ==", 2043 | "dependencies": { 2044 | "readable-stream": "~1.0.17", 2045 | "xtend": "~2.1.1" 2046 | } 2047 | }, 2048 | "node_modules/to-fast-properties": { 2049 | "version": "2.0.0", 2050 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", 2051 | "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", 2052 | "engines": { 2053 | "node": ">=4" 2054 | } 2055 | }, 2056 | "node_modules/tslib": { 2057 | "version": "2.4.0", 2058 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", 2059 | "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" 2060 | }, 2061 | "node_modules/update-browserslist-db": { 2062 | "version": "1.0.4", 2063 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", 2064 | "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", 2065 | "funding": [ 2066 | { 2067 | "type": "opencollective", 2068 | "url": "https://opencollective.com/browserslist" 2069 | }, 2070 | { 2071 | "type": "tidelift", 2072 | "url": "https://tidelift.com/funding/github/npm/browserslist" 2073 | } 2074 | ], 2075 | "peer": true, 2076 | "dependencies": { 2077 | "escalade": "^3.1.1", 2078 | "picocolors": "^1.0.0" 2079 | }, 2080 | "bin": { 2081 | "browserslist-lint": "cli.js" 2082 | }, 2083 | "peerDependencies": { 2084 | "browserslist": ">= 4.21.0" 2085 | } 2086 | }, 2087 | "node_modules/use-sync-external-store": { 2088 | "version": "1.1.0", 2089 | "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.1.0.tgz", 2090 | "integrity": "sha512-SEnieB2FPKEVne66NpXPd1Np4R1lTNKfjuy3XdIoPQKYBAFdzbzSZlSn1KJZUiihQLQC5Znot4SBz1EOTBwQAQ==", 2091 | "peerDependencies": { 2092 | "react": "^16.8.0 || ^17.0.0 || ^18.0.0" 2093 | } 2094 | }, 2095 | "node_modules/util-deprecate": { 2096 | "version": "1.0.2", 2097 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2098 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" 2099 | }, 2100 | "node_modules/xtend": { 2101 | "version": "2.1.2", 2102 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", 2103 | "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", 2104 | "dependencies": { 2105 | "object-keys": "~0.4.0" 2106 | }, 2107 | "engines": { 2108 | "node": ">=0.4" 2109 | } 2110 | }, 2111 | "node_modules/yaml": { 2112 | "version": "1.10.2", 2113 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", 2114 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", 2115 | "engines": { 2116 | "node": ">= 6" 2117 | } 2118 | } 2119 | }, 2120 | "dependencies": { 2121 | "@ampproject/remapping": { 2122 | "version": "2.2.0", 2123 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", 2124 | "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", 2125 | "peer": true, 2126 | "requires": { 2127 | "@jridgewell/gen-mapping": "^0.1.0", 2128 | "@jridgewell/trace-mapping": "^0.3.9" 2129 | } 2130 | }, 2131 | "@babel/code-frame": { 2132 | "version": "7.18.6", 2133 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", 2134 | "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", 2135 | "requires": { 2136 | "@babel/highlight": "^7.18.6" 2137 | } 2138 | }, 2139 | "@babel/compat-data": { 2140 | "version": "7.18.6", 2141 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.6.tgz", 2142 | "integrity": "sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ==", 2143 | "peer": true 2144 | }, 2145 | "@babel/core": { 2146 | "version": "7.18.6", 2147 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", 2148 | "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", 2149 | "peer": true, 2150 | "requires": { 2151 | "@ampproject/remapping": "^2.1.0", 2152 | "@babel/code-frame": "^7.18.6", 2153 | "@babel/generator": "^7.18.6", 2154 | "@babel/helper-compilation-targets": "^7.18.6", 2155 | "@babel/helper-module-transforms": "^7.18.6", 2156 | "@babel/helpers": "^7.18.6", 2157 | "@babel/parser": "^7.18.6", 2158 | "@babel/template": "^7.18.6", 2159 | "@babel/traverse": "^7.18.6", 2160 | "@babel/types": "^7.18.6", 2161 | "convert-source-map": "^1.7.0", 2162 | "debug": "^4.1.0", 2163 | "gensync": "^1.0.0-beta.2", 2164 | "json5": "^2.2.1", 2165 | "semver": "^6.3.0" 2166 | } 2167 | }, 2168 | "@babel/generator": { 2169 | "version": "7.18.7", 2170 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz", 2171 | "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==", 2172 | "peer": true, 2173 | "requires": { 2174 | "@babel/types": "^7.18.7", 2175 | "@jridgewell/gen-mapping": "^0.3.2", 2176 | "jsesc": "^2.5.1" 2177 | }, 2178 | "dependencies": { 2179 | "@jridgewell/gen-mapping": { 2180 | "version": "0.3.2", 2181 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", 2182 | "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", 2183 | "peer": true, 2184 | "requires": { 2185 | "@jridgewell/set-array": "^1.0.1", 2186 | "@jridgewell/sourcemap-codec": "^1.4.10", 2187 | "@jridgewell/trace-mapping": "^0.3.9" 2188 | } 2189 | } 2190 | } 2191 | }, 2192 | "@babel/helper-compilation-targets": { 2193 | "version": "7.18.6", 2194 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz", 2195 | "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==", 2196 | "peer": true, 2197 | "requires": { 2198 | "@babel/compat-data": "^7.18.6", 2199 | "@babel/helper-validator-option": "^7.18.6", 2200 | "browserslist": "^4.20.2", 2201 | "semver": "^6.3.0" 2202 | } 2203 | }, 2204 | "@babel/helper-environment-visitor": { 2205 | "version": "7.18.6", 2206 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", 2207 | "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==", 2208 | "peer": true 2209 | }, 2210 | "@babel/helper-function-name": { 2211 | "version": "7.18.6", 2212 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", 2213 | "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", 2214 | "peer": true, 2215 | "requires": { 2216 | "@babel/template": "^7.18.6", 2217 | "@babel/types": "^7.18.6" 2218 | } 2219 | }, 2220 | "@babel/helper-hoist-variables": { 2221 | "version": "7.18.6", 2222 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", 2223 | "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", 2224 | "peer": true, 2225 | "requires": { 2226 | "@babel/types": "^7.18.6" 2227 | } 2228 | }, 2229 | "@babel/helper-module-imports": { 2230 | "version": "7.18.6", 2231 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", 2232 | "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", 2233 | "requires": { 2234 | "@babel/types": "^7.18.6" 2235 | } 2236 | }, 2237 | "@babel/helper-module-transforms": { 2238 | "version": "7.18.6", 2239 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.6.tgz", 2240 | "integrity": "sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw==", 2241 | "peer": true, 2242 | "requires": { 2243 | "@babel/helper-environment-visitor": "^7.18.6", 2244 | "@babel/helper-module-imports": "^7.18.6", 2245 | "@babel/helper-simple-access": "^7.18.6", 2246 | "@babel/helper-split-export-declaration": "^7.18.6", 2247 | "@babel/helper-validator-identifier": "^7.18.6", 2248 | "@babel/template": "^7.18.6", 2249 | "@babel/traverse": "^7.18.6", 2250 | "@babel/types": "^7.18.6" 2251 | } 2252 | }, 2253 | "@babel/helper-plugin-utils": { 2254 | "version": "7.18.6", 2255 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", 2256 | "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==" 2257 | }, 2258 | "@babel/helper-simple-access": { 2259 | "version": "7.18.6", 2260 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", 2261 | "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", 2262 | "peer": true, 2263 | "requires": { 2264 | "@babel/types": "^7.18.6" 2265 | } 2266 | }, 2267 | "@babel/helper-split-export-declaration": { 2268 | "version": "7.18.6", 2269 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", 2270 | "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", 2271 | "peer": true, 2272 | "requires": { 2273 | "@babel/types": "^7.18.6" 2274 | } 2275 | }, 2276 | "@babel/helper-validator-identifier": { 2277 | "version": "7.18.6", 2278 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", 2279 | "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==" 2280 | }, 2281 | "@babel/helper-validator-option": { 2282 | "version": "7.18.6", 2283 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", 2284 | "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", 2285 | "peer": true 2286 | }, 2287 | "@babel/helpers": { 2288 | "version": "7.18.6", 2289 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz", 2290 | "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==", 2291 | "peer": true, 2292 | "requires": { 2293 | "@babel/template": "^7.18.6", 2294 | "@babel/traverse": "^7.18.6", 2295 | "@babel/types": "^7.18.6" 2296 | } 2297 | }, 2298 | "@babel/highlight": { 2299 | "version": "7.18.6", 2300 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", 2301 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", 2302 | "requires": { 2303 | "@babel/helper-validator-identifier": "^7.18.6", 2304 | "chalk": "^2.0.0", 2305 | "js-tokens": "^4.0.0" 2306 | } 2307 | }, 2308 | "@babel/parser": { 2309 | "version": "7.18.6", 2310 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.6.tgz", 2311 | "integrity": "sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw==", 2312 | "peer": true 2313 | }, 2314 | "@babel/plugin-syntax-jsx": { 2315 | "version": "7.18.6", 2316 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", 2317 | "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", 2318 | "requires": { 2319 | "@babel/helper-plugin-utils": "^7.18.6" 2320 | } 2321 | }, 2322 | "@babel/runtime": { 2323 | "version": "7.18.6", 2324 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", 2325 | "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", 2326 | "requires": { 2327 | "regenerator-runtime": "^0.13.4" 2328 | } 2329 | }, 2330 | "@babel/template": { 2331 | "version": "7.18.6", 2332 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", 2333 | "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", 2334 | "peer": true, 2335 | "requires": { 2336 | "@babel/code-frame": "^7.18.6", 2337 | "@babel/parser": "^7.18.6", 2338 | "@babel/types": "^7.18.6" 2339 | } 2340 | }, 2341 | "@babel/traverse": { 2342 | "version": "7.18.6", 2343 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.6.tgz", 2344 | "integrity": "sha512-zS/OKyqmD7lslOtFqbscH6gMLFYOfG1YPqCKfAW5KrTeolKqvB8UelR49Fpr6y93kYkW2Ik00mT1LOGiAGvizw==", 2345 | "peer": true, 2346 | "requires": { 2347 | "@babel/code-frame": "^7.18.6", 2348 | "@babel/generator": "^7.18.6", 2349 | "@babel/helper-environment-visitor": "^7.18.6", 2350 | "@babel/helper-function-name": "^7.18.6", 2351 | "@babel/helper-hoist-variables": "^7.18.6", 2352 | "@babel/helper-split-export-declaration": "^7.18.6", 2353 | "@babel/parser": "^7.18.6", 2354 | "@babel/types": "^7.18.6", 2355 | "debug": "^4.1.0", 2356 | "globals": "^11.1.0" 2357 | } 2358 | }, 2359 | "@babel/types": { 2360 | "version": "7.18.7", 2361 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.7.tgz", 2362 | "integrity": "sha512-QG3yxTcTIBoAcQmkCs+wAPYZhu7Dk9rXKacINfNbdJDNERTbLQbHGyVG8q/YGMPeCJRIhSY0+fTc5+xuh6WPSQ==", 2363 | "requires": { 2364 | "@babel/helper-validator-identifier": "^7.18.6", 2365 | "to-fast-properties": "^2.0.0" 2366 | } 2367 | }, 2368 | "@emotion/babel-plugin": { 2369 | "version": "11.9.2", 2370 | "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.9.2.tgz", 2371 | "integrity": "sha512-Pr/7HGH6H6yKgnVFNEj2MVlreu3ADqftqjqwUvDy/OJzKFgxKeTQ+eeUf20FOTuHVkDON2iNa25rAXVYtWJCjw==", 2372 | "requires": { 2373 | "@babel/helper-module-imports": "^7.12.13", 2374 | "@babel/plugin-syntax-jsx": "^7.12.13", 2375 | "@babel/runtime": "^7.13.10", 2376 | "@emotion/hash": "^0.8.0", 2377 | "@emotion/memoize": "^0.7.5", 2378 | "@emotion/serialize": "^1.0.2", 2379 | "babel-plugin-macros": "^2.6.1", 2380 | "convert-source-map": "^1.5.0", 2381 | "escape-string-regexp": "^4.0.0", 2382 | "find-root": "^1.1.0", 2383 | "source-map": "^0.5.7", 2384 | "stylis": "4.0.13" 2385 | } 2386 | }, 2387 | "@emotion/cache": { 2388 | "version": "11.9.3", 2389 | "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.9.3.tgz", 2390 | "integrity": "sha512-0dgkI/JKlCXa+lEXviaMtGBL0ynpx4osh7rjOXE71q9bIF8G+XhJgvi+wDu0B0IdCVx37BffiwXlN9I3UuzFvg==", 2391 | "requires": { 2392 | "@emotion/memoize": "^0.7.4", 2393 | "@emotion/sheet": "^1.1.1", 2394 | "@emotion/utils": "^1.0.0", 2395 | "@emotion/weak-memoize": "^0.2.5", 2396 | "stylis": "4.0.13" 2397 | } 2398 | }, 2399 | "@emotion/hash": { 2400 | "version": "0.8.0", 2401 | "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", 2402 | "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" 2403 | }, 2404 | "@emotion/is-prop-valid": { 2405 | "version": "1.1.3", 2406 | "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.1.3.tgz", 2407 | "integrity": "sha512-RFg04p6C+1uO19uG8N+vqanzKqiM9eeV1LDOG3bmkYmuOj7NbKNlFC/4EZq5gnwAIlcC/jOT24f8Td0iax2SXA==", 2408 | "requires": { 2409 | "@emotion/memoize": "^0.7.4" 2410 | } 2411 | }, 2412 | "@emotion/memoize": { 2413 | "version": "0.7.5", 2414 | "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz", 2415 | "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==" 2416 | }, 2417 | "@emotion/react": { 2418 | "version": "11.9.3", 2419 | "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.9.3.tgz", 2420 | "integrity": "sha512-g9Q1GcTOlzOEjqwuLF/Zd9LC+4FljjPjDfxSM7KmEakm+hsHXk+bYZ2q+/hTJzr0OUNkujo72pXLQvXj6H+GJQ==", 2421 | "requires": { 2422 | "@babel/runtime": "^7.13.10", 2423 | "@emotion/babel-plugin": "^11.7.1", 2424 | "@emotion/cache": "^11.9.3", 2425 | "@emotion/serialize": "^1.0.4", 2426 | "@emotion/utils": "^1.1.0", 2427 | "@emotion/weak-memoize": "^0.2.5", 2428 | "hoist-non-react-statics": "^3.3.1" 2429 | } 2430 | }, 2431 | "@emotion/serialize": { 2432 | "version": "1.0.4", 2433 | "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.4.tgz", 2434 | "integrity": "sha512-1JHamSpH8PIfFwAMryO2bNka+y8+KA5yga5Ocf2d7ZEiJjb7xlLW7aknBGZqJLajuLOvJ+72vN+IBSwPlXD1Pg==", 2435 | "requires": { 2436 | "@emotion/hash": "^0.8.0", 2437 | "@emotion/memoize": "^0.7.4", 2438 | "@emotion/unitless": "^0.7.5", 2439 | "@emotion/utils": "^1.0.0", 2440 | "csstype": "^3.0.2" 2441 | } 2442 | }, 2443 | "@emotion/server": { 2444 | "version": "11.4.0", 2445 | "resolved": "https://registry.npmjs.org/@emotion/server/-/server-11.4.0.tgz", 2446 | "integrity": "sha512-IHovdWA3V0DokzxLtUNDx4+hQI82zUXqQFcVz/om2t44O0YSc+NHB+qifnyAOoQwt3SXcBTgaSntobwUI9gnfA==", 2447 | "requires": { 2448 | "@emotion/utils": "^1.0.0", 2449 | "html-tokenize": "^2.0.0", 2450 | "multipipe": "^1.0.2", 2451 | "through": "^2.3.8" 2452 | } 2453 | }, 2454 | "@emotion/sheet": { 2455 | "version": "1.1.1", 2456 | "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.1.1.tgz", 2457 | "integrity": "sha512-J3YPccVRMiTZxYAY0IOq3kd+hUP8idY8Kz6B/Cyo+JuXq52Ek+zbPbSQUrVQp95aJ+lsAW7DPL1P2Z+U1jGkKA==" 2458 | }, 2459 | "@emotion/styled": { 2460 | "version": "11.9.3", 2461 | "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.9.3.tgz", 2462 | "integrity": "sha512-o3sBNwbtoVz9v7WB1/Y/AmXl69YHmei2mrVnK7JgyBJ//Rst5yqPZCecEJlMlJrFeWHp+ki/54uN265V2pEcXA==", 2463 | "requires": { 2464 | "@babel/runtime": "^7.13.10", 2465 | "@emotion/babel-plugin": "^11.7.1", 2466 | "@emotion/is-prop-valid": "^1.1.3", 2467 | "@emotion/serialize": "^1.0.4", 2468 | "@emotion/utils": "^1.1.0" 2469 | } 2470 | }, 2471 | "@emotion/unitless": { 2472 | "version": "0.7.5", 2473 | "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", 2474 | "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" 2475 | }, 2476 | "@emotion/utils": { 2477 | "version": "1.1.0", 2478 | "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.1.0.tgz", 2479 | "integrity": "sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==" 2480 | }, 2481 | "@emotion/weak-memoize": { 2482 | "version": "0.2.5", 2483 | "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", 2484 | "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" 2485 | }, 2486 | "@fortawesome/fontawesome-common-types": { 2487 | "version": "6.1.1", 2488 | "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.1.1.tgz", 2489 | "integrity": "sha512-wVn5WJPirFTnzN6tR95abCx+ocH+3IFLXAgyavnf9hUmN0CfWoDjPT/BAWsUVwSlYYVBeCLJxaqi7ZGe4uSjBA==" 2490 | }, 2491 | "@fortawesome/fontawesome-svg-core": { 2492 | "version": "6.1.1", 2493 | "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.1.1.tgz", 2494 | "integrity": "sha512-NCg0w2YIp81f4V6cMGD9iomfsIj7GWrqmsa0ZsPh59G7PKiGN1KymZNxmF00ssuAlo/VZmpK6xazsGOwzKYUMg==", 2495 | "requires": { 2496 | "@fortawesome/fontawesome-common-types": "6.1.1" 2497 | } 2498 | }, 2499 | "@fortawesome/free-regular-svg-icons": { 2500 | "version": "6.1.1", 2501 | "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.1.1.tgz", 2502 | "integrity": "sha512-xXiW7hcpgwmWtndKPOzG+43fPH7ZjxOaoeyooptSztGmJxCAflHZxXNK0GcT0uEsR4jTGQAfGklDZE5NHoBhKg==", 2503 | "requires": { 2504 | "@fortawesome/fontawesome-common-types": "6.1.1" 2505 | } 2506 | }, 2507 | "@fortawesome/react-fontawesome": { 2508 | "version": "0.2.0", 2509 | "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz", 2510 | "integrity": "sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==", 2511 | "requires": { 2512 | "prop-types": "^15.8.1" 2513 | } 2514 | }, 2515 | "@jridgewell/gen-mapping": { 2516 | "version": "0.1.1", 2517 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", 2518 | "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", 2519 | "peer": true, 2520 | "requires": { 2521 | "@jridgewell/set-array": "^1.0.0", 2522 | "@jridgewell/sourcemap-codec": "^1.4.10" 2523 | } 2524 | }, 2525 | "@jridgewell/resolve-uri": { 2526 | "version": "3.1.0", 2527 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", 2528 | "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", 2529 | "peer": true 2530 | }, 2531 | "@jridgewell/set-array": { 2532 | "version": "1.1.2", 2533 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", 2534 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", 2535 | "peer": true 2536 | }, 2537 | "@jridgewell/sourcemap-codec": { 2538 | "version": "1.4.14", 2539 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", 2540 | "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", 2541 | "peer": true 2542 | }, 2543 | "@jridgewell/trace-mapping": { 2544 | "version": "0.3.14", 2545 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", 2546 | "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", 2547 | "peer": true, 2548 | "requires": { 2549 | "@jridgewell/resolve-uri": "^3.0.3", 2550 | "@jridgewell/sourcemap-codec": "^1.4.10" 2551 | } 2552 | }, 2553 | "@mui/base": { 2554 | "version": "5.0.0-alpha.88", 2555 | "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.88.tgz", 2556 | "integrity": "sha512-uL7ej2F/3GUnZewsDQSHUVHoSBT3AQcTIdfdy6QeCHy7X26mtbcIvTRcjl2PzbbNQplppavSTibPiQG/giJ+ng==", 2557 | "requires": { 2558 | "@babel/runtime": "^7.17.2", 2559 | "@emotion/is-prop-valid": "^1.1.3", 2560 | "@mui/types": "^7.1.4", 2561 | "@mui/utils": "^5.8.6", 2562 | "@popperjs/core": "^2.11.5", 2563 | "clsx": "^1.2.0", 2564 | "prop-types": "^15.8.1", 2565 | "react-is": "^17.0.2" 2566 | }, 2567 | "dependencies": { 2568 | "react-is": { 2569 | "version": "17.0.2", 2570 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", 2571 | "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" 2572 | } 2573 | } 2574 | }, 2575 | "@mui/icons-material": { 2576 | "version": "5.8.4", 2577 | "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.8.4.tgz", 2578 | "integrity": "sha512-9Z/vyj2szvEhGWDvb+gG875bOGm8b8rlHBKOD1+nA3PcgC3fV6W1AU6pfOorPeBfH2X4mb9Boe97vHvaSndQvA==", 2579 | "requires": { 2580 | "@babel/runtime": "^7.17.2" 2581 | } 2582 | }, 2583 | "@mui/material": { 2584 | "version": "5.8.7", 2585 | "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.8.7.tgz", 2586 | "integrity": "sha512-Oo62UhrgEi+BMLr3nUEASJgScE2/hhq14CbBUmrVV3GQlEGtqMZsy26Vb0AqEmphFeN3TXlsbM9aeW5yq8ZFlw==", 2587 | "requires": { 2588 | "@babel/runtime": "^7.17.2", 2589 | "@mui/base": "5.0.0-alpha.88", 2590 | "@mui/system": "^5.8.7", 2591 | "@mui/types": "^7.1.4", 2592 | "@mui/utils": "^5.8.6", 2593 | "@types/react-transition-group": "^4.4.5", 2594 | "clsx": "^1.2.0", 2595 | "csstype": "^3.1.0", 2596 | "prop-types": "^15.8.1", 2597 | "react-is": "^17.0.2", 2598 | "react-transition-group": "^4.4.2" 2599 | }, 2600 | "dependencies": { 2601 | "react-is": { 2602 | "version": "17.0.2", 2603 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", 2604 | "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" 2605 | } 2606 | } 2607 | }, 2608 | "@mui/private-theming": { 2609 | "version": "5.8.6", 2610 | "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.8.6.tgz", 2611 | "integrity": "sha512-yHsJk1qU9r/q0DlnxGRJPHyM0Y/nUv8FTNgDTiI9I58GWuVuZqeTUr7JRvPh6ybeP/FLtW5eXEavRK9wxVk4uQ==", 2612 | "requires": { 2613 | "@babel/runtime": "^7.17.2", 2614 | "@mui/utils": "^5.8.6", 2615 | "prop-types": "^15.8.1" 2616 | } 2617 | }, 2618 | "@mui/styled-engine": { 2619 | "version": "5.8.7", 2620 | "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.8.7.tgz", 2621 | "integrity": "sha512-tVqtowjbYmiRq+qcqXK731L9eWoL9H8xTRhuTgaDGKdch1zlt4I2UwInUe1w2N9N/u3/jHsFbLcl1Un3uOwpQg==", 2622 | "requires": { 2623 | "@babel/runtime": "^7.17.2", 2624 | "@emotion/cache": "^11.9.3", 2625 | "csstype": "^3.1.0", 2626 | "prop-types": "^15.8.1" 2627 | } 2628 | }, 2629 | "@mui/system": { 2630 | "version": "5.8.7", 2631 | "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.8.7.tgz", 2632 | "integrity": "sha512-yFoFbfO42FWeSUDrFPixYjpqySQMqVMOSbSlAxiKnwFpvXGGn/bkfQTboCRNO31fvES29FJLQd4mwwMHd5mXng==", 2633 | "requires": { 2634 | "@babel/runtime": "^7.17.2", 2635 | "@mui/private-theming": "^5.8.6", 2636 | "@mui/styled-engine": "^5.8.7", 2637 | "@mui/types": "^7.1.4", 2638 | "@mui/utils": "^5.8.6", 2639 | "clsx": "^1.2.0", 2640 | "csstype": "^3.1.0", 2641 | "prop-types": "^15.8.1" 2642 | } 2643 | }, 2644 | "@mui/types": { 2645 | "version": "7.1.4", 2646 | "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.1.4.tgz", 2647 | "integrity": "sha512-uveM3byMbthO+6tXZ1n2zm0W3uJCQYtwt/v5zV5I77v2v18u0ITkb8xwhsDD2i3V2Kye7SaNR6FFJ6lMuY/WqQ==", 2648 | "requires": {} 2649 | }, 2650 | "@mui/utils": { 2651 | "version": "5.8.6", 2652 | "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.8.6.tgz", 2653 | "integrity": "sha512-QM2Sd1xZo2jOt2Vz5Rmro+pi2FLJyiv4+OjxkUwXR3oUM65KSMAMLl/KNYU55s3W3DLRFP5MVwE4FhAbHseHAg==", 2654 | "requires": { 2655 | "@babel/runtime": "^7.17.2", 2656 | "@types/prop-types": "^15.7.5", 2657 | "@types/react-is": "^16.7.1 || ^17.0.0", 2658 | "prop-types": "^15.8.1", 2659 | "react-is": "^17.0.2" 2660 | }, 2661 | "dependencies": { 2662 | "react-is": { 2663 | "version": "17.0.2", 2664 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", 2665 | "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" 2666 | } 2667 | } 2668 | }, 2669 | "@next/env": { 2670 | "version": "12.2.0", 2671 | "resolved": "https://registry.npmjs.org/@next/env/-/env-12.2.0.tgz", 2672 | "integrity": "sha512-/FCkDpL/8SodJEXvx/DYNlOD5ijTtkozf4PPulYPtkPOJaMPpBSOkzmsta4fnrnbdH6eZjbwbiXFdr6gSQCV4w==" 2673 | }, 2674 | "@next/swc-android-arm-eabi": { 2675 | "version": "12.2.0", 2676 | "resolved": "https://registry.npmjs.org/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-12.2.0.tgz", 2677 | "integrity": "sha512-hbneH8DNRB2x0Nf5fPCYoL8a0osvdTCe4pvOc9Rv5CpDsoOlf8BWBs2OWpeP0U2BktGvIsuUhmISmdYYGyrvTw==", 2678 | "optional": true 2679 | }, 2680 | "@next/swc-android-arm64": { 2681 | "version": "12.2.0", 2682 | "resolved": "https://registry.npmjs.org/@next/swc-android-arm64/-/swc-android-arm64-12.2.0.tgz", 2683 | "integrity": "sha512-1eEk91JHjczcJomxJ8X0XaUeNcp5Lx1U2Ic7j15ouJ83oRX+3GIslOuabW2oPkSgXbHkThMClhirKpvG98kwZg==", 2684 | "optional": true 2685 | }, 2686 | "@next/swc-darwin-arm64": { 2687 | "version": "12.2.0", 2688 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-12.2.0.tgz", 2689 | "integrity": "sha512-x5U5gJd7ZvrEtTFnBld9O2bUlX8opu7mIQUqRzj7KeWzBwPhrIzTTsQXAiNqsaMuaRPvyHBVW/5d/6g6+89Y8g==", 2690 | "optional": true 2691 | }, 2692 | "@next/swc-darwin-x64": { 2693 | "version": "12.2.0", 2694 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-12.2.0.tgz", 2695 | "integrity": "sha512-iwMNFsrAPjfedjKDv9AXPAV16PWIomP3qw/FfPaxkDVRbUls7BNdofBLzkQmqxqWh93WrawLwaqyXpJuAaiwJA==", 2696 | "optional": true 2697 | }, 2698 | "@next/swc-freebsd-x64": { 2699 | "version": "12.2.0", 2700 | "resolved": "https://registry.npmjs.org/@next/swc-freebsd-x64/-/swc-freebsd-x64-12.2.0.tgz", 2701 | "integrity": "sha512-gRiAw8g3Akf6niTDLEm1Emfa7jXDjvaAj/crDO8hKASKA4Y1fS4kbi/tyWw5VtoFI4mUzRmCPmZ8eL0tBSG58A==", 2702 | "optional": true 2703 | }, 2704 | "@next/swc-linux-arm-gnueabihf": { 2705 | "version": "12.2.0", 2706 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-12.2.0.tgz", 2707 | "integrity": "sha512-/TJZkxaIpeEwnXh6A40trgwd40C5+LJroLUOEQwMOJdavLl62PjCA6dGl1pgooWLCIb5YdBQ0EG4ylzvLwS2+Q==", 2708 | "optional": true 2709 | }, 2710 | "@next/swc-linux-arm64-gnu": { 2711 | "version": "12.2.0", 2712 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-12.2.0.tgz", 2713 | "integrity": "sha512-++WAB4ElXCSOKG9H8r4ENF8EaV+w0QkrpjehmryFkQXmt5juVXz+nKDVlCRMwJU7A1O0Mie82XyEoOrf6Np1pA==", 2714 | "optional": true 2715 | }, 2716 | "@next/swc-linux-arm64-musl": { 2717 | "version": "12.2.0", 2718 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-12.2.0.tgz", 2719 | "integrity": "sha512-XrqkHi/VglEn5zs2CYK6ofJGQySrd+Lr4YdmfJ7IhsCnMKkQY1ma9Hv5THwhZVof3e+6oFHrQ9bWrw9K4WTjFA==", 2720 | "optional": true 2721 | }, 2722 | "@next/swc-linux-x64-gnu": { 2723 | "version": "12.2.0", 2724 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-12.2.0.tgz", 2725 | "integrity": "sha512-MyhHbAKVjpn065WzRbqpLu2krj4kHLi6RITQdD1ee+uxq9r2yg5Qe02l24NxKW+1/lkmpusl4Y5Lks7rBiJn4w==", 2726 | "optional": true 2727 | }, 2728 | "@next/swc-linux-x64-musl": { 2729 | "version": "12.2.0", 2730 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-12.2.0.tgz", 2731 | "integrity": "sha512-Tz1tJZ5egE0S/UqCd5V6ZPJsdSzv/8aa7FkwFmIJ9neLS8/00za+OY5pq470iZQbPrkTwpKzmfTTIPRVD5iqDg==", 2732 | "optional": true 2733 | }, 2734 | "@next/swc-win32-arm64-msvc": { 2735 | "version": "12.2.0", 2736 | "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-12.2.0.tgz", 2737 | "integrity": "sha512-0iRO/CPMCdCYUzuH6wXLnsfJX1ykBX4emOOvH0qIgtiZM0nVYbF8lkEyY2ph4XcsurpinS+ziWuYCXVqrOSqiw==", 2738 | "optional": true 2739 | }, 2740 | "@next/swc-win32-ia32-msvc": { 2741 | "version": "12.2.0", 2742 | "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-12.2.0.tgz", 2743 | "integrity": "sha512-8A26RJVcJHwIKm8xo/qk2ePRquJ6WCI2keV2qOW/Qm+ZXrPXHMIWPYABae/nKN243YFBNyPiHytjX37VrcpUhg==", 2744 | "optional": true 2745 | }, 2746 | "@next/swc-win32-x64-msvc": { 2747 | "version": "12.2.0", 2748 | "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-12.2.0.tgz", 2749 | "integrity": "sha512-OI14ozFLThEV3ey6jE47zrzSTV/6eIMsvbwozo+XfdWqOPwQ7X00YkRx4GVMKMC0rM44oGS2gmwMKYpe4EblnA==", 2750 | "optional": true 2751 | }, 2752 | "@popperjs/core": { 2753 | "version": "2.11.5", 2754 | "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz", 2755 | "integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==" 2756 | }, 2757 | "@swc/helpers": { 2758 | "version": "0.4.2", 2759 | "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.2.tgz", 2760 | "integrity": "sha512-556Az0VX7WR6UdoTn4htt/l3zPQ7bsQWK+HqdG4swV7beUCxo/BqmvbOpUkTIm/9ih86LIf1qsUnywNL3obGHw==", 2761 | "requires": { 2762 | "tslib": "^2.4.0" 2763 | } 2764 | }, 2765 | "@types/parse-json": { 2766 | "version": "4.0.0", 2767 | "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", 2768 | "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" 2769 | }, 2770 | "@types/prop-types": { 2771 | "version": "15.7.5", 2772 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", 2773 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" 2774 | }, 2775 | "@types/react": { 2776 | "version": "18.0.15", 2777 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.15.tgz", 2778 | "integrity": "sha512-iz3BtLuIYH1uWdsv6wXYdhozhqj20oD4/Hk2DNXIn1kFsmp9x8d9QB6FnPhfkbhd2PgEONt9Q1x/ebkwjfFLow==", 2779 | "requires": { 2780 | "@types/prop-types": "*", 2781 | "@types/scheduler": "*", 2782 | "csstype": "^3.0.2" 2783 | } 2784 | }, 2785 | "@types/react-is": { 2786 | "version": "17.0.3", 2787 | "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.3.tgz", 2788 | "integrity": "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==", 2789 | "requires": { 2790 | "@types/react": "*" 2791 | } 2792 | }, 2793 | "@types/react-transition-group": { 2794 | "version": "4.4.5", 2795 | "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", 2796 | "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==", 2797 | "requires": { 2798 | "@types/react": "*" 2799 | } 2800 | }, 2801 | "@types/scheduler": { 2802 | "version": "0.16.2", 2803 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", 2804 | "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" 2805 | }, 2806 | "ansi-styles": { 2807 | "version": "3.2.1", 2808 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 2809 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 2810 | "requires": { 2811 | "color-convert": "^1.9.0" 2812 | } 2813 | }, 2814 | "aos": { 2815 | "version": "2.3.4", 2816 | "resolved": "https://registry.npmjs.org/aos/-/aos-2.3.4.tgz", 2817 | "integrity": "sha512-zh/ahtR2yME4I51z8IttIt4lC1Nw0ktsFtmeDzID1m9naJnWXhCoARaCgNOGXb5CLy3zm+wqmRAEgMYB5E2HUw==", 2818 | "requires": { 2819 | "classlist-polyfill": "^1.0.3", 2820 | "lodash.debounce": "^4.0.6", 2821 | "lodash.throttle": "^4.0.1" 2822 | } 2823 | }, 2824 | "asynckit": { 2825 | "version": "0.4.0", 2826 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 2827 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" 2828 | }, 2829 | "attr-accept": { 2830 | "version": "2.2.2", 2831 | "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.2.tgz", 2832 | "integrity": "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==" 2833 | }, 2834 | "axios": { 2835 | "version": "0.27.2", 2836 | "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", 2837 | "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", 2838 | "requires": { 2839 | "follow-redirects": "^1.14.9", 2840 | "form-data": "^4.0.0" 2841 | } 2842 | }, 2843 | "babel-plugin-macros": { 2844 | "version": "2.8.0", 2845 | "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", 2846 | "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", 2847 | "requires": { 2848 | "@babel/runtime": "^7.7.2", 2849 | "cosmiconfig": "^6.0.0", 2850 | "resolve": "^1.12.0" 2851 | } 2852 | }, 2853 | "browserslist": { 2854 | "version": "4.21.1", 2855 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", 2856 | "integrity": "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==", 2857 | "peer": true, 2858 | "requires": { 2859 | "caniuse-lite": "^1.0.30001359", 2860 | "electron-to-chromium": "^1.4.172", 2861 | "node-releases": "^2.0.5", 2862 | "update-browserslist-db": "^1.0.4" 2863 | } 2864 | }, 2865 | "buffer-from": { 2866 | "version": "0.1.2", 2867 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-0.1.2.tgz", 2868 | "integrity": "sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg==" 2869 | }, 2870 | "callsites": { 2871 | "version": "3.1.0", 2872 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 2873 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" 2874 | }, 2875 | "caniuse-lite": { 2876 | "version": "1.0.30001363", 2877 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001363.tgz", 2878 | "integrity": "sha512-HpQhpzTGGPVMnCjIomjt+jvyUu8vNFo3TaDiZ/RcoTrlOq/5+tC8zHdsbgFB6MxmaY+jCpsH09aD80Bb4Ow3Sg==" 2879 | }, 2880 | "chalk": { 2881 | "version": "2.4.2", 2882 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 2883 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 2884 | "requires": { 2885 | "ansi-styles": "^3.2.1", 2886 | "escape-string-regexp": "^1.0.5", 2887 | "supports-color": "^5.3.0" 2888 | }, 2889 | "dependencies": { 2890 | "escape-string-regexp": { 2891 | "version": "1.0.5", 2892 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 2893 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" 2894 | } 2895 | } 2896 | }, 2897 | "classlist-polyfill": { 2898 | "version": "1.2.0", 2899 | "resolved": "https://registry.npmjs.org/classlist-polyfill/-/classlist-polyfill-1.2.0.tgz", 2900 | "integrity": "sha512-GzIjNdcEtH4ieA2S8NmrSxv7DfEV5fmixQeyTmqmRmRJPGpRBaSnA2a0VrCjyT8iW8JjEdMbKzDotAJf+ajgaQ==" 2901 | }, 2902 | "clsx": { 2903 | "version": "1.2.1", 2904 | "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", 2905 | "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==" 2906 | }, 2907 | "color-convert": { 2908 | "version": "1.9.3", 2909 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 2910 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 2911 | "requires": { 2912 | "color-name": "1.1.3" 2913 | } 2914 | }, 2915 | "color-name": { 2916 | "version": "1.1.3", 2917 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 2918 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" 2919 | }, 2920 | "combined-stream": { 2921 | "version": "1.0.8", 2922 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 2923 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 2924 | "requires": { 2925 | "delayed-stream": "~1.0.0" 2926 | } 2927 | }, 2928 | "convert-source-map": { 2929 | "version": "1.8.0", 2930 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", 2931 | "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", 2932 | "requires": { 2933 | "safe-buffer": "~5.1.1" 2934 | } 2935 | }, 2936 | "core-util-is": { 2937 | "version": "1.0.3", 2938 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", 2939 | "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" 2940 | }, 2941 | "cosmiconfig": { 2942 | "version": "6.0.0", 2943 | "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", 2944 | "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", 2945 | "requires": { 2946 | "@types/parse-json": "^4.0.0", 2947 | "import-fresh": "^3.1.0", 2948 | "parse-json": "^5.0.0", 2949 | "path-type": "^4.0.0", 2950 | "yaml": "^1.7.2" 2951 | } 2952 | }, 2953 | "csstype": { 2954 | "version": "3.1.0", 2955 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", 2956 | "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" 2957 | }, 2958 | "debug": { 2959 | "version": "4.3.4", 2960 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", 2961 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", 2962 | "peer": true, 2963 | "requires": { 2964 | "ms": "2.1.2" 2965 | } 2966 | }, 2967 | "delayed-stream": { 2968 | "version": "1.0.0", 2969 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 2970 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" 2971 | }, 2972 | "dom-helpers": { 2973 | "version": "5.2.1", 2974 | "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", 2975 | "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", 2976 | "requires": { 2977 | "@babel/runtime": "^7.8.7", 2978 | "csstype": "^3.0.2" 2979 | } 2980 | }, 2981 | "duplexer2": { 2982 | "version": "0.1.4", 2983 | "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", 2984 | "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", 2985 | "requires": { 2986 | "readable-stream": "^2.0.2" 2987 | }, 2988 | "dependencies": { 2989 | "isarray": { 2990 | "version": "1.0.0", 2991 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 2992 | "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" 2993 | }, 2994 | "readable-stream": { 2995 | "version": "2.3.7", 2996 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 2997 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 2998 | "requires": { 2999 | "core-util-is": "~1.0.0", 3000 | "inherits": "~2.0.3", 3001 | "isarray": "~1.0.0", 3002 | "process-nextick-args": "~2.0.0", 3003 | "safe-buffer": "~5.1.1", 3004 | "string_decoder": "~1.1.1", 3005 | "util-deprecate": "~1.0.1" 3006 | } 3007 | }, 3008 | "string_decoder": { 3009 | "version": "1.1.1", 3010 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 3011 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 3012 | "requires": { 3013 | "safe-buffer": "~5.1.0" 3014 | } 3015 | } 3016 | } 3017 | }, 3018 | "electron-to-chromium": { 3019 | "version": "1.4.182", 3020 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.182.tgz", 3021 | "integrity": "sha512-OpEjTADzGoXABjqobGhpy0D2YsTncAax7IkER68ycc4adaq0dqEG9//9aenKPy7BGA90bqQdLac0dPp6uMkcSg==", 3022 | "peer": true 3023 | }, 3024 | "error-ex": { 3025 | "version": "1.3.2", 3026 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 3027 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 3028 | "requires": { 3029 | "is-arrayish": "^0.2.1" 3030 | } 3031 | }, 3032 | "escalade": { 3033 | "version": "3.1.1", 3034 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 3035 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 3036 | "peer": true 3037 | }, 3038 | "escape-string-regexp": { 3039 | "version": "4.0.0", 3040 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 3041 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" 3042 | }, 3043 | "file-selector": { 3044 | "version": "0.6.0", 3045 | "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.6.0.tgz", 3046 | "integrity": "sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==", 3047 | "requires": { 3048 | "tslib": "^2.4.0" 3049 | } 3050 | }, 3051 | "find-root": { 3052 | "version": "1.1.0", 3053 | "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", 3054 | "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" 3055 | }, 3056 | "follow-redirects": { 3057 | "version": "1.15.1", 3058 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", 3059 | "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==" 3060 | }, 3061 | "form-data": { 3062 | "version": "4.0.0", 3063 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", 3064 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", 3065 | "requires": { 3066 | "asynckit": "^0.4.0", 3067 | "combined-stream": "^1.0.8", 3068 | "mime-types": "^2.1.12" 3069 | } 3070 | }, 3071 | "function-bind": { 3072 | "version": "1.1.1", 3073 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 3074 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 3075 | }, 3076 | "gensync": { 3077 | "version": "1.0.0-beta.2", 3078 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", 3079 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", 3080 | "peer": true 3081 | }, 3082 | "globals": { 3083 | "version": "11.12.0", 3084 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 3085 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 3086 | "peer": true 3087 | }, 3088 | "has": { 3089 | "version": "1.0.3", 3090 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 3091 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 3092 | "requires": { 3093 | "function-bind": "^1.1.1" 3094 | } 3095 | }, 3096 | "has-flag": { 3097 | "version": "3.0.0", 3098 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 3099 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" 3100 | }, 3101 | "hoist-non-react-statics": { 3102 | "version": "3.3.2", 3103 | "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", 3104 | "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", 3105 | "requires": { 3106 | "react-is": "^16.7.0" 3107 | } 3108 | }, 3109 | "html-tokenize": { 3110 | "version": "2.0.1", 3111 | "resolved": "https://registry.npmjs.org/html-tokenize/-/html-tokenize-2.0.1.tgz", 3112 | "integrity": "sha512-QY6S+hZ0f5m1WT8WffYN+Hg+xm/w5I8XeUcAq/ZYP5wVC8xbKi4Whhru3FtrAebD5EhBW8rmFzkDI6eCAuFe2w==", 3113 | "requires": { 3114 | "buffer-from": "~0.1.1", 3115 | "inherits": "~2.0.1", 3116 | "minimist": "~1.2.5", 3117 | "readable-stream": "~1.0.27-1", 3118 | "through2": "~0.4.1" 3119 | } 3120 | }, 3121 | "import-fresh": { 3122 | "version": "3.3.0", 3123 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 3124 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 3125 | "requires": { 3126 | "parent-module": "^1.0.0", 3127 | "resolve-from": "^4.0.0" 3128 | } 3129 | }, 3130 | "inherits": { 3131 | "version": "2.0.4", 3132 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 3133 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 3134 | }, 3135 | "is-arrayish": { 3136 | "version": "0.2.1", 3137 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 3138 | "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" 3139 | }, 3140 | "is-core-module": { 3141 | "version": "2.9.0", 3142 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", 3143 | "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", 3144 | "requires": { 3145 | "has": "^1.0.3" 3146 | } 3147 | }, 3148 | "isarray": { 3149 | "version": "0.0.1", 3150 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", 3151 | "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" 3152 | }, 3153 | "js-tokens": { 3154 | "version": "4.0.0", 3155 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 3156 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 3157 | }, 3158 | "jsesc": { 3159 | "version": "2.5.2", 3160 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", 3161 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", 3162 | "peer": true 3163 | }, 3164 | "json-parse-even-better-errors": { 3165 | "version": "2.3.1", 3166 | "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", 3167 | "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" 3168 | }, 3169 | "json5": { 3170 | "version": "2.2.1", 3171 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", 3172 | "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", 3173 | "peer": true 3174 | }, 3175 | "lines-and-columns": { 3176 | "version": "1.2.4", 3177 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", 3178 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" 3179 | }, 3180 | "lodash.debounce": { 3181 | "version": "4.0.8", 3182 | "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", 3183 | "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" 3184 | }, 3185 | "lodash.throttle": { 3186 | "version": "4.1.1", 3187 | "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", 3188 | "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" 3189 | }, 3190 | "loose-envify": { 3191 | "version": "1.4.0", 3192 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 3193 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 3194 | "requires": { 3195 | "js-tokens": "^3.0.0 || ^4.0.0" 3196 | } 3197 | }, 3198 | "mime-db": { 3199 | "version": "1.52.0", 3200 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 3201 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" 3202 | }, 3203 | "mime-types": { 3204 | "version": "2.1.35", 3205 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 3206 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 3207 | "requires": { 3208 | "mime-db": "1.52.0" 3209 | } 3210 | }, 3211 | "minimist": { 3212 | "version": "1.2.6", 3213 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", 3214 | "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" 3215 | }, 3216 | "ms": { 3217 | "version": "2.1.2", 3218 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 3219 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 3220 | "peer": true 3221 | }, 3222 | "multipipe": { 3223 | "version": "1.0.2", 3224 | "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-1.0.2.tgz", 3225 | "integrity": "sha512-6uiC9OvY71vzSGX8lZvSqscE7ft9nPupJ8fMjrCNRAUy2LREUW42UL+V/NTrogr6rFgRydUrCX4ZitfpSNkSCQ==", 3226 | "requires": { 3227 | "duplexer2": "^0.1.2", 3228 | "object-assign": "^4.1.0" 3229 | } 3230 | }, 3231 | "nanoid": { 3232 | "version": "3.3.4", 3233 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", 3234 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" 3235 | }, 3236 | "next": { 3237 | "version": "12.2.0", 3238 | "resolved": "https://registry.npmjs.org/next/-/next-12.2.0.tgz", 3239 | "integrity": "sha512-B4j7D3SHYopLYx6/Ark0fenwIar9tEaZZFAaxmKjgcMMexhVJzB3jt7X+6wcdXPPMeUD6r09weUtnDpjox/vIA==", 3240 | "requires": { 3241 | "@next/env": "12.2.0", 3242 | "@next/swc-android-arm-eabi": "12.2.0", 3243 | "@next/swc-android-arm64": "12.2.0", 3244 | "@next/swc-darwin-arm64": "12.2.0", 3245 | "@next/swc-darwin-x64": "12.2.0", 3246 | "@next/swc-freebsd-x64": "12.2.0", 3247 | "@next/swc-linux-arm-gnueabihf": "12.2.0", 3248 | "@next/swc-linux-arm64-gnu": "12.2.0", 3249 | "@next/swc-linux-arm64-musl": "12.2.0", 3250 | "@next/swc-linux-x64-gnu": "12.2.0", 3251 | "@next/swc-linux-x64-musl": "12.2.0", 3252 | "@next/swc-win32-arm64-msvc": "12.2.0", 3253 | "@next/swc-win32-ia32-msvc": "12.2.0", 3254 | "@next/swc-win32-x64-msvc": "12.2.0", 3255 | "@swc/helpers": "0.4.2", 3256 | "caniuse-lite": "^1.0.30001332", 3257 | "postcss": "8.4.5", 3258 | "styled-jsx": "5.0.2", 3259 | "use-sync-external-store": "1.1.0" 3260 | } 3261 | }, 3262 | "node-releases": { 3263 | "version": "2.0.5", 3264 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", 3265 | "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", 3266 | "peer": true 3267 | }, 3268 | "object-assign": { 3269 | "version": "4.1.1", 3270 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 3271 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" 3272 | }, 3273 | "object-keys": { 3274 | "version": "0.4.0", 3275 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", 3276 | "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==" 3277 | }, 3278 | "parent-module": { 3279 | "version": "1.0.1", 3280 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 3281 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 3282 | "requires": { 3283 | "callsites": "^3.0.0" 3284 | } 3285 | }, 3286 | "parse-json": { 3287 | "version": "5.2.0", 3288 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", 3289 | "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", 3290 | "requires": { 3291 | "@babel/code-frame": "^7.0.0", 3292 | "error-ex": "^1.3.1", 3293 | "json-parse-even-better-errors": "^2.3.0", 3294 | "lines-and-columns": "^1.1.6" 3295 | } 3296 | }, 3297 | "path-parse": { 3298 | "version": "1.0.7", 3299 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 3300 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" 3301 | }, 3302 | "path-type": { 3303 | "version": "4.0.0", 3304 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", 3305 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" 3306 | }, 3307 | "picocolors": { 3308 | "version": "1.0.0", 3309 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 3310 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" 3311 | }, 3312 | "postcss": { 3313 | "version": "8.4.5", 3314 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", 3315 | "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", 3316 | "requires": { 3317 | "nanoid": "^3.1.30", 3318 | "picocolors": "^1.0.0", 3319 | "source-map-js": "^1.0.1" 3320 | } 3321 | }, 3322 | "process-nextick-args": { 3323 | "version": "2.0.1", 3324 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 3325 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 3326 | }, 3327 | "prop-types": { 3328 | "version": "15.8.1", 3329 | "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", 3330 | "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", 3331 | "requires": { 3332 | "loose-envify": "^1.4.0", 3333 | "object-assign": "^4.1.1", 3334 | "react-is": "^16.13.1" 3335 | } 3336 | }, 3337 | "react": { 3338 | "version": "18.2.0", 3339 | "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", 3340 | "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", 3341 | "requires": { 3342 | "loose-envify": "^1.1.0" 3343 | } 3344 | }, 3345 | "react-dom": { 3346 | "version": "18.2.0", 3347 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", 3348 | "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", 3349 | "requires": { 3350 | "loose-envify": "^1.1.0", 3351 | "scheduler": "^0.23.0" 3352 | } 3353 | }, 3354 | "react-dropzone": { 3355 | "version": "14.2.2", 3356 | "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-14.2.2.tgz", 3357 | "integrity": "sha512-5oyGN/B5rNhop2ggUnxztXBQ6q6zii+OMEftPzsxAR2hhpVWz0nAV+3Ktxo2h5bZzdcCKrpd8bfWAVsveIBM+w==", 3358 | "requires": { 3359 | "attr-accept": "^2.2.2", 3360 | "file-selector": "^0.6.0", 3361 | "prop-types": "^15.8.1" 3362 | } 3363 | }, 3364 | "react-is": { 3365 | "version": "16.13.1", 3366 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", 3367 | "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" 3368 | }, 3369 | "react-lazy-load-image-component": { 3370 | "version": "1.5.4", 3371 | "resolved": "https://registry.npmjs.org/react-lazy-load-image-component/-/react-lazy-load-image-component-1.5.4.tgz", 3372 | "integrity": "sha512-PSi9tckzZmiqfYZwS6ke2RoRbICsN5m0qsG6fEjUdQNe5STiJieXLlRuGD3uAASOQPFiKYFSLoueN07nk0uffw==", 3373 | "requires": { 3374 | "lodash.debounce": "^4.0.8", 3375 | "lodash.throttle": "^4.1.1" 3376 | } 3377 | }, 3378 | "react-transition-group": { 3379 | "version": "4.4.2", 3380 | "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", 3381 | "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", 3382 | "requires": { 3383 | "@babel/runtime": "^7.5.5", 3384 | "dom-helpers": "^5.0.1", 3385 | "loose-envify": "^1.4.0", 3386 | "prop-types": "^15.6.2" 3387 | } 3388 | }, 3389 | "readable-stream": { 3390 | "version": "1.0.34", 3391 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", 3392 | "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", 3393 | "requires": { 3394 | "core-util-is": "~1.0.0", 3395 | "inherits": "~2.0.1", 3396 | "isarray": "0.0.1", 3397 | "string_decoder": "~0.10.x" 3398 | } 3399 | }, 3400 | "regenerator-runtime": { 3401 | "version": "0.13.9", 3402 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", 3403 | "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" 3404 | }, 3405 | "resolve": { 3406 | "version": "1.22.1", 3407 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", 3408 | "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", 3409 | "requires": { 3410 | "is-core-module": "^2.9.0", 3411 | "path-parse": "^1.0.7", 3412 | "supports-preserve-symlinks-flag": "^1.0.0" 3413 | } 3414 | }, 3415 | "resolve-from": { 3416 | "version": "4.0.0", 3417 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 3418 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" 3419 | }, 3420 | "safe-buffer": { 3421 | "version": "5.1.2", 3422 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 3423 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 3424 | }, 3425 | "scheduler": { 3426 | "version": "0.23.0", 3427 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", 3428 | "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", 3429 | "requires": { 3430 | "loose-envify": "^1.1.0" 3431 | } 3432 | }, 3433 | "semver": { 3434 | "version": "6.3.0", 3435 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 3436 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 3437 | "peer": true 3438 | }, 3439 | "source-map": { 3440 | "version": "0.5.7", 3441 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 3442 | "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" 3443 | }, 3444 | "source-map-js": { 3445 | "version": "1.0.2", 3446 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 3447 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" 3448 | }, 3449 | "string_decoder": { 3450 | "version": "0.10.31", 3451 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", 3452 | "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" 3453 | }, 3454 | "styled-jsx": { 3455 | "version": "5.0.2", 3456 | "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.0.2.tgz", 3457 | "integrity": "sha512-LqPQrbBh3egD57NBcHET4qcgshPks+yblyhPlH2GY8oaDgKs8SK4C3dBh3oSJjgzJ3G5t1SYEZGHkP+QEpX9EQ==", 3458 | "requires": {} 3459 | }, 3460 | "stylis": { 3461 | "version": "4.0.13", 3462 | "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz", 3463 | "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==" 3464 | }, 3465 | "supports-color": { 3466 | "version": "5.5.0", 3467 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 3468 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 3469 | "requires": { 3470 | "has-flag": "^3.0.0" 3471 | } 3472 | }, 3473 | "supports-preserve-symlinks-flag": { 3474 | "version": "1.0.0", 3475 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 3476 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" 3477 | }, 3478 | "through": { 3479 | "version": "2.3.8", 3480 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 3481 | "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" 3482 | }, 3483 | "through2": { 3484 | "version": "0.4.2", 3485 | "resolved": "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz", 3486 | "integrity": "sha512-45Llu+EwHKtAZYTPPVn3XZHBgakWMN3rokhEv5hu596XP+cNgplMg+Gj+1nmAvj+L0K7+N49zBKx5rah5u0QIQ==", 3487 | "requires": { 3488 | "readable-stream": "~1.0.17", 3489 | "xtend": "~2.1.1" 3490 | } 3491 | }, 3492 | "to-fast-properties": { 3493 | "version": "2.0.0", 3494 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", 3495 | "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" 3496 | }, 3497 | "tslib": { 3498 | "version": "2.4.0", 3499 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", 3500 | "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" 3501 | }, 3502 | "update-browserslist-db": { 3503 | "version": "1.0.4", 3504 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", 3505 | "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", 3506 | "peer": true, 3507 | "requires": { 3508 | "escalade": "^3.1.1", 3509 | "picocolors": "^1.0.0" 3510 | } 3511 | }, 3512 | "use-sync-external-store": { 3513 | "version": "1.1.0", 3514 | "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.1.0.tgz", 3515 | "integrity": "sha512-SEnieB2FPKEVne66NpXPd1Np4R1lTNKfjuy3XdIoPQKYBAFdzbzSZlSn1KJZUiihQLQC5Znot4SBz1EOTBwQAQ==", 3516 | "requires": {} 3517 | }, 3518 | "util-deprecate": { 3519 | "version": "1.0.2", 3520 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 3521 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" 3522 | }, 3523 | "xtend": { 3524 | "version": "2.1.2", 3525 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", 3526 | "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", 3527 | "requires": { 3528 | "object-keys": "~0.4.0" 3529 | } 3530 | }, 3531 | "yaml": { 3532 | "version": "1.10.2", 3533 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", 3534 | "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" 3535 | } 3536 | } 3537 | } 3538 | -------------------------------------------------------------------------------- /frontend/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "image-classification", 3 | "version": "1.0.0", 4 | "description": "Image Classification", 5 | "scripts": { 6 | "dev": "next dev", 7 | "build": "next build", 8 | "start": "next start" 9 | }, 10 | "author": "MG", 11 | "license": "MIT", 12 | "dependencies": { 13 | "@emotion/cache": "^11.9.3", 14 | "@emotion/react": "^11.9.3", 15 | "@emotion/server": "^11.4.0", 16 | "@emotion/styled": "^11.9.3", 17 | "@fortawesome/fontawesome-svg-core": "^6.1.1", 18 | "@fortawesome/free-regular-svg-icons": "^6.1.1", 19 | "@fortawesome/react-fontawesome": "^0.2.0", 20 | "@mui/icons-material": "^5.8.4", 21 | "@mui/material": "^5.8.7", 22 | "aos": "^2.3.4", 23 | "axios": "^0.27.2", 24 | "next": "^12.2.0", 25 | "prop-types": "^15.8.1", 26 | "react": "^18.2.0", 27 | "react-dom": "^18.2.0", 28 | "react-dropzone": "^14.2.2", 29 | "react-lazy-load-image-component": "^1.5.4" 30 | }, 31 | "devDependencies": { 32 | "regenerator-runtime": "^0.13.9" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /frontend/public/images/dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BobsProgrammingAcademy/image-classification-layout-customization/1c6abe0684d3920291f67457042e161747a144d6/frontend/public/images/dark.png -------------------------------------------------------------------------------- /frontend/public/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BobsProgrammingAcademy/image-classification-layout-customization/1c6abe0684d3920291f67457042e161747a144d6/frontend/public/images/favicon.ico -------------------------------------------------------------------------------- /frontend/public/images/image_classification.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BobsProgrammingAcademy/image-classification-layout-customization/1c6abe0684d3920291f67457042e161747a144d6/frontend/public/images/image_classification.png -------------------------------------------------------------------------------- /frontend/public/images/img1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BobsProgrammingAcademy/image-classification-layout-customization/1c6abe0684d3920291f67457042e161747a144d6/frontend/public/images/img1.jpg -------------------------------------------------------------------------------- /frontend/src/components/ClassifierButtons.js: -------------------------------------------------------------------------------- 1 | // Material UI 2 | import Button from '@mui/material/Button'; 3 | import Box from '@mui/material/Box'; 4 | import { useTheme, useMediaQuery } from '@mui/material'; 5 | 6 | // Material Icons 7 | import ResetIcon from '@mui/icons-material/RotateLeft'; 8 | import SendIcon from '@mui/icons-material/SendToMobile'; 9 | 10 | const ClassifierButtons = ({ submitOnClick, resetOnClick }) => { 11 | const theme = useTheme(); 12 | const isMd = useMediaQuery(theme.breakpoints.up('md'), { 13 | defaultMatches: true, 14 | }); 15 | 16 | return ( 17 | <> 18 | 19 | 26 | 48 | 53 | 75 | 76 | 77 | 78 | 79 | ); 80 | }; 81 | 82 | export default ClassifierButtons; 83 | -------------------------------------------------------------------------------- /frontend/src/components/ClassifierHeader.js: -------------------------------------------------------------------------------- 1 | // Material UI 2 | import Box from '@mui/material/Box'; 3 | import Grid from '@mui/material/Grid'; 4 | import Typography from '@mui/material/Typography'; 5 | import { useTheme } from '@mui/material'; 6 | 7 | const ClassifierHeader = () => { 8 | const theme = useTheme(); 9 | 10 | return ( 11 | <> 12 | 13 | 14 | Image Classifier 15 | 16 | 17 | 18 | Select an Image for Classification 19 | 20 | 21 | 22 | 23 | ); 24 | }; 25 | 26 | export default ClassifierHeader; 27 | -------------------------------------------------------------------------------- /frontend/src/components/ClassifierResult.js: -------------------------------------------------------------------------------- 1 | // Material UI 2 | import Box from '@mui/material/Box'; 3 | import Card from '@mui/material/Card'; 4 | import CardContent from '@mui/material/CardContent'; 5 | import Grid from '@mui/material/Grid'; 6 | import Typography from '@mui/material/Typography'; 7 | import { useTheme } from '@mui/material'; 8 | 9 | const ClassifierResult = ({ selectedImage, classificationResult }) => { 10 | const theme = useTheme(); 11 | 12 | return ( 13 | <> 14 | 15 | 16 | 17 | 18 | 24 | 25 | Result 26 | 27 | 28 | 29 | 30 | The image you have selected: 31 |
32 |
33 |
34 | 42 | 52 | 53 |
54 |
55 | 56 | The machine learning model has classified this image as: 57 |
58 |
59 |
60 | 66 | {classificationResult} 67 | 68 |
69 |
70 |
71 |
72 |
73 | 74 | ); 75 | }; 76 | 77 | export default ClassifierResult; 78 | -------------------------------------------------------------------------------- /frontend/src/components/ClassifyAgain.js: -------------------------------------------------------------------------------- 1 | // Material UI 2 | import Button from '@mui/material/Button'; 3 | import Box from '@mui/material/Box'; 4 | import Grid from '@mui/material/Grid'; 5 | import { useTheme, useMediaQuery } from '@mui/material'; 6 | 7 | // Material Icons 8 | import SendIcon from '@mui/icons-material/SendToMobile'; 9 | 10 | const ClassifyAgain = ({ submitOnClick }) => { 11 | const theme = useTheme(); 12 | const isMd = useMediaQuery(theme.breakpoints.up('md'), { 13 | defaultMatches: true, 14 | }); 15 | 16 | return ( 17 | <> 18 | 19 | 20 | 27 | 49 | 50 | 51 | 52 | 53 | ); 54 | }; 55 | 56 | export default ClassifyAgain; 57 | -------------------------------------------------------------------------------- /frontend/src/components/CustomDivider.js: -------------------------------------------------------------------------------- 1 | // Material UI 2 | import Box from '@mui/material/Box'; 3 | import Divider from '@mui/material/Divider'; 4 | 5 | const CustomDivider = () => { 6 | return ( 7 | 13 | 14 | 15 | ); 16 | }; 17 | 18 | export default CustomDivider; 19 | -------------------------------------------------------------------------------- /frontend/src/components/Description.js: -------------------------------------------------------------------------------- 1 | // Material UI 2 | import Box from '@mui/material/Box'; 3 | import Container from '@mui/material/Container'; 4 | import Grid from '@mui/material/Grid'; 5 | import Typography from '@mui/material/Typography'; 6 | import { useTheme } from '@mui/material'; 7 | 8 | // Material Icons 9 | import SendToMobileOutlinedIcon from '@mui/icons-material/SendToMobileOutlined'; 10 | import GetAppOutlinedIcon from '@mui/icons-material/GetAppOutlined'; 11 | import AddAPhotoOutlinedIcon from '@mui/icons-material/AddAPhotoOutlined'; 12 | 13 | import DescriptionItem from './DescriptionItem'; 14 | 15 | const Description = () => { 16 | const theme = useTheme(); 17 | 18 | return ( 19 | 26 | 31 | 42 | 49 | How Does It Work? 50 | 51 | 60 | A step-by-step guide on how to use the app 61 | 62 | 63 | } 65 | title='Select an Image' 66 | subtitle='Select an image for classification and drag-and-drop it into the provided dropzone in the browser.' 67 | /> 68 | 71 | } 72 | title='Send the Image for Classification' 73 | subtitle='Press the Send Image button to send the image to the machine learning model for classification.' 74 | /> 75 | } 77 | title='Get the Classification Result' 78 | subtitle='Next, the machine learning model classifies the image, and the result of the classification is then printed on the screen.' 79 | /> 80 | 81 | 82 | 83 | 84 | ); 85 | }; 86 | 87 | export default Description; 88 | -------------------------------------------------------------------------------- /frontend/src/components/DescriptionItem.js: -------------------------------------------------------------------------------- 1 | // Material UI 2 | import Avatar from '@mui/material/Avatar'; 3 | import Box from '@mui/material/Box'; 4 | import Grid from '@mui/material/Grid'; 5 | import Typography from '@mui/material/Typography'; 6 | import { useTheme } from '@mui/material'; 7 | 8 | const DescriptionItem = ({ icon, title, subtitle }) => { 9 | const theme = useTheme(); 10 | 11 | return ( 12 | 13 | 14 | 15 | 23 | {icon} 24 | 25 | 26 | {title} 27 | 28 | 29 | {subtitle} 30 | 31 | 32 | 33 | 34 | ); 35 | }; 36 | 37 | export default DescriptionItem; 38 | -------------------------------------------------------------------------------- /frontend/src/components/Hero.js: -------------------------------------------------------------------------------- 1 | import { LazyLoadImage } from 'react-lazy-load-image-component'; 2 | // Material UI 3 | import Box from '@mui/material/Box'; 4 | import Grid from '@mui/material/Grid'; 5 | import Typography from '@mui/material/Typography'; 6 | import { useTheme, useMediaQuery } from '@mui/material'; 7 | 8 | import HeroButtons from '../components/HeroButtons'; 9 | 10 | const Hero = () => { 11 | const theme = useTheme(); 12 | const isMd = useMediaQuery(theme.breakpoints.up('md'), { 13 | defaultMatches: true, 14 | }); 15 | 16 | return ( 17 | 24 | 25 | 26 | 27 | 28 | 34 | Select an Image for Classification 35 | 36 | 37 | 38 | 46 | The App Will Tell You What Is On the Image You Have Selected 47 | 48 | 49 | 50 | 51 | 52 | 61 | 73 | 84 | 85 | 86 | 87 | 88 | ); 89 | }; 90 | 91 | export default Hero; 92 | -------------------------------------------------------------------------------- /frontend/src/components/HeroButtons.js: -------------------------------------------------------------------------------- 1 | // Material UI 2 | import Box from '@mui/material/Box'; 3 | import Button from '@mui/material/Button'; 4 | import { useTheme, useMediaQuery } from '@mui/material'; 5 | 6 | // Material Icons 7 | import InfoIcon from '@mui/icons-material/HelpOutline'; 8 | import PlayIcon from '@mui/icons-material/PlayCircleOutlineOutlined'; 9 | 10 | const HeroButtons = () => { 11 | const theme = useTheme(); 12 | const isMd = useMediaQuery(theme.breakpoints.up('md'), { 13 | defaultMatches: true, 14 | }); 15 | 16 | return ( 17 | <> 18 | 25 | 48 | 53 | 76 | 77 | 78 | 79 | ); 80 | }; 81 | 82 | export default HeroButtons; 83 | -------------------------------------------------------------------------------- /frontend/src/components/ImageDropzone.js: -------------------------------------------------------------------------------- 1 | import Dropzone from 'react-dropzone'; 2 | // Material UI 3 | import Box from '@mui/material/Box'; 4 | import Link from '@mui/material/Link'; 5 | import Typography from '@mui/material/Typography'; 6 | import { useTheme } from '@mui/material'; 7 | 8 | // Font Awesome Icons 9 | import { library } from '@fortawesome/fontawesome-svg-core'; 10 | import { faImage as ImageIcon } from '@fortawesome/free-regular-svg-icons'; 11 | import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; 12 | library.add(ImageIcon); 13 | 14 | const ImageDropzone = ({ onDrop }) => { 15 | const theme = useTheme(); 16 | 17 | return ( 18 | 19 | {({ isDragActive, getRootProps, getInputProps }) => ( 20 |
21 | 45 | 46 | 53 | 54 | 55 | 63 | 64 | 65 | 69 | Drag and drop an image here, or{' '} 70 | click to select an image 71 | 72 | 73 | 74 | 75 |
76 | )} 77 |
78 | ); 79 | }; 80 | 81 | export default ImageDropzone; 82 | -------------------------------------------------------------------------------- /frontend/src/components/Spacer.js: -------------------------------------------------------------------------------- 1 | // Material UI 2 | import Box from '@mui/material/Box'; 3 | import { useTheme } from '@mui/material'; 4 | 5 | const Spacer = ({ sx = [] }) => { 6 | const theme = useTheme(); 7 | 8 | return ( 9 | 17 | ); 18 | }; 19 | 20 | export default Spacer; 21 | -------------------------------------------------------------------------------- /frontend/src/layout/Footer.js: -------------------------------------------------------------------------------- 1 | // Material UI 2 | import Box from '@mui/material/Box'; 3 | import Divider from '@mui/material/Divider'; 4 | import Grid from '@mui/material/Grid'; 5 | import Hidden from '@mui/material/Hidden'; 6 | import Link from '@mui/material/Link'; 7 | import List from '@mui/material/List'; 8 | import ListItemButton from '@mui/material/ListItemButton'; 9 | import ListItemText from '@mui/material/ListItemText'; 10 | import Typography from '@mui/material/Typography'; 11 | import { useTheme } from '@mui/material'; 12 | 13 | const Footer = () => { 14 | const theme = useTheme(); 15 | 16 | return ( 17 | <> 18 | 28 | 29 | 34 | 35 | 36 | 37 | 44 | 45 | 51 | Privacy Policy 52 | 53 | } 54 | /> 55 | 56 | 57 | 63 | Terms of Use 64 | 65 | } 66 | /> 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 80 | Copyright © {new Date().getFullYear()} Bob's 81 | Programming Academy. 82 | 83 | } 84 | /> 85 | 86 | 87 | 88 | 89 | 90 | 91 | 97 | Photo by{' '} 98 | 105 | Josh Power 106 | {' '} 107 | on{' '} 108 | 115 | Unsplash 116 | 117 | . 118 | 119 | } 120 | /> 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | ); 129 | }; 130 | 131 | export default Footer; 132 | -------------------------------------------------------------------------------- /frontend/src/layout/Header.js: -------------------------------------------------------------------------------- 1 | import Link from 'next/link'; 2 | // Material UI 3 | import AppBar from '@mui/material/AppBar'; 4 | import Button from '@mui/material/Button'; 5 | import Box from '@mui/material/Box'; 6 | import Divider from '@mui/material/Divider'; 7 | import IconButton from '@mui/material/IconButton'; 8 | import Toolbar from '@mui/material/Toolbar'; 9 | import Typography from '@mui/material/Typography'; 10 | import { useTheme } from '@mui/material'; 11 | 12 | // Material Icons 13 | import MenuIcon from '@mui/icons-material/Menu'; 14 | import HomeOutlinedIcon from '@mui/icons-material/HomeOutlined'; 15 | import CameraAltIcon from '@mui/icons-material/CameraAlt'; 16 | import InsertPhotoOutlinedIcon from '@mui/icons-material/InsertPhotoOutlined'; 17 | 18 | const Header = ({ onSidebarOpen }) => { 19 | const theme = useTheme(); 20 | 21 | return ( 22 | <> 23 | 30 | 31 | onSidebarOpen()} 34 | sx={{ display: { md: 'none' } }} 35 | > 36 | 37 | 38 | 39 | 40 | 41 | 48 | 59 | Image Classification 60 | 61 | 62 | 63 | 64 | 65 | 83 | 102 | 103 | 104 | 105 | 106 | ); 107 | }; 108 | 109 | export default Header; 110 | -------------------------------------------------------------------------------- /frontend/src/layout/Layout.js: -------------------------------------------------------------------------------- 1 | import { useState } from 'react'; 2 | import PropTypes from 'prop-types'; 3 | 4 | // Material UI 5 | import Box from '@mui/material/Box'; 6 | import Fab from '@mui/material/Fab'; 7 | import KeyboardArrowUpIcon from '@mui/icons-material/KeyboardArrowUp'; 8 | import NoSsr from '@mui/material/NoSsr'; 9 | import Zoom from '@mui/material/Zoom'; 10 | import useMediaQuery from '@mui/material/useMediaQuery'; 11 | import useScrollTrigger from '@mui/material/useScrollTrigger'; 12 | import { useTheme } from '@mui/material'; 13 | 14 | import Header from './Header'; 15 | import Footer from './Footer'; 16 | import Sidebar from './Sidebar'; 17 | 18 | const Layout = ({ children }) => { 19 | const theme = useTheme(); 20 | const isMd = useMediaQuery(theme.breakpoints.up('md'), { 21 | defaultMatches: true, 22 | }); 23 | 24 | const [openSidebar, setOpenSidebar] = useState(false); 25 | 26 | const handleSidebarOpen = () => { 27 | setOpenSidebar(true); 28 | }; 29 | 30 | const handleSidebarClose = () => { 31 | setOpenSidebar(false); 32 | }; 33 | 34 | const open = isMd ? false : openSidebar; 35 | 36 | const trigger = useScrollTrigger({ 37 | disableHysteresis: true, 38 | threshold: 100, 39 | }); 40 | 41 | const scrollTo = (id) => { 42 | setTimeout(() => { 43 | const element = document.querySelector(`#${id}`); 44 | if (!element) { 45 | return; 46 | } 47 | window.scrollTo({ left: 0, top: element.offsetTop, behavior: 'smooth' }); 48 | }); 49 | }; 50 | 51 | return ( 52 | 59 |
60 | 61 | 68 | {children} 69 | 70 |